Toda vez que faço logon em uma VM com raiz, 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
. Gostaria de entender o que faz e por que preciso digitá-lo.
terminal
gnu-screen
su
pty
CJL
fonte
fonte
Respostas:
Você não pode abrir
/dev/pts/0
porque é de propriedade do root e, após ter processado outro usuário, não é mais possível abri-lo pelo caminho, mas ainda é possível usá-lo pelo identificador aberto, que foi herdado do processo pai.script /dev/null
criará outro arquivo, de propriedade do usuário atual.De qualquer forma, esse bug / limitação parece ter sido corrigido nas versões recentes do
screen
(por exemplo, 4.99.0), que enviarão 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 terminal e peça aoscreen
servidor para tentar abri-lo (e falhar). A mesma coisa comtmux
.fonte