分享最新优惠信息
购买主机更加划算

Linux系统禁用Sudo用户“su”访问的详细方法介绍

su命令是一个特殊的Linux 命令,它允许你以另一个用户和组的身份运行命令。此外,su命令还允许切换到root帐户(如果不带任何参数运行)或另一个指定的用户帐户。

默认情况下,所有用户都可以访问su命令。但作为系统管理员,你可以使用sudoers文件禁用用户或用户组的su访问权限。

众所周知,sudoers文件驱动sudo安全策略插件,该插件确定用户的sudo权限。sudo命令允许用户以另一个用户的安全权限运行程序(默认情况下,作为root用户)。

Sudo用户

如果想要切换到另一个用户帐户,用户可以从他们当前的登录会话中运行su命令,命令如下在此示例中,用户aaronk正在切换到testuser帐户,这时系统将提示用户aaronk输入testuser 帐户的密码:

$ su testuser

切换到其它用户

要切换到root帐户,用户必须具有root密码或有权调用sudo命令。换句话说,用户必须存在于sudoers文件中。在此示例中,用户aaronk(一个sudo用户)正在切换到root帐户。

调用sudo命令后,系统会提示用户aaronk输入密码,如果密码有效,则授予用户以root身份访问shell的权限:

$ sudo su

切换到根用户

如何禁用Sudo用户的su访问?

要禁用sudo用户(例如上面的aaronk用户的su访问权限,首先,备份位于/etc/sudoers的原始sudoers文件,命令如下所示:

$ sudo cp /etc/sudoers /etc/sudoers.bak

然后使用以下命令打开sudoers文件。请注意,不建议手动编辑sudoers文件,建议使用visudo命令:

 $ sudo visudo

在别名命令部分下,创建以下别名:

Cmnd_Alias DISABLE_SU = /bin/su

然后在文件末尾添加以下行,注意,可以将用户名aaronk替换为你希望禁用su访问权限的用户:

aaronk ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU

保存文件并关闭它。

然后测试以验证设置是否正常运行,系统应返回如下错误消息:“Sorry, user aaronk is not allowed to execute ‘/bin/su’ as root on tecmint.”。

$ sudo s

禁用对Sudo用户的Su访问

为一组Sudo用户禁用su访问

当然,你还可以禁用一组sudo用户的su访问权限例如,要禁用组admin中所有用户的su访问权限,请修改以下行:

%admin ALL=(ALL) ALL

替换成:

%admin ALL=(ALL) ALL, !DISABLE_SU

保存文件并关闭它。

要将用户添加到管理员组,请运行usermod命令(将用户名替换为实际用户):

$ sudo usermod -aG admin username

最后,如果想了解su、sudo和sudoers有关更多信息,可以查看帮助手册页:

$ man su
$ man sudo
$ man sudeors
未经允许不得转载:惠主机 » Linux系统禁用Sudo用户“su”访问的详细方法介绍

相关文章