Можно ли изменить root-оболочку из пользователя?

Можно ли изменить root-оболочку из пользователя?

Я думаю, что я столкнулся с не такой уж распространенной проблемой. Я написал

chsh -s /bin/false root

и теперь я не могу войти как root. Есть ли возможность, как я мог войти в root? Когда я пробую команду

chsh -s /bin/true root

Я получаю ответ, что я не могу изменить оболочку для rootи, конечно же, когда я пытаюсь редактировать /etc/passwdс помощью nano, я получаю сообщение, что у меня нет прав на это.

Так есть ли какое-нибудь решение, как мне войти в систему root?

решение1

Сделайте:

ssh root@localhost /bin/bash

Вы не получите приглашение оболочки. Однако, если вы введете ls и нажмете Enter, вы увидите вывод. Затем вы можете использовать эту команду sed для сброса вашей оболочки root:

/usr/bin/sed -i -e 's|^\(root.*:\)[^:]*$|\1/bin/bash|g' /etc/passwd

В зависимости от вашего дистрибутива команда sed может находиться в /bin/sed.

Очевидно, что это отчаянная мера.

решение2

Вероятно, самый простой выход — загрузиться в режиме восстановления установочного носителя и выполнить исправление /etc/passwdтам.

решение3

sudo /bin/bashдолжно сработать. Вы будете работать bashс привилегиями суперпользователя, поэтому редактирование /etc/passwdили запуск chshне должны быть проблемой.

решение4

Если у вас не установлен sudo, вы можете легко установить его и он sudo /bin/bashдолжен работать. Любой дистрибутив Linux может использовать sudo.

Кроме того, если вы получаете запрос на ввод пароля, вам необходимо использовать аутентификацию с открытым ключом, а затем включить sudo без пароля. Используйте это для настройкиhttps://spinupwp.com/doc/passwordless-sudo/

В этом случае вам следует использовать аутентификацию с открытым ключом SSH ^^.

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