用 chsh -s 配錯了 shell 該如何挽救?

配錯了默認環境並不可怕,大不了再配回來就好了嘛。

顯然,說這樣話的人是沒有故事的。


總之,如果你發現你的 vps 有一天突然無法登錄了,沒有報錯內容是沒有權限,但證書確定是正確的——那你就可能是在上次退出前配錯了 shell。這時候即使你用 console 去登錄,也會發現登錄後一閃而過立即回到了登錄界面——完蛋了,你心想,剛配好的環境又得重來一遍。

使用 CHSH 切換 默認shell是一鍵很危險的事情,最好不要輸錯了,不然你就 gg。

這個時候,你可以嘗試在 console 裡發送 control + ALT + delete 來重啟,在一閃而過的 蠐螬 啟動界面,按方向鍵阻止自動啟動(如果錯過了,就再來一遍吧),把高亮移動到“高級選項”上,系統默認是英文,但這並不影響你選擇,理論上都是第二個。

選擇高級選項

在高級選項裡也選中 第二個 “恢復模式”,然後按 e 來編輯參數:

選擇高級選項裡的恢復模式

編輯啟動參數,注意不要寫錯

將上圖參數里的 RO 復甦 nomodeset 改為 RW init=/箱子/慶典

然後按 ctrl + x 來執行,這樣你就進入到了 Linux 的單用戶模式,在這裡你不需要輸入root密碼即可獲得root權限——當然,似乎在這裡你的root密碼也是失效的,總之,現在你可以改回默認的 shell 了——但不是用 chsh,這東西需要密碼授權,然而你是永遠不能輸入正確密碼的。

好在 Linux 把所有的配置都寫在了配置文件裡,我們直接編輯 /等等/passwd文件 ,裡面第一行就是 root 的信息:

不論你改成了什麼,按照上面的代碼,把 root 的 shell 改為 /箱子/慶典 即可恢復默認,如果你和我一樣用 zsh,那就寫 /箱子/zsh的 ,保存後重啟即可恢復正常。

“我覺得……我還可以,搶救一下? ”

本文由 落格博客 原創撰寫:落格博客 » 用 chsh -s 配錯了 shell 該如何挽救?

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3003.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

註釋

  1. 改 init 之後並不是單用戶模式加的 single 也沒有用(因為單用戶模式是 init 系統的概念,然而它被你換掉了)。

    chsh 錯 shell 就 root 登錄過去改唄。我一般不使用 root 做常規操作的,也不會去改 root 的默認 shell,不然遇到問題(改錯或者卸載或者配錯 shell)就太坑了(服務器哪能輕易重啟呢,尤其是個人和小團體使用的,沒有備用服務)。

    1. 尷尬的就是如果你手賤把 root 的 shell 改成了一個不存在的路徑,然後這台機器上還沒有其他可登錄賬戶………………
      這時候只需要重啟一下不用重裝……已經是很幸運的事情了。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *