当我在特定文件夹中创建新文件和文件夹时,我希望它们继承父文件夹的组和权限。这可能吗 ?
例如
mkdir -p example.com/public
cd example.com
sudo chgrp apache public
chmod 775 public
现在当我创建一个新文件夹时
cd public
mkdir test
ls -al
drwxrwxr-x 3 foo bar 4096 Nov 3 16:19 public
该test
目录属于foo
我的默认组bar
。我希望新文件夹属于该apache
组。
我希望文件具有相同的行为。
有任何想法吗?
答案1
可以通过设置SGID位来继承组:
chmod g+s /path/to/directory
要继承权限,您需要 ACL:man 5 acl
您必须为目录设置默认 ACL:setfacl -d -m g::...
答案2
继承组所有权很容易。只需设置设置GID少量:
chmod g+s example.com/public
现在,在目录中创建的任何内容都应该具有apache
组所有者,并且目录将继承 SETGID 位。
不可能在所有系统上使用 ACL 继承权限,并且在某些情况下可能会影响性能。您可以umask
为 Web 服务器设置新文件/目录的权限,而不是使用 ACL 。