Toda vez que entro em uma VM com root, su
em uma conta de usuário e tento usá screen
-la, gera um erro:
Cannot open your terminal '/dev/pts/0' - please check.
Uma postagem do Stack Overflow disse que eu precisava usar script /dev/null
para corrigi-lo e funciona, mas ainda não explica por que preciso digitar script /dev/null
. Eu gostaria de entender o que ele faz e por que eu preciso digitá-lo.
Você não pode abrir
/dev/pts/0
porque é de propriedade do root e, depois de processar outro usuário, não é mais capaz de abri-lo por meio de seu caminho, mas ainda pode usá-lo por meio do identificador aberto para ele, que foi herdado do processo pai.script /dev/null
irá criar outro pty, de propriedade do usuário atual.De qualquer forma, esse bug/limitação parece ter sido corrigido em versões recentes do
screen
(por exemplo, 4.99.0), que enviará corretamente o identificador para o terminal atual através daSCM_RIGHTS
mensagem auxiliar em um soquete de domínio unix, em vez de enviar apenas o nome de o terminal e faça oscreen
servidor tentar abri-lo (e falhar). Mesma coisa comtmux
.