“Não há mais PTYs” ao iniciar a tela como usuário não root

4

Sempre que tento iniciar uma sessão de tela como um usuário não-root, recebo "Sem mais PTYs". como uma resposta. O mesmo comando no mesmo diretório que o root funciona corretamente.

Eu tentei a solução de este post, mas não vai mudar nada:

$ ls /dev/pts  
$ cat /proc/sys/kernel/pty/nr
0
$ cat /proc/sys/kernel/pty/max
4096

Até mesmo a desmontagem e a remontagem não ajudam:

$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime 0 0
$ umount devpts
$ mount devpts /dev/pts -t devpts -o mode=620

Minha questão relacionada: Iniciar um servidor de minecraft usando a tela não funciona corretamente

    
por Ragyal 28.10.2015 / 15:29

1 resposta

4

É muito provável que você não consiga fazer screen usar os pseudo-terminais BSD porque ele é compilado para usar um estilo específico de pseudo-terminal (nunca ambos). Existem dois sabores principais com variações:

  • uma função (como openpty ) fornece os nomes para o mestre e dispositivos escravos
  • o programa procura por uma lista de pares mestre / escravo por um par não utilizado

No último caso, você poderia fazer um

strings /usr/bin/screen

e encontre algo assim: 0123456789abcdef (talvez mais). Se você não encontrar isso, ele será compilado para os pseudo-terminais Unix98.

Se você fizer localizar a string, é possível que screen tenha que executar setuid'd, por exemplo, para root (para que possa modificar as permissões e propriedade dos pares mestre / escravo).

Como a pergunta indica que funciona como root , é provável que funcione para usuários comuns depois de algo como

sudo chmod u+s /usr/bin/screen
    
por 29.10.2015 / 00:50