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