Um script pode funcionar como um shell de login. Você precisará adicionar / local / sbin / admin_menu a /etc/shells . Caso contrário, logins do ssh (e possivelmente outros) não funcionarão sem nenhuma explicação do motivo (se bem me lembro).
Existem algumas variáveis de ambiente que serão transferidas do cliente, como o tamanho da janela. Alguns serão definidos no login no sistema. O PAM pode definir alguns deles, mas eu não tenho um exemplo.
Após o término do processo do menu, o cliente está desconectado, acredito. Eu me baseio nisso para observar o que acontece quando /bin/bash termina.
Se eu fosse você, usaria stdin / stdout para sua fonte de entrada e saída.