command line

quando faz login na shell,que programa trata da avaliação das credenciais

quando se dá a primeira bota,e é saudado com o brilho quente de um ecrã preto e um aviso intermitente,que programa é esse? Qual é o programa que trata da avaliação das credenciais? Ou melhor,que componente do código fonte é esse? Posso estar a confundir-me,mas penso que os vários shells de utilizadores são carregados após a autenticação do utilizador.

... o que pode significar que o bash é iniciado no modo de usuário único e, em seguida, o bash verifica as credenciais e inicia um shell de usuário? (acho que é assim que funciona)

(Estou interessado em adicionar um recurso ao processo de verificação de credenciais, mas estou analisando o código-fonte do bash e não sei por onde começar.)


Eu tenho apenas um entendimento rudimentar, no entanto, vou postar isso para você começar:

Primeiro,não se faz o login a uma concha,mas sim a um terminal (virtual).

  • um programa getty abre uma porta tty, solicita um nome de login e invoca um programa de login ( /bin/login por padrão - embora o agetty do Linux possa ser configurado para usar um programa de login não padrão)

  • o programa de login executa a autenticação e a configuração da sessão,incluindo a inicialização do ambiente e a invocação da shell de login do utilizador.

Nos sistemas Ubuntu atuais, getty é gerenciado como um serviço systemd (ex. getty.service para o terminal virtual tty1), e o login usa o subsistema Pluggable Authentication Modules (PAM) para autenticação - em particular, o módulo pam_unix é "para senha tradicional autenticação".

Para seu objetivo declarado ( "adicionar um recurso ao processo de verificação de credenciais" ), você provavelmente gostaria de considerar a implementação de um módulo PAM personalizado e inseri-lo em um local apropriado na pilha PAM; um modelo para isso é descrito aqui:

  • Autenticar externamente o utilizador dentro da sessão PAM/PAM dentro da sessão PAM

See also: