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/profile
e, em seguida, o primeiro arquivo encontrado entre~/.bash_profile
,~/.bash_login
e~/.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
logout
em 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_shell
shell.