Как исправить ошибку «login: no shell: No such file or directory», когда я даже не могу войти в систему?

Как исправить ошибку «login: no shell: No such file or directory», когда я даже не могу войти в систему?

Я установилрыбарыба(удобная для пользователя интерактивная оболочка командной строки) на сервере Linux, позже кто-то удалил ее, но я не знаю об этом. После того, как я запустил ее chsh -s /usr/local/bin/fishбез предупреждения, я теперь не могу войти на сервер. Появилось сообщение об ошибке "login: no shell: No such file or directory", которое, по-видимому, говорит о том, что shell fish больше не существует.

Сервер предоставляет только интерфейс командной строки (CLI). Как я могу изменить оболочку входа, если я даже не могу войти в систему?

решение1

Если у вас есть доступ к учетной записи root, вы можете изменить оболочку для пользователя оттуда с помощью chsh -u user -s $SHELL.

Если у вас есть доступ к процессу загрузки, вы можете добавить init=$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 (я использую Debian 7.6) в режиме Live.
  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

где пользователь — имя учетной записи, в которой возникла проблема

  1. Выход из системы
  2. Войдите в систему, используя имя учетной записи, с которой возникла проблема.

решение4

Я также столкнулся с той же проблемой в Elementary OS Loki. Чтобы решить проблему, я выполнил следующее

  1. во-первых я удаляю все, что связано с zshsudo apt-get удалить zsh && apt-get autoremove
  2. после этого я отредактировал/etc/парольфайл и обнаружил, что оболочка пользователя root не определена, поэтому я отредактировал оболочку /bin/bash, и все это помогло мне решить проблему.

Связанный контент