默认 ACL

默认 ACL

我有一个文件夹,其权限设置为 777,但是当我向该文件夹中添加任何文件或解压文件夹时。提取的文件或文件夹权限从未改变。目标文件夹权限为 777,我希望向该文件夹中添加的内容将自动获得 777 的权限。

当我通过提取该文件夹中的 .zip 文件来添加任何文件或文件夹时,提取的文件夹/文件权限不会自动更改。我总是必须对新添加的文件/文件夹进行 chmod 操作!

答案1

你想要的叫做访问控制列表-访问控制列表

访问控制列表 (ACL) 为文件系统提供了一种额外的、更灵活的权限机制。它旨在协助 UNIX 文件权限。ACL 允许您为任何用户或组授予对任何磁盘资源的权限。

acl包应该已经安装,要检查它,请运行:dpkg -s acl

要使用 ACL,您应该为文件系统启用它。但可以已经启用。要检查它,请使用tune2fs -l。替换/dev/sda6您的系统:

$ tune2fs -l /dev/sda6 | grep "Default mount options:"
Default mount options:    user_xattr acl

如果你看到访问控制列表单词 - 它已为设备启用/dev/sda6

如果你没看到访问控制列表word-运行tune2fs -o acl /dev/sda6以启用它。


修改 ACL 使用设置命令。要添加权限,请使用设置facl-m

为用户设置权限:

$ setfacl -m "u:username:rwx" /path/to/folder

这将为rwx用户设置 /path/to/folder 的 ACL username。这意味着在此文件夹中创建的所有文件都将具有 的rwx权限username


设置群组权限:

$ setfacl -m "g:groupname:rwx" /path/to/folder

这会将rwx组的 ACL设置groupname为 /path/to/folder。这意味着在此文件夹中创建的所有文件都将具有rwx组的权限groupname


要设置其他权限:

$ setfacl -m "o:rwx" /path/to/folder

这将为rwx其他人设置 ACL,使其可以访问 /path/to/folder。这意味着在此文件夹中创建的所有文件都将具有rwx其他人的权限。


检查权限:

$ getfacl /path/to/folder

合并 acl

$ setfacl -m u:username:rwx,g:groupname:rwx,o:rwx /path/to/folder

默认 ACL

 The new object inherits the default ACL of the containing directory as its
 access ACL.

 If no default ACL is associated with a directory, the mode parameter to the func‐
 tions creating file objects and the file creation mask (see umask(2)) are used to
 determine the ACL of the new object:

 The new object is assigned an access ACL containing entries of tag types
 ACL_USER_OBJ, ACL_GROUP_OBJ, and ACL_OTHER. The permissions of these entries
 are set to the permissions specified by the file creation mask.

因此,如果你设置默认 ACL,那么首选ACL。这意味着如果为user或设置了 ACL group,则新创建的文件将继承默认访问控制列表反正. 小心使用默认 ACL。

要设置默认 acl 使用-d键,

$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder

或使用defaultword

$ setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /path/to/folder

设置默认 ACL 时要小心谨慎。例如,如果像这样设置:

$ setfacl -d -m o:--x /path/to/folder

现在获取此 ACL

$ getfacl /path/to/folder
# file: path/to/folder
# owner: c0rp
# group: c0rp
user::rwx
group::rwx
other::--x
default:user::rwx
default:group::rwx
default:other::--x

组和用户的默认 ACL 将rwx自动!

删除 ACL

$ setfacl -b /path/to/folder

这将从文件夹中删除所有 ACL


最后

如果您是系统中唯一的用户,我建议使用默认 ACL。

$ setfacl -d -m u::rwx,g::rwx,o::rwx /path/to/folder

这将对 /path/to/folder 执行您想要的操作

来源

linux 系统-https://wiki.archlinux.org/index.php/Access_Control_Lists

帮助.ubuntu-https://help.ubuntu.com/community/FilePermissionsACLs

相关内容