В чем разница между su target-user и login target-user?

Вы продемонстрировали, что виновата не оболочка входа или ssh , потому что если бы это был ssh (скрытый ) id не удалось бы.

Следующее, что нужно попробовать, - это временно убрать с пути ваш .profile . Не беспокойтесь об ошибках из-за mv не удалось найти файл:

ssh pi@192.168.151 mv .bash_profile .bash_profile.SAVE
ssh pi@192.168.151 mv .profile .profile.SAVE

Теперь попробуйте войти в систему еще раз. Если это не удается, попробуйте это, чтобы определить точку, в которой установка оболочки не удалась:

ssh pi@192.168.151 /bin/bash -xi

Вы получите множество строк, начинающихся с + , показывающих команды, которые выполняет bash . во время его настройки. Несколько строк непосредственно перед точкой, в которой она неожиданно завершается, являются наиболее важными. Вы либо сможете диагностировать проблему по этим строкам, либо вам нужно будет добавить их в свой вопрос.

0
04.05.2018, 18:56
1 ответ

They both seem to me to create a login session for target-user.

На самом деле это не так. suне создает сеанс входа в систему. Он «переключает пользователя» для запуска программы под эгидой другой учетной записи пользователя, добавляя привилегии (привилегии этой учетной записи )к совокупности привилегий, доступных пользователю существующего сеанса входа в систему, который она обкатана.

Фактически, программа loginтакже не создает сеанс входа в систему . Он ожидает, что сеанс входа в систему с запущенным процессом login, помеченным как процесс лидера сеанса , и подключенным управляющим терминалом, уже настроен тем, кто его вызвал. login target-user, предполагая, что встроенная -в loginкоманда оболочки C, которая фактически является exec, co -выбирает существующий уже -установленный -сеанс входа в систему для другая учетная запись пользователя. Это, конечно, влечет за собой риски, которые к этому моменту хорошо известны.

Это, конечно, с учетом концепции ядра о сеансе входа в систему , который включает в себя лидера сеанса , управляющий терминал и группы процессов. . Люди из systemd изобрели свою собственную полностью прикладную -концепцию сеанса входа в систему, управляемую systemd-logindв сочетании с подключаемыми модулями PAM -. Правила здесь немного отличаются, отчасти потому, что люди systemd испортили их, объединив остановку службы при завершении работы с зависанием сеанса (и все еще должны это исправить ). Но suтакже не создает сеанс входа в систему такого типа.

Дополнительная литература

0
28.01.2020, 04:23

Теги

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