linux系统为了限制权限,有时候需要禁止普通用户su到root用户
为禁止普通用户su至root,需要分别修改/etc/pam.d/su和/etc/login.defs两个配置文件。
一、实验环境
[root@t2 pam.d]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@t2 pam.d]# uname -a Linux t2 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
其他的环境自行测试
二、详细配置
(1)去除/etc/pam.d/su文件中如下行的注释:
#auth required pam_wheel.so use_uid
(2)在/etc/login.defs文件中加入如下配置项:
SU_WHEEL_ONLY yes
经过上述配置后,普通用户将被禁止su至root,如果希望指定普通用户su至root,可以执行如下命令将该用户添加至wheel组中:
usermod -G wheel username
或者
gpasswd -a username wheel
三、示例
[root@t1 ~]# id a1 uid=1001(a1) gid=1001(a1) groups=1001(a1),10(wheel) [root@t1 ~]# id a2 uid=1002(a2) gid=1002(a2) groups=1002(a2)
验证
[a1@t1 ~]$ su - root Password: Last login: Fri Apr 19 16:40:23 CST 2019 from 10.0.0.1 on pts/2 [root@t1 ~]# [a2@t1 ~]$ [a2@t1 ~]$ su - root Password: su: Permission denied
2019-07-02修改
以上方法可以实现我们的目的,还有一种方法,也可以实现,诸公如果有时间可以多研究一下linux系统的pam认证
方法二:
修改 /etc/pam.d/su文件中如下行:
vim /etc/pam.d/su #auth required pam_wheel.so use_uid auth required /lib64/security/pam_wheel.so use_uid group=wheel
#路径不加也是可以的,因为我的环境是x86架构的
auth required pam_wheel.so use_uid group=wheel
各位自行验证即可