我想设置一个文件夹,使其内创建的任何东西(目录、文件)都继承默认权限和组。
让我们称这个组为"媒体"。 还有,在该目录中创建的文件夹/文件应该自动拥有g+rw。
我发现了它。应用默认权限。
从这篇文章中。
chmod g+s <directory> //set gid
setfacl -d -m g::rwx /<directory> //set group to rwx default
setfacl -d -m o::rx /<directory> //set other
接下来我们可以验证。
getfacl /<directory>
输出。
# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
这是对Chris回答的补充,它是基于我在Arch Linux设备上的经验。
使用默认开关(-d)和修改开关(-m)只会修改默认权限,而保留现有权限。
setfacl -d -m g::rwx /<directory>
如果你想改变文件夹的整个权限结构,包括现有的权限(你必须多做一行,并使其成为递归-R。
setfacl -R -m g::rwx /<directory>
例如。
setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else.
(CREDIT给markdwite的评论中的撤销所有权限行的同义词)
添加自己/登录用户到www-data组,这样我们就可以使用www-data服务器创建的文件。
sudo usermod -a -G www-data $USER
需要重新启动/重新登录,以便新添加的组生效。
cd /var/www
添加www-data为html文件夹的组成员,您的用户为所有者,这样我们就拥有了它,同时也是组成员。
sudo chown -R $USER:www-data html
把您的用户名放在USER的地方
根据需要设置读,写,执行权限,(ugo) u=用户,g=组,o=其他用户
sudo chmod 750 html
设置html的GID,现在,html中新建的文件将继承所有权权限。
sudo chmod g+s html
这将为html目录和子目录中新建的文件/目录创建默认规则。
sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html
如果安装了SELinux,请忽略www-data上下文的要求,让它允许写权限。
sudo setsebool -P httpd_unified 1
列表目录查看新应用的权限
ls -ld html
返回这个
drwxrwsr-x+ 3 html www-data
后面的+号表示在目录上设置了ACL,访问控制列表。
*参考文献: [论坛链接][1]
使用下面的命令,你可以给文件设置默认权限。
chacl -R filename