質問:
ディレクトリ自体に変更できますが、通常のユーザー(root)が所有する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 - ルートは他のユーザーが所有するシンボリックリンクをたどることができません。