Может ли пользователь root управлять экраном для других пользователей?

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

Текущий метод состоит в том, чтобы найти pid для экрана и убить его. Похоже, программа screen написана таким образом, что вы можете подключаться к сеансам других пользователей, но когда я пытаюсь сделать что-либо как root, экран каталог - это другой каталог. Предполагаю, что это сделано из соображений безопасности, но есть ли способ намеренно переопределить это, чтобы я мог просто сделать что-то вроде screen -r somedude / 33333 -d -X quit ? как root?

2
задан 27 August 2021 в 15:36
1 ответ

Стандартный экран экземпляры однопользовательский, т.е. каждый экземпляр может быть доступен только пользователю, который его создает.

Чтобы разрешить многопользовательский экран, вы можете добавить следующие команды:

multiuser on
addacl root,<user1>,<user2>,...

в глобальную конфигурацию экрана, т.е. /etc/screenrc ].

Все экземпляры screen после этого должны быть многопользовательскими screen, т.е. могут быть присоединены другими пользователями, указанными в addacl; за исключением случаев, когда они переопределяются пользовательскими командами.

Вы можете получить список пользовательских экранов с помощью

$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>

и подключиться к экрану другого пользователя с помощью

$ screen -d -r <user>/<pid>

Отметьте man screen, раздел «Настройка» для получения дополнительной информации о screenrc.

Обратите внимание, что каждый пользователь может также добавлять свои собственные команды screenrc в файл $HOME/.screenrc, тем самым отключая многопользовательский экран для своего пользователя.

5
ответ дан 27 August 2021 в 16:50

Теги

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