Linux
目錄上的 Setgid 未授予目錄內文件的執行權限
我創建瞭如下目錄:
root@host [~]# mkdir mydir root@host [~]# ls -ld mydir drwxrwxr-x 2 test test 4096 Mar 2 19:36 mydir root@host [~]#
然後我使用“chgrp”命令更改了目錄的組所有權,然後還添加了“setgid”權限。
root@host [~]# chgrp test2 mydir/ root@host [~]# chmod g+s mydir root@host [~]# ls -ld mydir/ drwxrwsr-x 2 test test2 4096 Mar 2 19:36 mydir/ root@host [~]#
現在,當我在目錄下創建文件時,我看到文件失去了
execute permission
。root@host [~]# touch mydir/myfile3 root@host [~]# ls -l mydir/myfile3 -rw-rw-r-- 1 test test2 0 Mar 2 19:59 mydir/myfile3 root@host [~]#
我的理解是該文件應該獲得與父目錄完全相同的權限。而且,
rwx permission
文件的父目錄也應該得到rwx permission
.
目錄上的 sgid 位會導致在其中創建的文件歸擁有該目錄的組所有,僅此而已。您可以在範例中看到這一點:
myfile2
由 group 擁有test2
。sgid 位不能確定目錄內創建的文件的權限。
同樣,有關詳細資訊,請參閱了解 UNIX 權限和文件類型。