Não é possível ler o arquivo, embora no mesmo grupo

0

Eu criei um novo link simbólico para um arquivo (localizado em outro diretório pessoal do usuário) para o usuário. Mas incapaz de ler, embora o usuário no mesmo grupo e as permissões de arquivo são 755.

[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log
[lmurugan@localhost ~]$ less 3030.log
3030.log: Permission denied


[lmurugan@localhost ~]$ ls -lrt
total 0
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

[lmurugan@localhost ~]$ id
uid=1006(lmurugan) gid=1000(dkanagaraj) groups=1000(dkanagaraj)

[lmurugan@localhost ~]$ id dkanagaraj
uid=1000(dkanagaraj) gid=1000(dkanagaraj) groups=1000(dkanagaraj),10(wheel)

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/f3-w.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 425361 Feb 16 16:46 /home/dkanagaraj/.forever/f3-w.log

[dkanagaraj@localhost .forever]$ ls -lrt /home/dkanagaraj/.forever/z_lZ.log
-rwxr-xr-x. 1 dkanagaraj dkanagaraj 570027 Feb 16 16:46 /home/dkanagaraj/.forever/z_lZ.log
    
por user156967 17.02.2016 / 17:29

2 respostas

1

Você está confundindo a saída dos comandos.

Primeiro, "3030.log" é um link

[lmurugan@localhost ~]$ ls -lrt 
total 0 
lrwxrwxrwx. 1 root       root       34 Feb 16 16:36 3000.log -> /home/dkanagaraj/.forever/f3-w.log
lrwxrwxrwx. 1 dkanagaraj dkanagaraj 34 Feb 16 16:38 3030.log -> /home/dkanagaraj/.forever/z_lZ.log

o "l" na primeira posição mostra isso, assim como o "- > /home/dkanagaraj/.forever/z_lZ.log"

mostre as permissões do arquivo ao qual você está vinculado, assim como as permissões dos diretórios pai, dkanagaraj e .forever

ls -l /home/dkanagaraj/.forever/z_lZ.log

Consulte o link para obter uma discussão sobre as permissões de arquivos e diretórios.

    
por 17.02.2016 / 17:45
-1

A resposta de bodhi.zazen está certa, mas eu gostaria de responder de uma maneira um pouco diferente: as permissões são anexadas ao inode, e o link simbólico e seu alvo têm cada um seu próprio inode. Considere foo e problemas , abaixo:

$ ls -l foo issues
lrwxrwxrwx 1 jklowden jklowden    6 Feb 18 16:46 foo -> issues
-rw-rw-r-- 1 jklowden jklowden 2380 Jan 29 14:02 issues

$ stat foo
  File: ‘foo’ -> ‘issues’
  Size: 6               Blocks: 0          IO Block: 4096   symbolic link
Device: 811h/2065d      Inode: 11406493    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-02-18 16:46:52.224805576 -0500
Modify: 2016-02-18 16:46:40.905398163 -0500
Change: 2016-02-18 16:46:40.905398163 -0500
 Birth: -

$ stat issues 
  File: ‘issues’
  Size: 2380            Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d      Inode: 11405468    Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/jklowden)   Gid: ( 1000/jklowden)
Access: 2016-01-29 14:05:26.122808636 -0500
Modify: 2016-01-29 14:02:52.106866058 -0500
Change: 2016-01-29 14:02:52.106866058 -0500
 Birth: -

Normalmente, as permissões em um arquivo controlam o que você pode fazer com ele, mas como acontece na maioria dos sistemas, as permissões em um arquivo de link simbólico não controlam nada. (Você pode chmod 0 foo , e ainda ln -sf foo bar funciona.) Aqui, as permissões no inode 11405468 são as que contam.

[O que segue é corrigido. Obrigado a dave_thompson_085 pelo seu comentário esclarecedor.]

No seu exemplo, o arquivo real (não o link simbólico) é claro f3-w.log . Como ele pertence ao seu grupo, dkanagaraj, e tem privilégios de leitura de grupo, você esperaria poder ler seu conteúdo, independentemente de se algum link simbólico usado por você.

Os direitos para ler o arquivo são também controlados pelo caminho para ele. Ao acessar um arquivo, é necessária a permissão de execução em todos os diretórios listados no nome do caminho. ( Interface de programação do Linux , seção 15.4.3, página 297). Como o link simbólico usa um nome de caminho absoluto para o seu destino, o grupo dkanagaraj precisa de permissão executar em cada componente do caminho: / , home , dkanagaraj e% código%. A restrição de permissão de caminho aplica-se a qualquer arquivo, incluindo o link simbólico em si, mas acho que você tem isso coberto.

    
por 18.02.2016 / 23:06