su – root提示su: Permission denied

最近一直在整理公司的Zabbix监控系统,以前一直没有时间来自己做一些东西。保哥是个闲不住的人,最近有机会就将公司的监控系统理一理,折腾下,跟这个人博客一样,有空了就会来搞一搞。

在添加监控过程中,发现其中有个别几台服务器使用普通用户登录操作系统,su到root下安装snmpd过程中,提示:su: Permission denied

1,验证账号密码


直接登录root账号是可以登录,可以看到账号密码均无问题。

2,检查系统日志


查看/var/log/message,仅有su: FAILED SU (to root) app01 on pts/1,一条有关记录。

查看/var/log/audit/audit.log

type=SYSCALL msg=audit(1598604435.492:59640): arch=c000003e syscall=2 success=yes exit=3 a0=7fe9caa5e560 a1=2 a2=7ffc347fb790 a3=3 items=0 ppid=23209 pid=23234 auid=1002 uid=1002 gid=1002 euid=0 suid=0 fsuid=0 egid=1002 sgid=1002 fsgid=1002 tty=pts0 ses=7990 comm=”su” exe=”/usr/bin/su” subj=staff_u:staff_r:staff_t:s0-s0:c0.c1023 key=(null)

type=AVC msg=audit(1598604435.508:59641): avc: denied { setuid } for pid=23235 comm=”su” capability=7 scontext=staff_u:staff_r:staff_t:s0-s0:c0.c1023 tcontext=staff_u:staff_r:staff_t:s0-s0:c0.c1023 tclass=capability

问题分析


(1),将audit.log拷贝到测试服务器。

#scp -P 4120 /var/log/audit/audit.log app01@10.10.10.11:/home/app01

(2),在10.10.10.11服务器上安装setroubleshoot软件,用于帮助排错。

#yum install setroubleshoot

#sealert -a /home/app01/audit.log

没有相关无法登录的分析结果。

su - root提示su: Permission denied

2,检查权限

(1),检查/usr目录权限

(2),检查/bin/su权限

(3),检查/usr/bin/passwd权限

检查以上权限,未发现有明显的设置错误。

3,检查配置文件


检查/etc/passwd及/etc/shadow,均未发现有明显的配置错误。

4,如何主动禁止su到其他用户呢?


为禁止普通用户su至root,需要分别修改/etc/pam.d/su和/etc/login.defs两个配置文件。

(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

解决问题


检查/etc/pam.d/su文件,确实将”#auth            required        pam_wheel.so use_uid”的注释去掉了。注释后,故障解除。

总结


一个人藏的东西,一百个人也找不到。希望大家以后再工作中,不要随便生产环境中的设置,修改后记得填写变更说明。

原创文章,作者:shengbao,如若转载,请注明出处:https://baogebiji.com/716.html

发表评论

电子邮件地址不会被公开。

评论列表(2条)