Я думаю, что я столкнулся с не такой уж распространенной проблемой. Я написал
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 ^^.