使用 +w 表示法授予特定用户写入文件夹的权限

Max*_*kyi 227 permissions

我知道我可以将写入权限分配给所有者/组/其他人,如下所示:

chmod u+w myfolder
Run Code Online (Sandbox Code Playgroud)

我可以在这里指定特定用户吗?有些像这样:

chmod username u+w myfolder
Run Code Online (Sandbox Code Playgroud)

小智 293

你可以使用setfacl

setfacl -m u:username:rwx myfolder
Run Code Online (Sandbox Code Playgroud)

这会为特定用户设置权限,而不会更改目录的所有权。

查看手册页以获取更多详细信息和示例。

编辑:评论中突出显示的点

  1. setfacl = 设置文件 ACL,ACL = 访问控制列表,因此简称“ setFacl
  2. 如果要递归地将其应用于所有子目录:添加-R标志,如下所示:setfacl -R -m u:username:rwx myfolder

  • 如果要递归地将其应用于所有子目录:添加 -R 标志,如下所示:`setfacl -R -mu:username:rwx myfolder` (25认同)
  • 完美答案!在 CentOS (`yum -y install acl`) 和 FreeBSD 上也可以使用 `setfacl`。 (10认同)
  • 只是一个注意事项:setfacl = 设置文件 ACL,ACL = 访问控制列表,因此简称“setFacl” - 我认为更容易记住。 (9认同)
  • 我收到“不支持操作” (2认同)

Cha*_*aro 228

如果要更改拥有此文件或目录(文件夹)的用户,则必须使用命令chown. 例如,如果你运行

sudo chown username: myfolder
Run Code Online (Sandbox Code Playgroud)

拥有 myfolder 的用户将是 username。然后你可以执行

sudo chmod u+w myfolder
Run Code Online (Sandbox Code Playgroud)

为用户名用户添加写权限。

但是如果你想将此用户添加到与“myfolder”关联的组中,你可以运行

sudo usermod -a -G groupname username
Run Code Online (Sandbox Code Playgroud)

然后执行

sudo chmod g+w myfolder
Run Code Online (Sandbox Code Playgroud)

将写入权限添加到组。

  • 有一种方法可以让两个用户都可以访问该文件夹,而不需要组;在同一问题的答案中提出了建议:superuser.com/a/235398/191720。 (2认同)

Pab*_*abi 13

不,这是不可能的。您可以更改文件的所有者

[sudo] chown username: foldername
Run Code Online (Sandbox Code Playgroud)

或者您可以将用户添加到拥有该文件的组

usermod -a -G {group-name} username
Run Code Online (Sandbox Code Playgroud)

  • 我试过了,但我的用户仍然无法写入该文件夹 (2认同)

小智 7

如果要递归地将其应用于所有子目录:添加 -R 标志,如下所示:

setfacl -R -m u:username:rwx myfolder
Run Code Online (Sandbox Code Playgroud)


小智 7

在 Ubuntu 中,递归地(文件夹及其所有子文件夹)向特定用户授予权限:

sudo chown -R <username>: <folderName>
Run Code Online (Sandbox Code Playgroud)