Невозможно прочитать файл, хотя он находится в той же группе

Невозможно прочитать файл, хотя он находится в той же группе

Я создал новую символическую ссылку на один файл (расположенный в домашнем каталоге другого пользователя) для пользователя. Но не могу прочитать, хотя пользователь в той же группе и права доступа к файлу 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

решение1

Вы путаете вывод команд.

Во-первых, «3030.log» — это ссылка

[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

«l» в первой позиции показывает это, как и «-> /home/dkanagaraj/.forever/z_lZ.log»

поэтому покажите права доступа к файлу, на который вы ссылаетесь, а также права доступа к родительским каталогам, dkanagaraj и .forever

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

Видетьhttp://linuxcommand.org/lts0070.phpдля обсуждения прав доступа к файлам и каталогам.

решение2

Ответ bodhi.zazen правильный, но я бы хотел ответить на него немного по-другому: разрешения прикрепляются к inode, а символическая ссылка и ее цель имеют каждый свой inode. Рассмотримфуипроблемы, ниже:

$ 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: -

Обычно права доступа к файлу определяют, что вы можете с ним делать, но, как это происходит в большинстве систем, права доступа к файлу символической ссылки не контролируют ничего. (Вы можетеchmod 0 foo, И ещеln -sf foo барработает.) Здесь имеют значение разрешения на inode 11405468.

[Далее исправлено. Спасибо dave_thompson_085 за его пояснительный комментарий.]

В вашем примере реальный файл (а не символическая ссылка) — это, конечно f3-w.log. Поскольку он принадлежит вашей группе dkanagaraj и имеет групповые привилегии чтения, вы ожидаете, что сможете прочитать его содержимое, независимо от того, какую символическую ссылку вы использовали.

Права на чтение файла естьтакжеконтролируется путем к нему. При доступе к файлу требуются права на выполнение для всех каталогов, перечисленных в пути.(Интерфейс программирования Linux, раздел 15.4.3, стр. 297). Поскольку символическая ссылка использует абсолютный путь к своей цели,дканагараджгрупповые потребностивыполнятьразрешение на каждый компонент имени пути: /, home, dkanagaraj, и .forever. Ограничение разрешения пути применяется к любому файлу, включая саму символическую ссылку, но я думаю, что вы это уже предусмотрели.

Связанный контент