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

我想检查一个普通用户是否拥有超级用户权限(意味着root权限)。 我的操作系统是RHEL 6,我检查了/etc/passwdconfiguration文件,但没有用。 请告诉我任何方法在Linux机器上查找用户的当前特权。

在Unix世界的过去的根模型很容易。 你是根,你拥有一切权力。 不过事情有所改变。

suid位

文件可以用suid位来授予,所以即使普通用户也可以以root身份运行。 好的,这可能是在原来的Unix。 🙂

如果用户属于组0,他可能没有完整的root权限,但仍然可能看到许多不想看到的东西。 同样在一些发行版中, wheel组是一些需要注意的事情 – 如果用户知道root密码,那么属于这个组的用户就可以成为root用户。

须藤

除了传统的susudo命令还允许限制某些用户/组只能以root身份执行一些命令。 用visudo检查一下。

ssh访问

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

function

Linux内核已经获得了能够访问某些子系统(如networking接口或块设备)的function。 看到这个清单 。

SELinuxangular色

如果您的系统中启用了安全框架SELinux,则SELinux也具有基于angular色的访问权限。 看Fedora有关SELinux的指南 。

超级用户权限是通过从/ etc / password文件中为用户提供UID(userid)0. grep给出的。 用户之后的第一个数字字段是UID,第二个数字字段是GID(groupid)。 如果用户不是UID 0,则它们不具有root权限。 这不包括他们可能通过在一个适当的组(轮子,没有人等),但这些不是超级用户额外的权限。 如果你仍然不确定这个用户可以做什么,不能做什么,只需要su(su – username),看看你能做什么。 你可以在一个你不拥有的目录中接触一个文件吗? 如果不是,你不是超级用户。 我希望这有助于。

例如:nobody:x:99:45:没有人:/:/ sbin / nologin

没有人是用户名,99是uid,45是gid。

用户可以通过一个名为sudo的程序来获得间接的“超级用户”权利。

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

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

  1. 他从根执行s-bit。 你可以通过search你的整个文件系统find这样的文件(使用find)。
  2. 他改变了userid(su命令) – 但是每个用户都可以做,只要他知道root密码(所以不要给你root密码来禁止它)。
  3. 须藤。 只需检查/ etc / sudoers哪些用户被允许执行具有根权限的内容。