Доступ к корню ssh запрещен после смены оболочки
После того, как я попытался изменить свою серверную оболочку, я больше не могу войти в систему как root.
Сначала я установил z-оболочку (zsh) от имени пользователя root, а затем мне захотелось изменить ее на оболочку по умолчанию. Поэтому я использовал "чш". Моя вина была в том, что я набрал неправильный путь. После выхода из системы и нового входа через Putty я получил сообщение "Доступ запрещен".
Это было предсказуемо, когда пути к оболочке не существует. Поэтому я вошел в свою панель управления и изменил файл / etc / passwd через filemanager: я исправил неверную последнюю часть первой строки - пользователь root:
корень: х:0:0: корень: / корень: / USR / бен / ЗШ
Даже если я изменю его на старый shell / bin / bash или / bin / sh, он не будет работать. Я прочитал, что passwd & shadow не являются live-файлами, поэтому я перезапустил сервер, но проблема все та же
Любые идеи, что еще я мог сделать?
ОС: Debian 5 + Parallels Plesk 11
2 ответа
Я нашел решение на другом форуме. Возможно, этот подход может помочь и всем людям с одинаковой проблемой:
Мой провайдер изменил пароль root и попробовал "chsh -s /bin/bash root", который не работал, потому что пароль не был принят и произошла следующая ошибка: "chsh: PAM-аутентификация не удалась".
dave_mystic дал решение:
Настоящая проблема в /etc/pam.d/chsh. В этом файле строка, которая запрещает пользователям переходить обратно в обычную оболочку после назначения специальной оболочки, появляется перед строкой, которая разрешает все изменения из корня.
К сожалению, следующая строка запускалась первой, запрещая изменение, потому что пользовательская оболочка НЕ была в списке доступных оболочек. Строка авторизации от моего имени "root" через sudo никогда не запускалась, потому что она никогда не проверялась после запуска первой строки.
требуется авторизация pam_shells.so
Решением было временно закомментировать строку в /etc/pam.d/chsh, изменить оболочку пользователя на правильную, а затем удалить комментарий в строке.
Источник: http://ubuntuforums.org/showthread.php?t=1702833
Поэтому я прокомментировал упомянутую строку и после этого смог сменить оболочку.
- Всегда используйте
vipw
отредактировать /etc/passwd иvipw -s
отредактировать / etc / shadow. - Убедитесь, что оболочки, которые вы пытаетесь использовать, перечислены в / etc / shells.
- Убедитесь, что SElinux не установлен на "принудительное применение" в /etc/selinux/config. Измените его на "разрешающий" или "отключенный". [требуется перезагрузка]
- Если вы хотите попробовать новую оболочку , не выходите из системы, чтобы протестировать ее. Запустите дополнительный сеанс SSH или tty и оставьте текущий запущенным на случай, если вы его нажмете.
- Проверьте свои журналы на наличие ошибок, относящихся к процессу входа, которые могут указывать на то, что еще не так.
Если вы все еще не можете это исправить самостоятельно, обратитесь к вашему хостинг-провайдеру. Они либо узнают, как это исправить в течение 10 минут, либо вы должны найти лучшего хозяина.
Ответ для меня пришел отсюда
Оказалось, я был небрежен, когда пытался
chsh
моя оболочка:
grep peter /etc/passwd
peter:1001:1001::/home/peter:/bin/nash
"nash", очевидно, должно было быть "bash"
Решением было вернуть его обратно с помощью usermod:
sudo usermod --shell /bin/bash peter
Тогда я снова смогу войти по ssh.