网络安全系列之十三 Linux中su与sudo的安全设置

1. 限制使用su命令的用户

Linux系统中的root用户权限过大,所以在实际使用中一般都是以普通用户的身份登录,当需要时可以切换到root用户身份。切换用户身份使用su命令。

但是我们可能并不希望所有用户都能切换到root身份,而是只想指定某个用户可以切换,比如只允许zhangsan用户使用su命令切换身份。

要限制使用su命令的用户,需要进行两个方面的设置。

首先需要启用pam_wheel认证模块,

[root@server ~]# vim /etc/pam.d/su ‘将文件中下面一行前的#去掉

auth required pam_wheel.so use_uid

这样凡是执行“su – root”命令的用户都将受到限制,只有wheel组中的成员才有权限执行该命令。

因而下面需要做的就是将zhangsan加入到wheel组中。

[root@server ~]# gpasswd -a zhangsan wheel

[root@server ~]# id zhangsan

uid=501(zhangsan) gid=501(zhangsan) groups=501(zhangsan),10(wheel)

这样,当使用一个不属于wheel组成员的账号切换到root时,系统便会拒绝。

例如,使用lisi切换到root,即使输入了正确的root用户密码,也会提示“密码不正确”。

[lisi@localhost ~]$ su - root

口令:

su: 密码不正确

2. 使用sudo机制提升权限

利用su命令切换到root用户,必须要输入root用户的密码。对于管理员,可以先用普通用户的身份登录系统,然后再用su命令切换到管理员账号;而对于普通用户如果也可以使用su命令,这很明显不利于系统安全性,所以对于普通用户更常使用的是sudo命令。

sudo命令的作用主要在于能够允许经过授权的个别普通用户以root权限执行一些授权使用的管理命令。

如以普通用户zhangsan的身份创建用户,会提示没有权限:

[zhangsan@localhost ~]$ useradd test

-bash: /usr/sbin/useradd: 权限不够

下面让zhangsan使用sudo命令以root权限去执行命令。注意,普通用户使用sudo执行命令时会要求提供自己的密码进行验证。

[zhangsan@localhost ~]$ sudo useradd test

[sudo] password for zhangsan:

zhangsan is not in the sudoers file. This incident will be reported.

zhangsan使用sudo命令仍然无法创建用户,这是因为在Linux中只有被授权的用户才能执行sudo命令,而且使用sudo也只能执行那些被授权过的命令。

所以要使用sudo命令首先必须要经过管理员的授权设置,需要修改配置文件“/etc/sudoers”。

例如:授权普通用户zhangsan可以通过sudo方式执行所有的命令:

注意,“/etc/sudoers”是一个只读文件,修改完成保存退出时要使用“wq!”命令。

如果希望zhangsan只能执行部分命令,可以在“/etc/sudoers”中指定zhangsan所能执行的命令的文件路径,命令的文件路径可以通过which命令查找。

例如:授权zhangsan只能执行useradd和userdel命令。

zhangsan每次在执行sudo命令时都要输入自己的密码,为了省去普通用户执行sudo命令时需要输入密码的麻烦,可以在“/etc/sudoers”进行如下设置:

除了针对用户授权之外,我们也可以对用户组授权,这样用户组内的所有成员用户就都具有了执行sudo命令的权限。如果授权的对象是用户组,需要在组名的前面要加上“%”。

例如:授权managers组内的成员用户可以添加、删除、更改用户账号。

本文出自 “一壶浊酒” 博客,转载请与作者联系!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。