Sim, é possível, com uma ferramenta chamada ttyecho, que pode emular a interação do usuário em diferentes terminais.
Faça o download e instale:
wget http://www.resulinux.tk/utils/ttyecho.c -O ttyecho.c
gcc ttyecho.c -o /usr/bin/ttyecho
Agora vamos executar algo em outro terminal, por exemplo, como usuário john que está loggeg em pts / 17 usando o xterm como você vê no comando ps:
ps aux | grep john
john 9198 0.0 0.0 23836 4524 pts/17 Ss Jul21 0:00 /bin/bash
Agora, vamos tentar abrir o vi e digitar algum texto no outro terminal.
ttyecho -n /dev/pts/17 vi (executed vi command on the other terminal)
ttyecho /dev/pts/17 i (entered in insertion mode)
ttyecho -n /dev/pts/17 some text
Quando você olha para o terminal onde o john está logado, você verá que o vi é realmente executado, e você pode ver o texto que digitamos nele "algum texto". Então agora você tem controle total sobre as outras sessões de terminal.
Execução de comandos em várias sessões ssh
Determine os dispositivos ssh pts:
ps aux | grep ssh
root 3540 0.0 0.0 44924 5764 pts/1 S+ 14:46 0:00 ssh [email protected]
root 5907 0.0 0.0 44924 5684 pts/17 S+ 12:51 0:00 ssh [email protected]
root 8074 0.0 0.0 51216 3948 pts/6 S+ Jul26 0:01 ssh [email protected]
Então, para executar comandos no ssh logado em 192.168.2.77, eu só preciso:
ttyecho -n /dev/pts/6 ls
E o comando ls será executado remotamente no script único!