Linux

目錄上的 Setgid 未授予目錄內文件的執行權限

  • January 25, 2022

我創建瞭如下目錄:

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 權限和文件類型

引用自:https://unix.stackexchange.com/questions/687902