是否可以更改使用者的 root shell?

是否可以更改使用者的 root shell?

我想我面臨的問題並不常見。我寫

chsh -s /bin/false root

現在我無法登入root。我有什麼辦法可以登入嗎root?當我嘗試命令時

chsh -s /bin/true root

我得到的答案是我可能不會更改 shell root,當然,當我嘗試編輯/etc/passwdwith時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 公鑰身份驗證 ^^。

相關內容