超级用户模式 ​​- 我什么时候需要它?

时间:2014-04-07 08:46:15

标签: unix root su

有几个应用程序需要运行SU。什么是关于用户何时需要此权限的Unix规则?是否需要修改我们家外的东西? 这个问题来自一个更具体的问题 - 为什么我们需要root用户来插入带有insmod的内核模块?

1 个答案:

答案 0 :(得分:1)

Insmod需要超级用户权限,因为插入内核模块会修改操作系统内核。该模块将能够读取和写入系统内的任何内存,读取或修改磁盘上的任何文件,更改权限,任何资源的所有权等。

通常这些是受超级用户权限保护的东西:能够绕过对内存,文件和其他资源的访问控制,以及执行操作系统所需的各种管理任务(这可能会导致如果允许恶意用户,则系统不安全或无法使用。)

在linux中,可以以这样一种方式配置系统,即实际上没有一个超级用户,而是一系列细粒度的功能,每个功能都可以授予各个用户(实际上这就是它的建模方式)内核源代码:一个不检查当前UID是否为零,一个检查当前用户是否具有"更改所有权"功能[CAP_CHOWN])。在绝大多数部署的Linux系统中,系统配置了一个“全有或全无”超级用户权限(即主叫用户的有效用户ID是否为0)。

单个超级用户权限(EUID == 0)是Unix早期使用的传统模型,尽管有许多实现提供了更细粒度的权限。

修改主目录之外的文件是一种用途,尽管可以在一个主目录以外的地方拥有文件,并且其他用户可以在您的主目录中拥有文件。