
所以我有一個目錄: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