O login é feito por outras ferramentas além do shell, por exemplo, login , ou pelo gerenciador da área de trabalho (com a ajuda do PAM e de várias outras ferramentas).
O propósito de um shell de login não é para manipular o login, ele deve se comportar apropriadamente como o primeiro shell em uma sessão de login: principalmente, isso significa processar arquivos de inicialização que só devem ser processados uma vez por sessão de login e proteger a sessão de login contra interação indesejada com determinados recursos do sistema (suspensão de tarefas em particular).
As especificações de um shell de login, pelo menos implementado no Bash , são as segue:
- um shell de login processa comandos de
/etc/profilee, em seguida, o primeiro arquivo encontrado entre~/.bash_profile,~/.bash_logine~/.profile(a menos que seja um shell de login não interativo iniciado sem a opção--login); - ao sair de um shell de login, é executado
logoutem vez deexit; - sair de um shell de login desliga todos os trabalhos;
- um shell de login não pode ser suspenso;
- um shell de login define a variável
HOME(exceto no modo POSIXly-correto); - um shell de login define a opção
login_shellshell.