Eu não sei se essa é a maneira kosher de fazer isso, mas funciona:
O programa que é executado em um terminal virtual na inicialização é decidido pelo arquivo /etc/inittab . Estes são todos executados como root. Tem linhas como estas:
1:2345:respawn:/sbin/getty 38400 tty1
Eles decidem o que acaba em qual terminal virtual. /sbin/getty fornece um terminal virtual. No meu caso, /sbin/getty 38400 tty1 significa getty fornece tty1 no primeiro terminal virtual. getty chamará então login , e é daí que vêm os prompts de login nos terminais virtuais.
Portanto, há duas maneiras de fazer isso:
-
a maneira rápida e suja: basta substituir
/sbin/getty, além de argumentos, por telnet, para pelo menos um dos terminais virtuais, assim:1:2345:respawn:/usr/bin/telnet foo.barIsso provavelmente funcionará, mas não é uma maneira muito boa de fazê-lo, pois nenhum tty é criado. Isso pode causar outros problemas se você quiser usar a máquina para outras coisas também, então eu recomendo:
-
da maneira correta: instale uma substituição
gettyque possa executar qualquer programa, comorungetty. Em seguida, ligue para que :1:2345:respawn:/sbin/rungetty tty1 -- /usr/bin/telnet foo.bar
Nota: se você usar rungetty , o programa será executado sob o usuário nobody por padrão. Quase sempre é preferível executar programas como root , porque oferece melhor segurança. Se você fizer realmente precisar do usuário root (ou de qualquer outro usuário), use a opção -u .