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