-4
-bash-3.2$ man chgrp | head -1
CHGRP(1)                         User Commands                        CHGRP(1)
-bash-3.2$ man chown | head -1   
CHOWN(1)                         User Commands                        CHOWN(1)

以下内容来自'man 7 man':

1 Commands
            Those commands that can be executed by the user from within a shell.
8 System management commands
            Commands like mount(8), many of which only root can execute.

为什么普通用户不能使用 CHGRP(1)/CHOWN(1)?据我了解,普通用户无法使用 CHGRP(8)/CHOWN(8)。

4

3 回答 3

1

让非root用户使用chown还是chgrp会有很多问题。

  1. 如果用户能够chown otheruser ownfile,那么在那之后,他将无法再访问自己的文件 - 不好。
  2. 如果某个邪恶的用户劫持了您的帐户,他将能够更改您文件的权限,使其现在归其他用户所有:例如邪恶用户或 www 用户。然后,窃取您的数据将是微不足道的。
于 2013-08-14T07:08:59.753 回答
0

如果任何用户可以成功地对不属于他的文件调用chown(2)系统调用(例如 thruchrgrpchown命令),那么 Linux 内核提供的基于用户的访问保护将毫无用处。恶意用户将更改其访问权限仅限于他的每个文件的所有权

当然,用户可以执行chown命令(例如通过键入/usr/bin/chown file),但是如果从普通用户调用这些命令将失败(并且具有非零退出代码),因为底层chown(2)系统调用将失败。

注意:如文件所述,普通用户可能chgrp属于他所属的某个组。

于 2013-08-14T07:08:44.683 回答
0

所有用户都可以使用chgrp将他们拥有的文件的组更改为他们所属的其他组。试试这个,用lpadmin任何第二个组替换组名:

touch t; ls -l t; chgrp lpadmin t; ls -l t

之前之后的调用ls将显示该组已更改。

于 2016-06-01T17:50:12.433 回答