같은 그룹에 있어도 파일을 읽을 수 없습니다

같은 그룹에 있어도 파일을 읽을 수 없습니다

사용자를 위해 한 파일(다른 사용자 홈 디렉터리에 있음)에 대한 새 심볼릭 링크를 만들었습니다. 하지만 같은 그룹의 사용자이고 파일 권한이 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가 소유하고 그룹 읽기 권한이 있으므로 심볼릭 링크를 사용했는지 여부에 관계없이 해당 내용을 읽을 수 있을 것으로 예상됩니다.

파일을 읽을 수 있는 권한은또한경로에 따라 제어됩니다. 파일에 접근할 때, 경로명에 나열된 모든 디렉터리에 대한 실행 권한이 필요합니다.(리눅스 프로그래밍 인터페이스, 섹션 15.4.3, 페이지 297). 심볼릭 링크는 대상에 대한 절대 경로 이름을 사용하기 때문에드카나가라지그룹 요구실행하다각 경로 이름 구성 요소에 대한 권한: /, home, dkanagaraj.forever. 경로 권한 제약 조건은 심볼릭 링크 자체를 포함하여 모든 파일에 적용되지만 귀하는 이를 다루었다고 생각합니다.

관련 정보