不允许使用 chown 更改目录的组所有者....为什么?

不允许使用 chown 更改目录的组所有者....为什么?

我正在尝试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 更改文件或文件夹的组。

相关内容