Posso escrever caracteres de controle no terminal de outra pessoa?

1

Muitas pessoas fazem login no mesmo servidor AIX 6.1, como faço com um emulador de terminal que interpreta automaticamente e executa código encapsulado por determinados caracteres de controle como script VBA, em vez de gravá-lo no monitor. Então, como uma brincadeira, eu tenho um arquivo que contém uma seqüência de caracteres que exibe uma mensagem em uma caixa pop-up que eu quero gravar em seus terminais.

$ cat msgbox.txt  
*message box pops up*

Mas quando eu escrevo para alguém, o efeito é perdido:

$ cat msgbox.txt | write *my other sesssion*

Na outra sessão:% Message from *myself* [*datetime*] \o 33 *code to show a msgbox* \o 33\<EOT>

Onde o "\ o 33" substitui o caractere ASCII 27. É possível enviar caracteres de controle por meio da escrita ou preciso fazer algo diferente?

    
por harmless prankster 25.04.2012 / 23:55

2 respostas

4

Eu não sei especificamente sobre o AIX, mas na maioria dos unices, você não pode fazer isso, por design. Você não pode ler ou escrever nos terminais de outras pessoas, o que acontece lá não é da sua conta. O programa write tem privilégios extras (setuid root ou setgid tty , dependendo do sistema). Ele cuida para higienizar a entrada que você joga para não atrapalhar demais a outra pessoa.

Se você realmente quer enviar caracteres de controle para o terminal de um usuário, você precisa ser root.

    
por 26.04.2012 / 03:22
0

Você precisaria cat diretamente para o dispositivo tty / pty que eles estão usando. Você também precisa ter certeza de que o terminal faz a mesma coisa que a sua com os personagens; talvez seja necessário ficar de olho no modo tty (cuidado com a expansão da nova linha).

    
por 26.04.2012 / 00:00