use*_*443 5 permissions root sudo
在以下访问权限中,我不确定第二个“root”代表什么。
第一个是拥有权限的所有者rws(s 代表什么?),第二个是名为 root 的组。它是一个只有 root 用户是成员的特殊组吗?
$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 157760 Jan 11 2016 /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)
如果我错了,那么上面的访问权限是什么意思?
将s在rws代表setuid意义设置用户ID。这是一个特殊的权限位,允许程序在由任何用户运行时以所有者的有效UID运行,在本例中为 root。因此,当您作为普通用户运行sudo可执行文件时,您实际上是以 root 身份执行的。此权限位存在安全风险,仅应在绝对必要的情况下应用。
William E. Shotts Jr 对The Linux Command Line中的setuid位的解释:
当应用于可执行文件时,它将有效用户 ID 从真实用户(实际运行程序的用户)的有效用户 ID 设置为程序所有者的有效用户 ID。大多数情况下,这会提供给超级用户拥有的一些程序。当普通用户运行“setuid root”程序时,该程序以超级用户的有效权限运行。这允许程序访问普通用户通常被禁止访问的文件和目录。显然,因为这会引起安全问题,所以必须将 setuid 程序的数量保持在绝对最小值。
root列表中的第二个是拥有该文件的组,是的,只有用户 root 在组 root 中:
$ getent group root
root:x:0:
Run Code Online (Sandbox Code Playgroud)
以下是具有不同用户和组所有权的文件示例:
-rw-r----- 1 root shadow 1456 Nov 22 20:08 /etc/shadow
Run Code Online (Sandbox Code Playgroud)
这意味着该文件只能由 root 读取和写入,但影子组的成员也可以读取该文件。
| 归档时间: |
|
| 查看次数: |
22445 次 |
| 最近记录: |