當我什至無法登入時如何解決“登入:無外殼:沒有這樣的文件或目錄”?

當我什至無法登入時如何解決“登入:無外殼:沒有這樣的文件或目錄”?

我安裝了魚魚(一個用戶友好的互動式命令列外殼)在Linux伺服器上,後來有人卸載了它但我不知道。我chsh -s /usr/local/bin/fish不小心運行後,現在無法登入伺服器。顯示錯誤訊息“登入:沒有外殼:沒有這樣的檔案或目錄”,這顯然表明貝類不再存在。

伺服器只提供了CLI接口,那麼我連登入都無法登入的情況下如何更改登入shell呢?

答案1

如果您有權存取 root 帳戶,則可以使用 變更使用者的 shell chsh -u user -s $SHELL

如果您有權存取引導過程,則可以將其附加init=$SHELL到單一使用者 shell,您可以在其中修復此問題,再次使用chsh -u user -s $SHELL(某些使用帶有 initrd 映像的兩階段引導的系統可能需要您使用real_init) 。您可能需要重新掛載包含/etc/passwd讀寫(使用mount -o remount,rw /或類似)的檔案系統。

否則,如果您可以su從另一個用戶進入該用戶,請嘗試su user -c $SHELL,或者如果您可以 ssh 進入該用戶,您可以嘗試類似ssh user@localhost $SHELL

您也可以啟動到 Live CD/USB,手動安裝/和修復/etc/passwd

答案2

我有同樣的問題,這個解決方案對我有用:

  1. 在即時模式下使用 Live CD 啟動(我使用 debían 7.6)
  2. 在即時終端機中,執行以下命令以取得 root 存取權限:passwd root
  3. 掛載崩潰發行版分割區的磁碟
  4. 轉到該磁碟並執行以下命令:cat etc/shells
  5. 刪除nano etc/passwd魚引用並輸入第 4 點的有效控制台名稱
  6. 重新啟動並享受。

答案3

當嘗試登入時,我收到以下訊息: 無法執行 /sbin/nologin: 沒有這樣的檔案或目錄

這就是我所做的,它對我有用。

  1. 我使用另一個具有超級使用者權限的帳戶登入系統
  2. 輸入以下命令:

sudo chsh -u 用戶 -s $SHELL

其中 user 是有問題的帳號名稱

  1. 退出系統
  2. 使用有問題的帳號登入

答案4

我在 Elementary OS Loki 也遇到了同樣的問題。為了解決該問題,我執行了以下操作

  1. 首先我刪除與 zsh 相關的所有內容sudo apt-get 刪除 zsh && apt-get 自動刪除
  2. 之後我編輯了/etc/密碼檔案並發現 root 使用者的 shell 未定義,所以我編輯了 shell /bin/bash 這一切都幫助我解決了問題。

相關內容