1. 程式人生 > 其它 >centos7賬戶名和密碼都正確-卻怎麼都認證失敗

centos7賬戶名和密碼都正確-卻怎麼都認證失敗

問題概述及解決

問題描述

Centos 7 系統 優化系統核心後,賬戶無法登入(輸入的賬號和密碼均正確,絕對沒有錯誤!!,也沒有禁止登入!!)。 報錯為:Permission denied。

優化核心內容為:

cat /etc/security/limits.conf
* soft nofile 10000000  #錯的,千萬別用
* hard nofile 10000000 #錯的,千萬別用
* hard nproc 10000000 #錯的,千萬別用
* soft nproc 10000000 #錯的,千萬別用

報錯截圖:

出現上述問題,是因為在優化核心引數時多輸入了一個0。

問題解決

進單使用者模式將/etc/security/limits.conf 中的引數改為系統可承受的值,經過多次測驗,最大可允許的數值為1000009。

問題發現及排查

問題發現

公司視訊專案在建設開始,對Centos系統部署完成,並進行系統核心調優,重啟系統後,發現賬戶無法登入。確定輸入的密碼肯定正確,但是報錯Permission denied。

問題排查

第一次嘗試

進入單使用者模式,修改賬戶密碼。

在啟動頁面,按鍵 ‘e' 進入編輯

按向下移動游標,跳轉到最後,找到’ro‘ 修改為 'rw init=/sysroot/bin/sh' 【注意,輸入時沒有引號】

如下圖

按Ctrl-x 進行重啟進入單使用者模式

輸入執行 chroot /sysroot

執行passwd root 修改密碼【此處截圖,中文顯示異常,請忽略】

執行touch /.autorelabel

如果不執行,密碼不會生效。

按Ctrl+D,執行reboot重啟生效。

輸入賬戶密碼,依舊失敗 ,報錯依舊為Permission denied。

至此第一次嘗試失敗

第二次嘗試

依舊進入單使用者模式,具體過程不重複描述;進入系統,檢視/var/log/secure

如上圖,報錯內容中有一條很明顯:Could not set limit for 'nofile' Operation not permitted 【我英語很爛,就不妄加翻譯了】。

通過以上報錯,我們定位到問題出在/etc/security/limits.conf 中配置的 nofile開啟數限制值太大。

cat /etc/security/limits.conf
* soft nofile 10000000 #錯的,千萬別用 * hard nofile 10000000 #錯的,千萬別用 * hard nproc 10000000 #錯的,千萬別用 * soft nproc 10000000 #錯的,千萬別用

於是對上述配置進行修改【去掉一個0】

cat /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
* hard nproc 10000000
* soft nproc 1000000

按Ctrl+D,執行reboot重啟生效。

輸入賬戶密碼,成功登入。

至此,問題成功定位並解決。

總結

回看問題排查的過程,我們走了一些彎路。其實我們在嘗試排錯的時候,應該首先想到去檢視日誌,看一下具體報錯內容。

話外

1、如果是賬戶密碼錯誤 報錯資訊其實是 Login incorrect

2、在寫下這篇總結的時候,我特意嘗試去查詢 nofile 能夠設定的最大值究竟是多少,但是並沒有查到結果。於是我嘗試去測試這個值最大限度。經過多次嘗試 發現 該值最大能設定為1000009,我推測nproc最大應該也是1000009。對此,我這種半路出家的門外漢真的是不清楚,如果有大佬瞭解這其中的緣由,還請能夠在評論區給予解答。在此,非常感謝!