所以我有一个目录:www\
看起来像这样:
[eugene@server ~]$ ll 共 0 drwxrwx---. 2 eugene eugene 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/ [eugene@server ~]$ ll drwxrwx---+ 2 eugene apache 43 十二月 10 16:10 www [eugene@server ~]$ echo 123 > www/test.txt [eugene@server ~]$ ll www/ -rw-rw----+ 1 eugene eugene 4 十二月 10 16:11 test.txt [eugene@server ~]$
正如您所见,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