禁止使用chown更改目录的组所有者...为什么?


10

我试图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

有任何想法吗?

Answers:


15

首先,使用chgrp命令而不是chown,它将起作用。

在使用chown的情况下....出于安全考虑,在大多数Linux上下文中,即使您被标记为文件,目录等的所有者,但所有权的更改都仅限于root用户。在一种情况下,这是通过将文件许可权位设置为777并将文件的所有权更改为其他一些未知用户并消耗其配额来防止用户逃避配额。

因此,chown在用户上下文中使用该命令,尤其是在所有权不更改的情况下,不应仅用于更改文件组。

注意:您必须是尝试将文件更改为的组的成员。可以通过验证id -a。如果您不在该组中,即使您是该文件的所有者,也会收到此消息。


1
与相同chgrp nginx test,不允许操作。
贾斯汀

如果您以ing节点的所有者身份运行chgrp命令,则应该可以使用。您的文件系统是否挂载为只读?
mdpc

不,不起作用。这是一个测试案例:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
贾斯汀

1
明白了...您无法将所有权更改为您不允许进入id -a的组。请检查并确认您要尝试将文件更改为的组对您可用。
mdpc

1
是的,这就是解决方案。
mdpc

4

您必须是该组的成员才能将当前的组所有权更改为。您可以/etc/groups以root用户身份编辑文件,以确保用户justin是nginx组的一部分。对组进行更改后,您需要重新登录系统以使其生效或无需重新启动/注销即可更改为组,可以使用cmd newgrp nginx

现在,您应该能够使用cmd chgrp nginx test作为用户justin 来更改文件或文件夹的组。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.