我有一个由 root 创建的文件夹,并且我希望能够向用户组添加权限,以便他们可以移动文件等等。
我做了以下事情:
chgrp -R developers testdir
该文件所有者现在是 root,组所有者是 developers。为什么 developers 中的用户还不能进行更改?
答案1
对于标准 unix 权限,您必须始终考虑所有者(用户/组/其他)、权限位和 umask。这些内容的组合描述了您的有效权限和新项目的权限。
- chown/chgrp 设置所有权。
- chmod 设置权限
- umask 是每个用户环境的一部分,并且根据其设置方式,它将删除权限位。
因此,如果您想为一个组创建一个共享文件夹,您通常需要执行类似这样的操作。
- 创建一个新组 (projectgrp) 并将用户添加到该组。
- 将项目文件夹下的所有内容的组所有权更改为 projectgrp
- 将所有文件夹的权限改为2775
- 将所有文件改为0664。
- 将所有用户的 umask 更改为 0002
当然,您还可以使用 ACL 做其他事情,这些事情对于系统管理员来说要复杂得多,但可以让最终用户更轻松。
答案2
因为该组对 testdir 上和其中的文件和目录没有适当的权限。