我想我面臨的問題並不常見。我寫
chsh -s /bin/false root
現在我無法登入root
。我有什麼辦法可以登入嗎root
?當我嘗試命令時
chsh -s /bin/true root
我得到的答案是我可能不會更改 shell root
,當然,當我嘗試編輯/etc/passwd
with時nano
,我收到訊息說我沒有權限這樣做。
那麼有什麼解決方案可以讓我登入嗎root
?
答案1
做一個:
ssh root@localhost /bin/bash
您不會收到 shell 提示字元。但是,如果輸入 ls 並按 Enter 鍵,您將看到輸出。然後你可以使用這個 sed 指令來重置你的 root shell:
/usr/bin/sed -i -e 's|^\(root.*:\)[^:]*$|\1/bin/bash|g' /etc/passwd
根據您的發行版,sed 指令可能位於 /bin/sed 下。
顯然,這是一個孤注一擲的舉措。
答案2
也許最簡單的方法是啟動到安裝媒體的救援模式並以/etc/passwd
這種方式修復。
答案3
sudo /bin/bash
應該做這項工作。您將以bash
超級使用者權限運行,因此編輯/etc/passwd
或運行chsh
應該不成問題。
答案4
如果您沒有安裝 sudo,您可以輕鬆安裝它並且sudo /bin/bash
應該可以工作。任何 Linux 發行版都可以使用 sudo。
此外,如果您收到密碼提示,則需要使用公鑰驗證,然後啟用無密碼 sudo。用這個來配置https://spinupwp.com/doc/passwordless-sudo/
在這種情況下,您應該使用 ssh 公鑰身份驗證 ^^。