su 命令报错 su: Permission denied
su 命令 报错 su: Permission denied,不管是su普通用户还是root,都会报这个错误,可以确定的是密码是正确的,因为ssh可以正常登录,root用户 su 其他用户正常。
[user01@my-linux ~]$ su -
Password:
su: Permission denied
对比正常主机su命令的权限都是正常的有s权限。
[user01@my-linux ~]$ ll /usr/bin/su
-rwsr-xr-x 1 root root 32128 10月 1 2020 /usr/bin/su
其实这种登录异常问题排除密码错误、密码过期、用户锁定等问题首先应该想到的就是PAM模块了,PAM(Pluggable Authentication Modules)负责系统中很多应用程序的登录认证,包括sshd、vsftpd、su等。例如ssh登录认证配置文件是/etc/pam.d/sshd用户可根据需要配置相应的认证规则。你也可以为自己的其他应用配置PAM认证。
查看su的PAM认证配置
[root@my-linux ~]# cd /etc/pam.d
[root@my-linux pam.d]# cat su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
解决方法
su 的PAM配置文件中有auth required pam_wheel.so use_uid根据上一句的说明可以知道要使用su命令则该用户必须在wheel用户组中,而我的普通用户没有在wheel用户组中。有两种方法可以解决这个问题,一是注释该行,二是将普通用户加入wheel组。