Совместное использование терминала несколькими пользователями (с экрана или иным образом)

11

Я настраиваю сервер, на котором несколько разработчиков работают над несколькими приложениями.

Я выяснил, как предоставить определенным разработчикам общий доступ к нужным каталогам приложений с помощью и setgid bitи default ACLsпредоставить кому-либо доступ в группе.

Многие из этих приложений в процессе разработки работают под терминалом, что облегчает доступ к ним. Когда я работаю один, я настраиваю пользователя для приложения и запускаю экран в качестве этого пользователя. Это имеет недостаток, заключающийся в том, что каждому разработчику screen sessionнеобходимо знать пароль, а учетные записи пользователей и приложений сложнее разделять.

Один из способов, который мог бы работать, - использовать многопользовательские функции экрана. Они не работают "из коробки", однако, экран жалуется на необходимость suid root. Есть ли у этого недостаток? Я очень осторожен в использовании suid rootчего-либо. Может быть, есть причина, почему это не по умолчанию?

Должен ли я сделать это с помощью screenили есть какой-то другой разумный способ делать то, что я хочу?

varesa
источник

Ответы:

23

Да, вы можете сделать это с screenподдержкой нескольких пользователей.

Сначала создайте новый сеанс:

screen -d -m -S multisession

Прикрепить к нему:

screen -r multisession

Включить многопользовательскую поддержку:

Нажмите Ctrl-aи введите

:multiuser on
:acladd USER ← use username of user you want to give access to your screen

Теперь Ctrl-a dи перечислите сессии:

$ screen -ls
There is a screen on:
    4791.multisession   (Multi, detached)

Теперь у вас есть многопользовательский сеанс экрана. Дайте имя multisessionпользователю acl'd, чтобы он мог присоединиться к нему:

screen -x youruser/multisession

И это все.

Единственный недостаток в том, что screenдолжен запускаться как suidroot. Но, насколько я знаю, это дефолт, нормальная ситуация.

Другой вариант сделать screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

Надеюсь это поможет.

Сцилд де Мошенничество
источник
1
Это то, что я пытался, до тех пор, пока экран жалуется на необходимость suid root. Я понял, что хотел бы спросить, был ли это предпочтительный способ сделать что-то, прежде чем добавлять root-права для программ, у которых их нет по умолчанию
varesa
Странный. Мой screenявляется suidкорнем.
Сцилд де Мошенничество
Я думаю, что это может быть зависимой от дистрибутива вещи. Я пробовал на CentOS 6 или 7 (нужно проверить)
вареса
Для чего это стоит, screenтакже не suid rootна Ubuntu 16.04.
ледяной воды
6
screen -S $screen_id -X multiuser on, screen -S $screen_id -X acladd authorized_user А не из -под контроля, а команды будет хорошим дополнением к ответу
Ribamar