Compartilhando um terminal com vários usuários (com tela ou não)

11

Estou configurando um servidor no qual existem vários desenvolvedores trabalhando em vários aplicativos.

Eu descobri como para dar certos desenvolvedores acesso compartilhado para os diretórios de aplicação necessárias usando o setgid bite default ACLsdar a ninguém em um acesso de grupo.

Muitos desses aplicativos são executados em um terminal enquanto estão em desenvolvimento para facilitar o acesso. Quando trabalho sozinho, configuro um usuário para um aplicativo e executo a tela como esse usuário. Isso tem a desvantagem de que todo desenvolvedor screen sessionprecisa usar a senha e é mais difícil manter as contas de usuários e aplicativos separadas.

Uma maneira de funcionar é usar os recursos de tela multiusuário. Eles não funcionam imediatamente, porém, a tela reclama da necessidade suid root. A doação tem alguma desvantagem? Eu tenho muito cuidado com o uso de suid rootqualquer coisa. Talvez haja uma razão pela qual não é o padrão?

Devo fazê-lo com screenou existe alguma outra maneira inteligente de fazer o que eu quero?

varesa
fonte

Respostas:

22

Sim, você pode fazer isso com screensuporte a multiusuários.

Primeiro, crie uma nova sessão:

screen -d -m -S multisession

Anexar a ele:

screen -r multisession

Ative o suporte multiusuário:

Pressione Ctrl-ae digite

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

Agora, Ctrl-a de liste as sessões:

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

Agora você tem uma sessão de tela multiusuário. Dê o nome multisessionao usuário acl'd, para que ele possa anexar a ele:

screen -x youruser/multisession

E é isso.

A única desvantagem é que screendeve ser executado como suidroot. Mas, tanto quanto eu sei, é a situação normal e padrão.

Outra opção é fazer screen -S $screen_id -X multiuser on,screen -S $screen_id -X acladd authorized_user

Espero que isto ajude.

Scyld de Fraud
fonte
1
Isto é o que eu tentei, até onde a tela reclama da necessidade suid root. Eu descobri que eu ia perguntar se esta era a maneira preferida de fazer as coisas antes de adicionar permissões de root para programas que não tê-los por padrão
varesa
Estranho. Meu screené suidraiz.
Scyld de Fraud
Eu acho que isso pode ser uma coisa dependente da distribuição. Tentei no CentOS 6 ou 7 (precisa ser verificado)
varesa
Pelo que vale, screentambém não está suid rootno Ubuntu 16.04.
Icedwater
6
screen -S $screen_id -X multiuser on, em screen -S $screen_id -X acladd authorized_user vez de comandos control-a seria um bom complemento para a resposta
ribamar 15/03