如何將 Linux ACL 設定為預設具有權限的特定群組?

如何將 Linux ACL 設定為預設具有權限的特定群組?

所以我有一個目錄:www\看起來像這樣:

[尤金@服務器 ~]$ ll
總計 0
drwxrwx---。 2 尤金 尤金 57 十二月 10 16:04 www

我想讓這個目錄中建立的所有新檔案都屬於該群組apache 有權限770

所以我做了:

[eugene@server ~]$ chgrp apache www/
[eugene@server ~]$ setfacl -Rm u:eugene:rwx,d:g:apache:rwx,d:o:--- www/
[尤金@服務器 ~]$ ll
drwxrwx---+ 2 尤金·阿帕奇 43 Dec 10 16:10 www
[eugene@server ~]$ echo 123 > www/test.txt
[eugene@server ~]$ ll www/
-rw-rw----+ 1 尤金 尤金 4 Dec 10 16:11 test.txt
[尤金@服務器~]$  

正如您所看到的,test.txt創建時沒有預期的群組apache。也沒有x設定(執行)權限...

我在這裡缺少什麼?

答案1

為了使用 apache 群組建立目錄中的文件,您最好設定 SETGUID 位元:

chmod +2000 www

至於創建檔案的預設權限,你不能使用ACL來做到這一點,因為預設的Linux umask總是獲勝。 Umask 不允許在建立的檔案的權限中建立具有任何 7 位數字 (rwx) 的檔案。

相反,您可以建立腳本MK文件裡面有以下內容:

touch $1
chmod 770 $1

使其可執行:

chmod 750 mkfile

並將其放入 /usr/local/bin 資料夾中。現在你可以在任何地方建立具有 770 權限的檔案:

mkfile my_file

相關內容