linux 普通用戶登陸系統su - root的時候報錯su: Authentication failure


今天登陸服務器的時候,需要提權做一些操作,普通用戶su - root的時候提示密碼錯誤

[xtwh@jmw8a2003 ~]$ su
Password:
su: Authentication failure

密碼確認無誤之后

通過sudo -i提權,查看登陸日志

cat /var/log/secure

Jul 29 16:13:53 jmw8a2003 sshd[890450]: Accepted password for xtwh from 172.30.208.229 port 44776 ssh2
Jul 29 16:13:53 jmw8a2003 sshd[890450]: pam_unix(sshd:session): session opened for user xtwh by (uid=0)
Jul 29 16:13:54 jmw8a2003 unix_chkpwd[890544]: check pass; user unknown
Jul 29 16:13:54 jmw8a2003 unix_chkpwd[890556]: check pass; user unknown
Jul 29 16:13:54 jmw8a2003 unix_chkpwd[890556]: password check failed for user (root)
Jul 29 16:13:54 jmw8a2003 su: pam_unix(su:auth): authentication failure; logname=xtwh uid=501 euid=501 tty=pts/2 ruser=xtwh rhost=  user=root
Jul 29 16:13:54 jmw8a2003 su: pam_succeed_if(su:auth): requirement "uid >= 1000" not met by user "root"
Jul 29 16:14:36 jmw8a2003 unix_chkpwd[890914]: check pass; user unknown
Jul 29 16:14:36 jmw8a2003 unix_chkpwd[890915]: check pass; user unknown
Jul 29 16:14:36 jmw8a2003 unix_chkpwd[890915]: password check failed for user (root)
Jul 29 16:14:36 jmw8a2003 su: pam_unix(su:auth): authentication failure; logname=xtwh uid=501 euid=501 tty=pts/2 ruser=xtwh rhost=  user=root
Jul 29 16:14:36 jmw8a2003 su: pam_succeed_if(su:auth): requirement "uid >= 1000" not met by user "root"

根據網上一些相關的論壇,查詢說是/etc/pam.d/login文件里面有可能有一句限制用戶uid的規則,PAM 相關模塊策略配置,禁止了 UID 小於 1000 的用戶進行登錄

論壇上的處理辦法


要解決此問題,請進行如下配置檢查:

  1. 通過 SSH 客戶端或 管理終端 登錄服務器。

  2. 通過 cat 等指令查看異常登錄模式,對應的 PAM 配置文件。說明如下:

    文件 功能說明
    /etc/pam.d/login 控制台(管理終端)對應配置文件
    /etc/pam.d/sshd 登錄對應配置文件
    /etc/pam.d/system-auth 系統全局配置文件

    注:每個啟用了 PAM 的應用程序,在 /etc/pam.d 目錄中都有對應的同名配置文件。例如,login 命令的配置文件是 /etc/pam.d/login,可以在相應配置文件中配置具體的策略。
     

  3. 檢查前述配置文件中,是否有類似如下配置信息:

  4. auth        required      pam_succeed_if.so uid >= 1000

     

    如果需要修改相關策略配置,在繼續之前建議進行文件備份。

     

  5. 使用 vi 等編輯器,修改相應配置文件中的上述配置,或者整個刪除或注釋(在最開頭添加 # 號)整行配置,比如:

  6. auth        required      pam_succeed_if.so uid <= 1000      # 修改策略 # auth        required      pam_succeed_if.so uid >= 1000   #取消相關配置

    嘗試重新登錄服務器
  7.  

我查看自己系統的相關配置,並沒有這項限制,所以原因不在這里,然后又根據su: pam_unix(su:auth): authentication failure; logname=xtwh uid=501 euid=501 tty=pts/2 ruser=xtwh rhost= user=root這句報錯,uid是501 ,是我普通用戶的的uid,但是euid也是501,uid==euid 明顯不對啊

su命令的原理是先有root權限才能讀/etc/shadow,才能切換到其它用戶

查看/usr/bin命令的權限

[root@jmw8a2003 log]# ll /bin/su
-rwxrwxr-x. 1 root root 32096 Jun  1  2017 /bin/su

沒有suid的權限,增加權限就好了

[root@jmw8a2003 log]# chmod u+s /bin/su
[root@jmw8a2003 log]# ll /bin/su
-rwsrwxr-x. 1 root root 32096 Jun  1  2017 /bin/su

 

不懂euid的可能參考:

http://www.cnblogs.com/kunhu/p/3699883.html

http://unix.stackexchange.com/questions/116529/i-cant-login-as-root-with-su-command-but-i-can-with-ssh

 

同理:

root@blog-mreald-com:~# ll /usr/bin/passwd 
-rwsr-xr-x 1 root root 47032  2月 17  2014 /usr/bin/passwd*

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM