为什么普通用户不能使用chgrp / chown

时间:2013-08-14 07:02:42

标签: linux command

-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)。

3 个答案:

答案 0 :(得分:2)

让非root用户使用chownchgrp会遇到很多问题。

  1. 如果用户能够chown otheruser ownfile,那么之后,他将无法访问自己的文件 - 不是很好。
  2. 如果某个恶意用户劫持了您的帐户,他将能够更改您的文件的权限,使其现在由其他用户拥有:如恶意用户或www用户。然后,窃取你的数据将是微不足道的。

答案 1 :(得分:0)

如果任何用户可以在不属于他的文件上成功调用chown(2)系统调用(例如,通过chrgrpchown命令),则Linux内核提供基于用户的访问保护没用。恶意用户将更改其访问权限仅限于他的每个文件的所有权

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

注意:如有文件记载,普通用户可以chgrp到他所属的某个群组。

答案 2 :(得分:0)

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

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

之前的之后的 <{em>}之后的将显示该组已更改。