为什么简单的用户密码允许 Ubuntu 上的 root 访问?

为什么简单的用户密码允许 Ubuntu 上的 root 访问?

我有一个客户,我给他设置了一台 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

这样就解决了问题。如果他现在尝试提升权限,他就无法做到。

相关内容