更改 shell 後拒絕 ssh root 訪問
在我嘗試更改伺服器外殼後,我無法再以 root 身份登錄。
首先,我以 root 身份安裝了 z-shell (zsh),然後我想將其更改為我的預設 shell。因此我使用了“chsh”。我的錯是,我輸入了錯誤的路徑。通過 Putty 註銷並重新登錄後,我收到消息“訪問被拒絕”。
可以預見的是,當通往 shell 的路徑不存在時。所以我登錄到我的控制面板,並通過文件管理器更改了 /etc/passwd 文件:我更正了第一行的錯誤最後一部分 - 根使用者:
root:x:0:0:root:/root:/usr/bin/zsh
即使我將其更改為舊 shell /bin/bash 或 /bin/sh 它也不起作用。我讀到 passwd & shadow 沒有實時文件,所以我重新啟動了伺服器,但仍然是同樣的問題
任何想法,我還能做什麼?
作業系統:Debian 5 + Parallels Plesk 11
我在另一個論壇中找到了解決方案。對於所有有同樣問題的人,也許這種方法也可以提供幫助:
我的提供商更改了root密碼並嘗試了不起作用的“chsh -s /bin/bash root”,因為密碼未被接受並且出現以下錯誤:“chsh:PAM身份驗證失敗”。
dave_mystic 給出了解決方案:
真正的問題在 /etc/pam.d/chsh 中。在該文件中,阻止使用者在分配特殊外殼後更改回普通外殼的行出現在授權從根目錄進行所有更改的行之前。
不幸的是,以下行首先觸發,不允許更改,因為使用者 shell 不在可用 shell 列表中。我通過 sudo 成為“root”的授權行從未觸發,因為在第一行觸發後從未對其進行檢查。
需要驗證 pam_shells.so
解決方案是暫時註釋掉 /etc/pam.d/chsh 中的行,將使用者 shell 更改為正確的 shell,然後刪除該行中的註釋。
來源:http ://ubuntuforums.org/showthread.php?t=1702833
所以我註釋掉了上面提到的行,之後我就可以更改外殼了。
- 始終用於
vipw
編輯 /etc/passwd 和vipw -s
編輯 /etc/shadow。- 檢查您嘗試使用的 shell 是否列在 /etc/shells 中。
- 檢查 SElinux 在 /etc/selinux/config 中是否未設置為“強制執行”。將其更改為“允許”或“禁用”。$$ requires reboot $$
- 當你想嘗試一個新的外殼時,不要註銷來測試它。啟動一個額外的SSH 會話或 tty,並讓目前的會話保持執行,以防萬一你搞砸了。
- 檢查您的日誌以查找與登錄過程相關的錯誤,這些錯誤可能表明還有什麼問題。
如果您仍然無法自行修復,請聯繫您的託管服務提供商。他們要麼知道如何在 10 分鐘內修復它,要麼你應該找到更好的主機。