O que 'script / dev / null' faz?


21

Toda vez que faço logon em uma VM com raiz, suem uma conta de usuário e tento usá- screenla, gera um erro:

Cannot open your terminal '/dev/pts/0' - please check.

Uma postagem do Stack Overflow disse que eu precisava usar script /dev/nullpara 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.


2
> Uma postagem do Stack Overflow disse - pode ser útil se você também adicionar um link a essa postagem, talvez em um comentário.
törzsmókus 9/04

Poderia ter sido stackoverflow.com/a/44244425/340790 , por exemplo.
JdeBP

Respostas:


27

Você não pode abrir /dev/pts/0porque é 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 da SCM_RIGHTSmensagem auxiliar em um soquete de domínio unix, em vez de enviar apenas o nome de terminal e peça ao screenservidor para tentar abri-lo (e falhar). A mesma coisa com tmux.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.