chown-不允许操作


37

我以最小权限登录。

我不明白为什么它不允许我在没有su特权的情况下chown我拥有的文件。显然我可以使用sudo,但是我想了解为什么?因为www数据组?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

Answers:


51

非特权用户(非root用户)不能chown使用其他用户名归档。要使用chown,用户必须具有目标用户的特权。换句话说,只能root将文件提供给另一个用户。

正如解释这里(感谢@slhck):

只有有效用户ID等于文件用户ID或具有适当特权的进程才可以更改文件的所有权。如果_POSIX_CHOWN_RESTRICTED对路径有效:

  • 更改用户标识仅限于具有适当特权的进程。

  • 当且仅当所有者等于文件的用户ID或(uid_t)-1并且组等于时,才允许将有效用户ID等于文件的用户ID的进程更改组ID,但没有适当的特权。呼叫过程的有效组ID或其补充组ID之一。

@Gilles Unix&Linux答案中很好地解释了其背后的原理:

进行此限制的原因是,向其他用户提供文件可能会使不良情况在不常见但仍很重要的情况下发生。例如:

  • 如果系统启用了磁盘配额,则Alice可以在只能由她访问的目录下创建一个可写入世界的文件(因此,没有其他人可以访问该目录中的该可写入世界的文件),然后运行chown将该文件归所有者所有另一个用户Bill。即使只有Alice可以使用该文件,该文件也将计入Bill的磁盘配额之内。
  • 如果Alice向Bill赠送了一个文件,则不会有Bill没有创建该文件的跟踪。如果文件包含非法或其他危害数据,则可能会出现问题。
  • 某些程序要求其输入文件属于特定用户才能认证请求(例如,文件包含一些程序将代表该用户执行的指令)。这通常不是安全的设计,因为即使Bill创建了一个包含语法正确的指令的文件,他可能也没有打算在此特定时间执行它们。但是,允许Alice创建具有任意内容的文件并将其用作Bill的输入只会使情况变得更糟。


谢谢@slhck我检查了 man页面,但找不到明确的提及,答复已更新。
terdon 2014年

大!现在非常清楚...如果minimi是www-data组的一部分怎么办?

@SandroDzneladze不是,您需要具有与要锁定的用户相同的用户ID。
terdon 2014年
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.