Я сделал глупую глупость. Пытаясь изменить оболочку для пользователя 'x', я торопился и не вводил имя пользователя в конце команды, поэтому в итоге я выполнил это:
chsh /sbin/nologin
Это, похоже, затем изменило оболочку по умолчанию для root на ту, которой не существует, и, следовательно, root не может больше входить в систему. Я запускаю Ubuntu 10.04 LTS на Linode VPS. К счастью, они предоставляют вам консоль восстановления для загрузки, оттуда вы можете смонтировать свой / dev / xdva в место и отредактируйте файлы. Я выполнил следующие шаги:
Теперь я все еще не могу войти в VPS через SSH как root, он говорит, что доступ запрещен. Я попытался изменить пароль, но доступа все еще нет. Однако я могу войти в систему как пользователь onestp, но даже если я sudo su -s / bin / bash root Я все еще получаю сообщение об ошибке, что каталог / sbin / nologin не существует, даже если я только что сменил оболочку для root на / bin / bash!
Я могу подтвердить, что оболочка верна, набрав sudo cat / etc / passwd | grep root который выводит это:
root:x:0:0:root:/root:/bin/bash
Может ли кто-нибудь пролить свет на эту проблему, я нахожусь в стороне, потратил AGES на настройку apache в качестве веб-сервера с php, mysql и т.д., а reeeeealy не хочет перестраивать.
Для справки, я до этого не делал полную резервную копию образа, нет. Глупый, глупый я!
@Все,
Это была глупая ошибка, но я ее решил. При загрузке с образом восстановления для VPS мне пришлось смонтировать / dev / xvda к / media / xvda однако при запуске таких команд, как судо нано / и т.д. / пароль они работали относительно ВОССТАНОВЛЕННОГО ИЗОБРАЖЕНИЯ, а не моего установленного местоположения.
Простой запуск sudo nano etc / passwd разобрал этот беспорядок, потому что теперь я редактировал / meda / xvda / и т.д. / пароль вместо того [ВОССТАНОВЛЕНИЕ IAMGE] / etc / passwd
Я меняю оболочку обратно на / bin / bash для root, и доступ по SSH был восстановлен.
Я надеюсь, что кто-то сможет что-то унести с собой из этой моей глупой ошибки.