“Не может установить терминальную группу процесса” во время su другому пользователю как оболочка входа в систему

ЕСЛИ Вы захотите восстановить резервное копирование на свой ПК, то Вам будет нужна копия базы данных SQL endine выполнение и копия установленной студии управления SQL. Проверьте Экспресс SQL Server

16
задан 11 October 2013 в 04:43
2 ответа
  • su - имя пользователя интерпретируется вашим su как "запустить имя пользователя оболочку в качестве интерактивной оболочки для входа"
  • su имя пользователя - истолковывается Вашим su как "выполнение следующей команды неинтерактивной (-) как имя пользователя "
  • , поскольку последняя сработала вообще, потому что она вообще сработала:
    • ваше su передает трейлинговые аргументы в sh, так как при разборе
    • sh принимается -, что означает "запуск в качестве оболочки для входа (читать /etc/профиль, ...)"

, но что вас действительно интересует, так это почему -неинтерактивная ? Совместное использование управляющего терминала между привилегированным родителем и непривилегированным дочерним предприятием делает вас уязвимым к "TTY pushback эскалации привилегий", также известной как ошибка TIOCSTI, так что если вам действительно это не нужно, то su отделяется от него. Когда вы использовали форму su -, su пришли к выводу, что вам не нужен управляющий терминал.

Только процессы с управляющим терминалом могут иметь лидеров сеанса, которые манипулируют группами процессов (делают управление заданием); трасса, которую вы дали, это bash, обнаруживающая, что это не может быть лидером сеанса.

Вы упоминаете:

Странно, что обе формы прекрасно работают на Ubuntu и CentOS 6, однако на ванильном Debian только первая форма работает без ошибок.

Игнорируя такие варианты, как sux и sudo, существует как минимум три [1] версии su на Linux: coreutils, util-linux и shadow-utils, из которых выходит Debian. В manpage последней указывается:

Эта версия su имеет множество вариантов компиляции, только некоторые из них могут быть использованы на каком-либо конкретном сайте.

и Debian поставляется с флагом old_debian_behavior; другие версии могут иметь похожие варианты компиляции во время компиляции/время выполнения. Другая причина изменчивости может быть в том, что были некоторые дебаты [2] о том, следует ли когда-либо использовать su для сброса привилегий таким образом и является ли ошибка TIOCSTI ошибкой вообще (Redhat изначально закрыл её "WONTFIX").

[1]: Редактирование: добавьте к этому SimplePAMApps и hardened-shadow.

[2]: Solar Designer имеет некоторые (старые) мнения там, которые, я думаю, стоят того, чтобы прочитать.

.
33
ответ дан 2 December 2019 в 20:36

Я бы проверил право собственности и разрешения на / dev / pts * или на наличие новой конфигурации для udev, связанной с устройствами / dev / pts, которая не была заменена в процессе обновления.

Вы также можете попытаться выяснить, какой syscal вызывает ошибку, запустив его от имени пользователя root:

strace -f su - username 2>stderr.log
1
ответ дан 2 December 2019 в 20:36

Теги

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