I know that passwords are stored in /etc/shadow
Como Gilles já afirmou, somente hashes de senha são armazenados em /etc/shadow
, além disso, esse é apenas um dos possíveis locais, eles podem ser armazenados globalmente em um servidor ldap
ou uma tabela NIS
.
However, during the login process, I'm assuming that Linux take your username and password as an argument, encrypt your password with the same algorithm and compare it to the one stored in the shadow.
O processo é muito mais flexível do que isso. Dependendo da configuração PAM
, o sistema poderá verificar vários módulos em seqüência e parará se um dos módulos for bem-sucedido e declarado como suficiente ou, alternativamente, se um módulo falhar e for declarado como requisito. Os módulos são capazes de estabelecer uma caixa de diálogo com o usuário tentando fazer o login, portanto, o que é fornecido não é necessariamente um par de nome de usuário / senha. Por exemplo, um usuário pode receber acesso sem fornecer nenhuma senha ao usar rlogin
( pam_rhosts_auth
). Ele deve ser avisado de que a senha está prestes a expirar, ser solicitado a alterar uma senha expirada e tarefas interativas semelhantes.
My question is, where does this process take place? (the code) I tried to search the PAM but I couldn't find anything useful there either.
Gilles também já respondeu a essa pergunta, pam_unix
está lidando com /etc/passwd
et /etc/shadow
entradas de arquivos.