Я попытался изменить оболочку входа в систему.
Вот как /etc/passwd
выглядит первая строка (при установке Debian Wheezy):
rootx:0:0:root:/root:/:zsh
Когда я пытаюсь войти как root
:
Cannot execute zsh: No such file or directory
Я знаю zsh
, доступно:
$ which zsh
/usr/bin/zsh
Хорошо, кажется логичным заменить zsh
его полным путем. Но как я могу это сделать?
У меня есть еще один пользователь в системе ( user
), однако он не имеет привилегий root и sudo
не установлен в системе.
Предположим, что по какой-либо причине (шифрование, физический доступ, ...) я не могу загрузиться с live CD для изменения файла.
Я знаю, однако, учетные данные для root
учетной записи.
Мой вопрос: есть ли способ, даже программно, запустить процесс с root
учетной записью, не запуская сначала свою оболочку входа?
su
? илиgksu
? что-то вродеsu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'
su -c "<commands>"
) работает ... не могли бы мы тогда просто использовать,su -c "/bin/bash"
чтобы получить работающий bash с пользователем root ?-c
запускается через оболочку пользователя.-s
может использоваться для использования другой оболочки ... только в том случае, если существующая оболочка входа в систему действительна или инициатор является пользователем root.Ответы:
Иметь права su
Вы можете использовать следующую команду, чтобы изменить оболочку любого пользователя.
Если у вас есть физический доступ
Во время загрузки Grub вы можете войти в любую систему, если у вас есть консольный доступ и нет пароля, который мешает вам получить доступ к меню Grub.
Во время начальной загрузки системы, когда появляется меню Grub, если вы входите в меню и редактируете (нажимаете eклавишу) строку ядра, вы можете добавить одну из следующих вещей, чтобы ядро загрузилось в однопользовательском режиме.
Линия будет выглядеть примерно так:
В Grub это должно выглядеть примерно так:
После внесения изменений загрузите ядро (нажмите клавишу b).
Это даст вам временный доступ к системе с оболочкой, где вы можете использовать vi / vim для внесения любых необходимых изменений в ваш
/etc/passwd
файл. Просто введите,reboot
когда вы закончите.источник
su
команда не будет работать, так как она попытается вызвать оболочку root, которой не существует.