我有一个客户,我给他设置了一台 Linux 机器。他不太懂技术,显然只需要一个简单的密码就可以登录 Ubuntu。他的用户名和密码如下:
user: John
password: GoodDeals
另一方面,机器上的 root 密码要复杂得多,只有我才应该有权访问。
但是当我使用命令时:
sudo su -
Ubuntu 提示输入 John 的简单密码,然后授予整个机器的 root 访问权限。
这可能是一个问题,因为一旦员工知道登录机器的简单密码,他们就可以获得 root 访问权限。
这是预期的行为吗?
为什么知道用户帐户密码就会自动获得 root 访问权限?
答案1
默认情况下,Ubuntu Linux 发行版禁用 root 登录并且未设置 root 密码,因此为了提升其权限级别,用户需要使用 运行命令sudo
,并且只有当用户是 sudoer(在文件中有其条目sudoers
)时才允许这样做,简要如下:
admin 组的成员可以获得 root 权限
%admin ALL=(ALL) ALL
允许组 sudo 成员执行任何命令
%sudo ALL=(ALL:ALL) ALL
Root 和 wheel 组中的用户可以以任何用户身份在任何机器上运行任何内容
root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL
全职系统管理员可以在任何机器上运行任何程序,无需密码
FULLTIMERS ALL = NOPASSWD: ALL
兼职系统管理员可以运行任何程序,但不需要密码
PARTTIMERS ALL = ALL
您正在运行的命令是
sudo /sbin/su -
当用户运行时sudo
,如果没有发生 RootSudoTimeout,则不会提示输入密码(sudo 密码不是 root 密码),以限制这一点
约翰可能su
只对操作员
john ALL = /usr/bin/su operator
john 可以su
向任何人(但 root 除外)发送消息,并且不允许发送标志
john ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
答案2
知道用户帐户密码并不会自动授予 root 访问权限。 须藤旨在为像 John 这样的特权用户提供 root 访问权限,使用用户密码,而不是苏,执行任何命令都需要 root 密码。显示输出IDJohn 的命令。我想您已用这个用户名设置了您的 Ubuntu,因此 John 默认属于 sudo 组。
答案3
发现 John 不应该在 sudo 组中。使用以下命令将 John 从 sudo 中移除:
gpasswd -d john sudo
这样就解决了问题。如果他现在尝试提升权限,他就无法做到。