Sudo su выходят на человечности 14.04 lts:/root/zsh не может не быть найден

Как отмечает man su, /etc/pam.d/su является конфигурационным файлом PAM по умолчанию для su. Одной из опций является предоставление неявно повышенных привилегий для любого в группе wheel:

# Uncomment the following line to implicitly trust users in the "wheel" group.
auth        sufficient  pam_wheel.so trust use_uid

С этой строкой без комментариев, когда вы без аргументов выпускаете su, su по умолчанию запускает интерактивную оболочку от имени root, а если ваш пользователь находится в группе wheel, то без запроса пароля .

1
18.04.2014, 22:54
1 ответ

su выполняет вашу оболочку входа в систему, как указано в базе данных входа в систему. Это / root / zsh , которого не существует, поэтому команда su не работает.

chsh принимает изменение оболочки только для пользователя, у которого в настоящее время есть действующая оболочка (указана в / etc / shells ). Поскольку / root / zsh не принимается, chsh не работает. Пользователь root может изменить любую оболочку, но этот тест выполняется после проверки допустимости текущей оболочки.

Однако sudo не заботится о вашей оболочке входа в систему (если вы не запустите sudo -s или sudo -i ). Таким образом, у вас есть множество способов восстановить вашу систему: sudo / bin / zsh предоставляет вам оболочку, из которой вы можете запустить vipw и исправить запись для root. Вы даже можете запустить sudo vipw напрямую.

Я рекомендую запускать корневую оболочку в одном терминале и изменять конфигурацию в другом терминале. Не выходите из этой корневой оболочки, пока не убедитесь, что система вернулась в рабочее состояние, проверив, что sudo -i или sudo su работает.

2
27.01.2020, 23:38

Теги

Похожие вопросы