問題現象
遠程(cheng)連接Linux云(yun)主機報(bao)錯(cuo):Permission denied
圖 Permission denied

說明
修(xiu)改此問題需(xu)要重啟進入救援模式,請(qing)評估風險(xian)后進行操(cao)作。
本節操(cao)作涉及云主機重啟操(cao)作,可能會導致業務中斷,請謹慎操(cao)作。
根因分析
/etc/security/limits.conf中的nofile 用(yong)來設置系統允許打開的最大文(wen)件數目,如果nofile值大于PermissionDenied.png內核設置的fs.nr_open參(can)數值(默(mo)認為1048576),會導(dao)致登錄校驗錯誤,導(dao)致登錄云主機時(shi)提示(shi)“Permission denied”。
處理方法
1.進入云主機的單用戶模式。
以CentOS 7操作(zuo)系統(tong)為例(li):
a.重(zhong)啟(qi)云主機(ji),單擊“遠程登錄”。
b.按上(shang)方向鍵,阻(zu)止系統自動繼續,在(zai)出現內(nei)核選項時按字母鍵e進入內(nei)核編輯模式。
圖 進入(ru)內(nei)核編(bian)輯模式

說明Euler鏡像(xiang)默認對(dui)grub文件進(jin)行了加密,進(jin)入(ru)編輯內核(he)模式時會提示:Enter username,需要輸(shu)入(ru)用戶和密碼,請聯(lian)系客(ke)服獲取。
c.找到linux16行末尾,刪除不需要(yao)加載的參數(shu)到ro參數(shu)。
d.修改ro為(wei)rw,以讀寫方式掛載根分區(qu)。
e.并(bing)添加rd.break,然后執行Ctrl+X。
圖 修改前

圖 修改后

f.執行(xing)以下命(ming)令切(qie)換至/sysroot目錄。
chroot /sysroot
2.執(zhi)行以下命令,查詢內核的fs.nr_open值(zhi)。
sysctl fs.nr_open
3.編輯 /etc/security/limits.conf,修(xiu)改配置的nofile值(zhi)(zhi)為合理的值(zhi)(zhi),需小于2中(zhong)查詢的fs.nr_open值(zhi)(zhi),例如65535。
vi /etc/security/limits.conf
說明limits.conf 文(wen)件實際是Linux PAM(插入式(shi)認證模塊,Pluggable Authentication Modules)中pam_limits.so 的配置(zhi)文(wen)件。更(geng)多詳細配置(zhi)信(xin)息(xi)請(qing)查看man手冊,執行:man limits.conf
4.重(zhong)啟服務(wu)器,重(zhong)試(shi)連接云主(zhu)機。