Quando eu estava estudando em uma Universidade de Tecnologia (em 1997), a guilda estudantil local recebeu alguns terminais VT220 antigos e PCs de baixa especificação (imagine CPUs Intel 20 MHz 386) como uma doação (da computação uni centro, eu acho). O guildroom já tinha um PC ou dois que podiam rodar um navegador web, mas o serviço mais necessário entre os estudantes era apenas uma conexão SSH que poderia ser usada para ler e-mails e usar o sistema de inscrição do curso (baseado em texto). >
Liguei os terminais aos PCs, configurei os getty
processos para mostrar um prompt hostname:
em vez do usual login:
. Então peguei o código-fonte de /bin/login
e fiz uma versão modificada dele.
Esse programa aceitaria o nome do host inserido para getty
como um parâmetro de linha de comando (assim como o nome de usuário normalmente seria), então solicitará um nome de usuário real e, em seguida, exec()
a SSH para o host remoto desejado. Quando o comando SSH saía, toda a "sessão de login" morreria e o processo seria reiniciado automaticamente, pois init
reiniciava getty
.
A mesma configuração pode ser usada em um console local e em uma conexão de terminal serial. Agora, cada um desses PCs antigos poderia servir como um quiosque SSH de vários lugares!
Você poderia fazer algo semelhante, mas ainda mais simples, já que não precisaria da etapa de solicitação do nome do host. Seu /bin/login
modificado só precisaria aceitar o nome de usuário já digitado e iniciar um SSH para um computador remoto específico. O cliente SSH mostraria um prompt de senha.