Como o login do Linux funciona? [duplicado]

4

Eu estou querendo saber como o login realmente funciona. Certamente não faz parte do kernel, porque eu posso definir o login para usar o ldap, por exemplo, ou continuar usando /etc/passwd ; mas o kernel certamente é capaz de usar informações dele para realizar atividades de autenticação e autorização.

Existe também um daemon systemd, chamado logind, que parece iniciar todo o mecanismo de login.

Existe algum documento de design que eu possa ver ou alguém pode descrevê-lo aqui?

    
por Sambatyon 16.07.2015 / 18:50

2 respostas

7

O binário login é bastante simples (em princípio). É apenas um programa que é executado como root user (iniciado, indiretamente, por getty ou um gerenciador de exibição X, de init , o primeiro processo de espaço do usuário). Ele executa a autenticação do usuário de login e, se tiver êxito, altera o usuário (usando uma das chamadas de sistema setuid() da família), define variáveis de ambiente apropriadas, umask, etc e exec() sa shell de login. / p>

Pode ser instrutivo ler o código-fonte, mas se você fizer isso, você achará mais fácil (assumindo o% padrãoshadow-utils login que o Debian instala) para lê-lo, assumindo que USE_PAM não está definido, pelo menos até que você esteja confortável com o seu funcionamento, ou você encontrará muita distração.

    
por 16.07.2015 / 19:20
3

Este site parece ser um ótimo lugar para começar. Ele tem uma discussão sobre /etc/passwd , bem como sobre o PAM. Eu acho que você está realmente procurando uma descrição do PAM. Se você estiver procurando implementar algo para um uso específico, edite sua pergunta para nos dar uma ideia do que você está tentando realizar.

    
por 16.07.2015 / 19:13