Eu gostaria de poder verificar o progresso e a saída das minhas screen
sessões existentes , mas de maneira somente leitura, para impedir que algo dê errado devido a erro do usuário. Existe uma maneira de fazer isso?
fonte
Eu gostaria de poder verificar o progresso e a saída das minhas screen
sessões existentes , mas de maneira somente leitura, para impedir que algo dê errado devido a erro do usuário. Existe uma maneira de fazer isso?
Infelizmente, acho que a resposta é não. O autor desta pergunta mudou para o tmux especificamente porque possui esse recurso (você passa a -r
bandeira ao anexar); portanto, se você tiver a opção de alternar multiplexadores, é provavelmente a melhor escolha
Podes tentar:
aclchg username -w "#"
se você executar screen
no modo multiusuário (mas não precisei fazer nada de especial para fazê-lo funcionar ao testá-lo como um único usuário conectado). Se você precisar entrar no modo multiusuário, use multiuser on
.
Você pode usar *
o nome de usuário para afetar todos os usuários.
Usar em +w
vez de -w
ativa o modo de gravação.
De man screen
:
aclchg lista de
permbits de nomes de usuário chacl lista de permbits de nomes de usuárioAltere as permissões para uma lista de usuários separados por vírgula. Os bits de permissão são representados como 'r', 'w' e 'x'. O prefixo '+' concede a permissão, '-' a remove. O terceiro parâmetro é uma lista separada por vírgula de comandos e / ou janelas (especificada por número ou título). A lista especial '#' refere-se a todas as janelas, '?' para todos os comandos. se os nomes de usuário consistirem em um único '*', todos os usuários conhecidos serão afetados. Um comando pode ser executado quando o usuário possui o bit 'x'. O usuário pode digitar a entrada para uma janela quando tiver o bit 'w' definido e nenhum outro usuário obtiver um bloqueio de gravação para esta janela. Outros bits são atualmente ignorados. Para retirar o writelock de outro usuário na janela 2: 'aclchg username -w + w 2'. Para permitir acesso somente leitura à sessão: 'aclchg username -w "#"'. Assim que o nome do usuário é conhecido na tela, ele pode se conectar à sessão e (por padrão) tem permissões totais para todos os comandos e janelas. A permissão de execução para os comandos acl, `at 'e outros também deve ser removida ou o usuário poderá recuperar a permissão de gravação. Direitos do nome de usuário especial ninguém pode ser alterado (consulte o comando "su"). 'Chacl' é sinônimo de 'aclchg'. Somente modo multiusuário. e outros também devem ser removidos ou o usuário poderá recuperar a permissão de gravação. Direitos do nome de usuário especial ninguém pode ser alterado (consulte o comando "su"). 'Chacl' é sinônimo de 'aclchg'. Somente modo multiusuário. e outros também devem ser removidos ou o usuário poderá recuperar a permissão de gravação. Direitos do nome de usuário especial ninguém pode ser alterado (consulte o comando "su"). 'Chacl' é sinônimo de 'aclchg'. Somente modo multiusuário.
screen
somente leitura em todos os lugares em que a sessão de tela é anexada, o que parece ser diferente do que o OP pediu.aclcng
comando pode especificar usuários específicos, comandos específicos e / ou janelas específicas, de modo que é uma granularidade bastante fina. Então, isso não está "em todo lugar".Eu encontrei uma solução alternativa bastante simples que permite monitorar a saída com segurança.
Execute os seguintes comandos imediatamente após entrar na sessão da tela:
Desanexe a sessão Ctrl-A de siga a saída do script, por exemplo:
fonte
Minha solução atual para isso é definir o Terminal View como ReadOnly .
Talvez seja muito óbvio. No entanto, a pergunta não exigia uma solução por
screen
si só.fonte
eu escrevi um script php chamado
readscreen
para ... anexar a sessões de tela no modo somente leitura. salve-o/usr/bin/readscreen
e execute-ochmod 0555 /usr/bin/readscreen
e certifique-se de ter o php-cli instalado com a extensão php-pcntl, e você pode escreverreadscreen
seguido de qualquer comando que usaria para conectar-se à tela normal, por exemplo:e você estará conectado à sessão foo somente leitura . observe que não foi extensivamente testado, mas parece funcionar bem. código fonte da tela de leitura:
fonte