如何检查普通用户是否具有超级用户权限

如何检查普通用户是否具有超级用户权限

我想检查普通用户是否具有超级用户权限(即 root 权限)。我的操作系统是 RHEL 6,我检查了/etc/passwd配置文件,但没有用。请告诉我在 Linux 机器中查找用户当前权限的任何方法。

答案1

过去,Unix 世界中的 root 模型很简单。uid 0,您就是 root,拥有所有权限。不过,情况已经发生了一些变化。

自杀位

可以授予文件自杀位因此即使普通用户也可以以 root 身份运行它们。好吧,这可能在原始 Unix 中存在。:-)

群组

如果用户属于组 0,他可能没有完全的 root 权限,但仍可以看到许多不该看到的内容。另外,在某些发行版中,wheel需要注意的是,su如果属于该组的用户知道 root 密码,他们就可以成为 root。

须藤

除了传统的 之外su,该sudo命令还允许限制某些用户/组只能以 root 身份执行某些命令。使用 来查看visudo

ssh 访问

使用 ssh 可以生成一个 ssh 密钥,您可以使用该密钥以 root 身份连接,但只能使用命令 x、y 和 z。这通常用于备份等任务,其中备份过程必须能够访问系统中的每个文件。

能力

Linux 内核已获得能力它可以授予对某些子系统(如网络接口或块设备)的访问权限。请参阅此列表

SELinux 角色

如果安全框架SELinux在您的系统中启用,SELinux 也具有基于角色的访问权限。请参阅Fedora 的 SELinux 指南

答案2

超级用户权限由 UID (用户 ID) 0 赋予。从 /etc/password 文件中 grep 用户。用户后面的第一个数字字段是 UID,第二个是 GID (组 ID)。如果用户不是 UID 0,则他们没有 root 权限。这不包括他们可能通过加入适当的组(wheel、nobody 等)而拥有的额外权限,但这些权限不是超级用户。如果您仍然不确定此用户可以做什么和不能做什么,只需 su 到该用户(su - 用户名)并查看您可以做什么。您可以触摸不属于您的目录中的文件吗?如果不能,您就不是超级用户。希望这对您有所帮助。

例如:nobody:x:99:45:Nobody:/:/sbin/nologin

Nobody 是用户名,99 是 uid,45 是 gid。

答案3

用户可以通过名为 的程序授予权利,从而获得间接的“超级用户”权限sudo

sudo可以指定哪个用户或哪个组可以以超级用户权限执行某些程序。

答案4

用户通常没有超级用户权限。但是我想到有三种方法可以让普通用户(即 UID != 0)获得 root 权限。

  1. 他以 root 身份使用 s 位执行了一些操作。您可以通过在整个文件系统中搜索此类文件来找到它(使用 find)。
  2. 他改变了用户 ID(su 命令)——但每个用户都可以这样做,只要他知道 root 密码(因此不要给出你的 root 密码来禁止它)。
  3. sudo. 只需检查 /etc/sudoers 哪些用户被允许以 root 权限执行什么操作。

相关内容