在 linux 机器上,我如何列出所有拥有 root 权限的用户(甚至更好的是,所有用户以及他们是否拥有 root 权限)?
War*_*ner 48
不要忘记更改root密码。如果除 root 之外的任何用户的 UID 为 0,他们都不应该这样做。馊主意。去检查:
grep 'x:0:' /etc/passwd
同样,您不应该这样做,而是要检查用户是否是根组的成员:
grep root /etc/group
要查看是否有人可以以 root 身份执行命令,请检查 sudoers:
cat /etc/sudoers
要检查 SUID 位,它允许以 root 权限执行程序:
find / -perm -04000
Den*_*son 39
要查看 UID 0 是谁:
getent passwd 0
Run Code Online (Sandbox Code Playgroud)
要查看谁在组中root,wheel adm以及admin:
getent group root wheel adm admin
Run Code Online (Sandbox Code Playgroud)
要列出所有用户及其所属的组:
getent passwd | cut -d : -f 1 | xargs groups
Run Code Online (Sandbox Code Playgroud)
纯 root 是用户 ID“0”。
系统中的所有用户都在/etc/passwd文件中:
less /etc/passwd
Run Code Online (Sandbox Code Playgroud)
root 用户的用户 ID 为“0”,即第 3 列。那些以“0”为组(第 4 列)的人也可能有一些 root 权限。
接下来,您需要查看组,看看谁是“root”或“wheel”或“admin”组的其他成员:
less /etc/group
Run Code Online (Sandbox Code Playgroud)
这些组中列出的用户可能具有一些 root 权限,尤其是通过“sudo”命令。
您要检查的最后一件事是“sudo”配置,看看谁被列为有权运行此命令。这个文件本身有很好的文档记录,所以我不会在这里复制它:
less /etc/sudoers
Run Code Online (Sandbox Code Playgroud)
这涵盖了谁可以拥有 root 访问权限的主要领域。