Судо как другой пользовательский и рабочий экран
Обнаружил сегодня, что запуск экрана как другого пользователя, который я sudo в не работает!
то есть.
ssh bob @ server # ssh на сервер как боб
sudo su "monitor" -
экран # не работает
У меня есть сценарий, который работает как пользователь «монитора». Мы запускаем его в сеансе экрана, чтобы видеть вывод на экране. Проблема в том, что у нас есть несколько пользователей, которые входят в систему со своей учетной записью (т. Е. Bob, james, susie и т. Д.), А затем они подключаются к пользователю «монитора». Предоставление им доступа к пользователю «монитора» не может быть и речи.
7 ответов
Попробуйте запустить script /dev /null
как пользователь, которому вы su
, перед запуском экрана - это небольшой взлом гетто, но он должен сделать экран счастливым.
Я использую функцию-оболочку вокруг экрана для пользователей, для которых я
sudo su
. Это функция-обертка, которую я добавил пользователю (пользователям) ~ /.bashrc
:
экран функции () { /usr /bin /script -q -c "/usr /bin /screen $ {*}" /dev /null }
Это позволяет мне использовать все параметры и параметры для screen
, которые я могу использовать. Я размышляю над тем, чтобы поместить эту функцию в систему.
Предполагая, что они SSHing в хост в любом случае, вы можете добавить общедоступные ключи ssh для каждого пользователя, которому необходим доступ к учетной записи монитора в файле ~ monitor /.ssh /authorized_keys. Затем на удаленной машине каждого пользователя они могут запускать
ssh -t [email protected] screen -RD
Предполагая, что мы говорим об этой ошибке:
$ sudo su - bob
$ screen
Невозможно открыть терминал /dev /pts /5 '- пожалуйста, проверьте.
Вот один лайнер (например, можно использовать как «псевдоним gobob»):
sudo su - bob -c "script -c bash /dev /null" '
Пояснение:
Это запустит оболочку (например, оболочку входа) как пользовательский боб. Пользователь bob запускает скрипт , которому предлагается вызвать bash (может быть тире или ksh ...), и копия сеанса выбрасывается.
Вероятно, придется менять разрешения на рассматриваемое устройство или добавлять монитор в группу, у которой есть разрешение на чтение этого устройства, что было бы моим первым наклонением. Но вам придется взвесить последствия безопасности для этого.
Вы говорите:
sudo su "monitor" -
Мне интересно, что такое трейлинг. Обычно я делаю:
sudo su - имя пользователя
Черточка (на странице пользователя su) сообщает su, чтобы «сделать оболочку оболочкой для входа». Это означает, что он будет использовать все обычные сценарии запуска оболочки и правильно настроить такие вещи, как PATH и HOME.
Я просто ударил эту проблему. Решил его с помощью chmod + rw $ (tty)
перед запуском sudo.
Проблема с этим решением заключается в том, что после этого каждый может подключиться и snoop на вашем терминале.