
Estamos tentando reescrever um assassino de sessão de tela draconiano para usuários que deixam suas sessões de tela ativas por um período excessivo de tempo e, de uma forma ou de outra, contornaram o tempo limite de nossa sessão.
O método atual é encontrar o pid para a tela e eliminá-lo, parece que o programa da tela está escrito de uma forma que você pode conectar-se a sessões de outros usuários, mas quando tento fazer qualquer coisa como root, o diretório da tela é um diretório diferente. Suponho que isso seja por motivos de segurança, mas existe alguma maneira de substituir isso intencionalmente para que eu possa fazer algo como screen -r somedude/33333 -d -X quit
? como raiz?
Responder1
As instâncias padrão screen
são singleuser
, ou seja, cada instância só pode ser acessada pelo usuário que a cria.
Para permitir instâncias multiusuário screen
, você pode adicionar estes comandos:
multiuser on
addacl root,<user1>,<user2>,...
para sua screen
configuração global, ou seja /etc/screenrc
, .
Todas screen
as instâncias depois disso devem ser multiusuário screen
, ou seja, podem ser anexadas por outros usuários especificados em addacl
; exceto se substituído por comandos específicos do usuário.
Você pode listar as telas do usuário com
$ find /var/run/screen -type s
/var/run/screen/S-<user>/<pid>.<tty>.<host>
e anexe à tela de outro usuário com
$ screen -d -r <user>/<pid>
Verificarman screen
, Seção de personalização para obter mais informações sobre screenrc
.
Observe que cada usuário também pode adicionar seus próprios screenrc
comandos específicos do usuário no $HOME/.screenrc
arquivo, desabilitando assim a tela multiusuário para seu usuário.