Эти две строки определяют действия, которые будут применяться к интерфейсу eth0
:
allow-hotplug eth0
iface eth0 inet dhcp
На странице руководства по интерфейсам ( man interfaces
) он будет описан в великолепных деталях, но, по сути, он говорит
eth0
, разрешите его определение eth0
, вызовите его с помощью DHCP В старых версиях Debian вы мог бы просто со Замените обе строки. Однако в более новых версиях это говорит другим сетевым менеджерам взять на себя управление интерфейсом, так что это не рекомендуется.
Вместо этого замените dhcp
на manual
, который сообщает другим сетевым менеджерам, что вы хотите, чтобы управление интерфейсом сохранялось в этом файле, но вы не хотите, чтобы он поднимался. автоматически:
allow-hotplug eth0
iface eth0 inet manual
Вы должны удалить из файла паролей , которое
слово ...
Это должно быть примерно так:
root:x:0:0:root:/root:/bin/zsh
Где / bin / zsh - это путь к двоичному файлу оболочки Z.
В текущей конфигурации процесс входа в систему пытается выполнить , который zsh
, и эта команда завершается ошибкой.
Также отредактируйте файл как root, например, с помощью sudo vim / etc / passwd
, потому что это файл, который доступен для записи только root.
Если вы не можете sudo
или su
, загрузитесь в режиме восстановления (выберите расширенный вариант для Ubuntu в загрузчике GRUB, затем выберите Ubuntu ... (режим восстановления) , затем выберите root / Drop to root shell prompt). После этого перемонтируйте файловую систему /
как чтение-запись ( mount -o remount, rw /
), а затем вы можете редактировать содержимое / etc / passwd
файл. Проверено на Ubuntu 16.04.
Пожалуйста, попробуйте sudo vi / etc / passwd и введите свой текущий пароль пользователя.
Также вы можете найти правильный путь оболочки в / etc / shell
И чтобы проверить текущую оболочку, попробуйте echo $ SHELL
Вы не можете редактировать файлы из командной строки Grub (Grub может только читать файлы, у него нет поддержки записи). Вам необходимо загрузить Linux¹.
Если вы не можете войти в систему в обычном режиме, вы можете полностью обойти обычный процесс загрузки и запустить только ядро и оболочку. В командной строке Grub нажмите e , чтобы изменить последовательность загрузки, добавьте init = / bin / bash
в конец строки linux =…
и нажмите Ctrl + X для загрузки. Вы получите корневую оболочку и больше ничего. Запустите
mount -t proc proc /proc
mount -o remount,rw /
Теперь запустите chsh -s / bin / zsh root
, чтобы восстановить вашу базу данных пользователей.
Затем перезагрузитесь с помощью Alt + SysRq + U , а затем Alt + SysRq + ] B , или загрузитесь нормально с
mount -o remount,ro /
umount /proc
exec /sbin/init
Совет: запустите chsh
без аргумента user . Таким образом, он проверяет оболочку.
Совет: когда вы меняете какую-либо конфигурацию, всегда держите оболочку открытой и проверяйте конфигурацию. Если вы допустили ошибку, у вас все равно будет командная строка для ее исправления.
Совет: вы можете создать учетную запись toor
с UID 0 (так что он по-прежнему root), с тем же паролем, что и root, и где остается оболочка / bin / sh
, чтобы у вас был другой способ входа в систему, если что-то сломается. Еще лучше установить статически связанную оболочку ( busybox-static
или zsh-static
) и использовать ее как оболочку входа в систему toor.
¹ Или вы можете использовать guestfs , если хост - Linux.
Если вы знаете пароль root, вы можете запустить su -s / bin / bash
, чтобы получить оболочку root bash.
sudo -s / bin / bash
тоже должно работать, и в зависимости от того, как настроено sudo
, вам нужно будет знать только свой собственный пароль или не знать пароля.
Затем вы можете использовать chsh -s / bin / bash
, чтобы снова изменить командную оболочку root на bash.
Кстати, как правило, менять оболочку root в любой системе UNIX - плохая идея. Многие задания cron и т. Д. Зависят от того, является ли корневая оболочка корневой оболочкой по умолчанию для этой ОС, и БУДЕТ сломаться, если вы ее измените.