![不允许使用 chown 更改目录的组所有者....为什么?](https://linux22.com/image/603350/%E4%B8%8D%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%20chown%20%E6%9B%B4%E6%94%B9%E7%9B%AE%E5%BD%95%E7%9A%84%E7%BB%84%E6%89%80%E6%9C%89%E8%80%85....%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在尝试chown
在具有以下权限和所有者的目录上执行:
drwxrwxr-x 2 justin devs 4096 Jan 1 20:42 test
我试图以用户身份简单地执行以下操作justin
:
chown justin:nginx test
因此基本上只需将群组所有者更改为nginx
,但我得到:
chown: changing ownership of `test/': Operation not permitted
有任何想法吗?
答案1
首先,使用chgrp
命令代替chown
,这样就可以了。
在使用的情况下chown
,安全原因在大多数 Linux 环境中,任何所有权变更都仅限于根用户,即使您被标记为文件、目录等的所有者,也一样。在一种情况下,这是为了防止用户通过将文件权限位设置为 777 并将文件所有权更改为其他未知用户并耗尽其配额来逃避配额。
因此,在用户环境中使用该chown
命令,尤其是在所有权没有改变的情况下,不应仅仅用于更改文件的组。
笔记:您必须是尝试将文件更改为的组的成员。这可以通过 进行验证id -a
。如果您不属于该组,您将收到此消息,即使您是该文件的所有者。
答案2
您必须是该组的成员才能将当前组所有权更改为 。您可以/etc/groups
以 root 身份编辑文件,以确保用户 justin 是 nginx 组的成员。对组进行更改后,您需要重新登录系统才能使其生效,或者要在不重新启动/注销的情况下更改为该组,您可以使用 cmd newgrp nginx
。
现在您应该能够chgrp nginx test
以用户 justin 的身份使用 cmd 更改文件或文件夹的组。