Я попытался изменить оболочку входа в систему.
Вот как /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 -c "<commands>") работает ... не могли бы мы тогда просто использовать, su -c "/bin/bash"чтобы получить работающий bash с пользователем root ?
-cзапускается через оболочку пользователя. -sможет использоваться для использования другой оболочки ... только в том случае, если существующая оболочка входа в систему действительна или инициатор является пользователем root.

su? илиgksu? что-то вродеsu -c 'sed -i s,root:/:zsh,root:/:/usr/bin/zsh, /etc/passwd'