it-swarm.cn

如何为目录中的所有文件夹/文件设置默认文件权限?

我想设置一个文件夹,以便其中创建的任何内容(目录,文件)都继承默认权限和组。

让我们将群组称为“媒体”。而且,在目录中创建的文件夹/文件应自动具有g + rw。

274
Chris

我找到了它: 正在应用默认权限

从文章:

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
288
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 [〜#〜]在注释中标记为撤消所有特权行的句法)

29
thebunnyrules

将您自己/登录的用户添加到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
Bsienn