属于第 0 组意味着什么?

属于第 0 组意味着什么?

我继承的系统中的几个用户在 /etc/passwd 中将其组设置为 0。这意味着什么?他们本质上获得了完整的 root 权限吗?

该系统运行的是 CentOS 5,用户似乎主要是与系统相关的事物,尽管前管理员也在该组中:

$ grep :0: /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
operator:x:11:0:operator:/root:/sbin/nologin
jsmith:x:500:0:Joe Smith:/home/jsmith:/bin/bash
$

答案1

与用户 0(root 用户)不同,组 0 在内核级别没有任何特殊权限。

传统上,组 0 在许多 UNIX 变体上拥有特殊权限 — 要么是成为 root 的权利su(在输入 root 密码后),要么是在不输入密码的情况下成为 root 的权利。基本上,组 0 中的用户是系统管理员。当组0有特殊权限时,称为wheel

sudo在 Linux 下,组 0 对于特权升级实用程序(例如和)也没有任何特殊含义su。看为什么 Debian 不默认创建“wheel”组?

在CentOS下,据我所知,group 0没有什么特殊意义。默认文件中未引用它sudoers。该系统的管理员可能决定模仿 UNIX 传统并授予组 0 的成员一些特殊权限。检查 PAM 配置 ( /etc/pam.conf/etc/pam.d/*) 和 sudoers 文件 ( /etc/sudoers)(这些不是组 0 可能被授予特殊权限的唯一位置,但最有可能)。

答案2

与用户 ID 0 不同,内核不会向组 0 授予任何特殊权限。但是,由于 0 通常是用户的默认组root,这意味着这些人通常能够访问或修改 root 拥有的文件(因为这些文件通常也属于组 0)。

此外,一些程式可以特殊对待0组。例如,su在某些 BSD 系统上将向组 0 的成员授予无密码 root 访问权限

因此,虽然它不是超级用户类,但我仍然会注意谁是成员。

答案3

它只是意味着他们的主要组是root而不是其他任何东西,因此,例如,他们在访问组设置为 的文件时使用组设置root

大多数标准系统文件都属于,root.root但组权限通常与全局权限相同,因此,这本身并没有带来任何优势,除非您的系统已更改标准文件的组权限。

它不授予完全 root 权限。

答案4

我参加聚会有点晚了,但今天问自己同样的问题并得出以下结论:

这是反对最小特权原则因此应该避免。

更具体地说,这可能会给用户(读、写或执行)权限,不仅可以访问许多常规文件和目录,还可以授予用户许多权限。特别的就像与您的系统内核交谈一样。

但是因为这对于您的系统可能有所不同,您应该运行它来查找并检查所有它们(第一个用于读取,第二个用于写入,eXecute 留给读者作为练习):

find / -group 0 -perm -g+r ! -perm -o+r  -ls | less 
find / -group 0 -perm -g+w ! -perm -o+w  -ls | less

其中一些可能是常规文件和目录(如主目录 /root),但其他可能是作为内核接口的伪文件(如 /proc 和 /sys)

例如:

find /sys -type f -group 0 -perm -g+w ! -perm -o+w  -name 'remove'
/sys/devices/pci0000:00/0000:00:17.0/0000:13:00.0/remove
/sys/devices/pci0000:00/0000:00:17.0/remove
/sys/devices/pci0000:00/0000:00:16.6/remove
...
etc.

用于lspci -v |less找出这些设备是什么(例如:存储控制器、USB 控制器、网络和视频卡等)

相关内容