我继承的系统中的几个用户在 /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 控制器、网络和视频卡等)