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
组。