/tmp의 심볼릭 링크 디렉토리로 CD를 이동할 때 권한이 거부되었습니다(값 700, 일반 사용자 소유).

/tmp의 심볼릭 링크 디렉토리로 CD를 이동할 때 권한이 거부되었습니다(값 700, 일반 사용자 소유).

질문:

디렉토리 자체로 변경할 수 있는데 일반 사용자(루트)가 소유한 700 권한을 가진 Symlink 디렉토리로 CD를 이동할 수 없는 이유는 무엇입니까?

예:

ttucker@plato:/tmp# uname -a
Linux plato 4.4.0-140-generic #166~14.04.1-Ubuntu SMP Sat Nov 17 01:52:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

ttucker@plato:/tmp$ whoami
ttucker
ttucker@plato:/tmp$ mkdir -v test_dir
mkdir: created directory ‘test_dir’
ttucker@plato:/tmp$ chmod -v 700 test_dir
mode of ‘test_dir’ changed from 0775 (rwxrwxr-x) to 0700 (rwx------)
ttucker@plato:/tmp$ ln -s -v test_dir/ test_sym
‘test_sym’ -> ‘test_dir/’
ttucker@plato:/tmp$ ls -ld test_*
drwx------ 2 ttucker ttucker 4096 Mar 21 10:29 test_dir
lrwxrwxrwx 1 ttucker ttucker    9 Mar 21 10:29 test_sym -> test_dir/

ttucker@plato:/tmp$ sudo su -
root@plato:~# whoami
root
root@plato:~# cd /tmp/test_sym/
-su: cd: /tmp/test_sym/: Permission denied
root@plato:~# cd /tmp/test_dir/
root@plato:/tmp/test_dir# pwd
/tmp/test_dir

기타 정보:

이는 Redhat에서도 발생합니다.

답변1

여기서는 답을 찾을 수 없어서 다른 사람들이 사용할 수 있도록 여기에 게시해야겠다고 생각했습니다.

답변:

여기서 동작은 /proc/sys/fs/protected_symlinks 설정에 따라 다릅니다.

root@plato:/tmp# cat /proc/sys/fs/protected_symlinks 
1

또한보십시오:

RedHat 버그 1034239 - 루트는 다른 사용자가 소유한 심볼릭 링크를 따를 수 없습니다.

https://bugzilla.redhat.com/show_bug.cgi?id=1034239

관련 정보