Как зафиксировать “вход в систему: никакая оболочка: Никакой такой файл или каталог”, когда я даже не могу войти в систему?

Намного лучше использовать etckeeper вместо Вашего собственного решения собственной разработки. Существует количество глюков это адреса etckeeper приятно. Это - пакет в нескольких дистрибутивах Linux и также легко создать из источника.

Действительно хорошая функция в находящихся в Debian системах - то, что это соединяется с Кв. для автоматической фиксации прежде и после установки или обновления пакетов. Это помогает отличить изменения, Вы сделали себя из сделанными обновлениями пакета. Это также (дополнительно) делает ежедневную автоматическую фиксацию.

2
08.06.2012, 10:33
4 ответа

Если у Вас есть доступ к корневой учетной записи, можно изменить оболочку для пользователя, оттуда использующего 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.

Вы могли также загрузиться в живой CD/USB, смонтироваться / и зафиксируйте /etc/passwd вручную.

7
27.01.2020, 21:50
  • 1
    Спасибо. (1) Когда я изменил оболочку входа в систему для корня самостоятельно, таким образом, я предполагаю, что метод № 1 не может работать. (2) Для метода № 2 "изменяют процесс начальной загрузки", я задаюсь вопросом, как повторно смонтировать файловую систему? Я вне оболочки, я не могу выполниться mount. Я попробовал init=/bin/bash и 'real_init =/bin/bash, ни один из них не работал. (3) Для метода № 3, это не может работать, поскольку у нас есть только одна учетная запись, корень, в сервере ОС. –  xanpeng 08.06.2012, 13:01
  • 2
    @xanpeng, который я дал команде для перемонтирования корневой файловой системы (который является, вероятно, где Вы имеете /etc). Необходимо смочь к SSH в от другой машины. –  Chris Down 08.06.2012, 13:52

У меня есть та же проблема, это решение работает для меня:

  1. загрузки с живым CD (я использую Debían 7.6) в режиме реального времени
  2. в прямом эфире, получить root Команда: CARTWD ROOT
  3. Установите диск раздела вашего разбивающего дистриба
  4. Перейдите на этот диск и запустите эту команду: CAT ETC / SHOOLLS
  5. с Nano etc / Passwd Удалите ссылки на рыб и поместите действительное имя консоли точки 4
  6. Перезагрузка и наслаждайтесь.
2
27.01.2020, 21:50

При попытке войти в систему я получил следующее сообщение: Невозможно выполнить / sbin / nologin: нет такого файла или каталога

Это то, что я сделал, и у меня это сработало.

  1. Я вошел в систему с другой учетной записью с привилегиями суперпользователя
  2. Введите следующую команду:

sudo chsh -u user -s $ SHELL

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

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

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

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

Теги

Похожие вопросы