我有一个文件夹,其权限设置为 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
或使用default
word
$ 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