É possível alterar o arquivo de banco de dados de senha ( /etc/passwd
) para algum outro arquivo. Como funciona esse mecanismo de autenticação internamente? Depende de Pam?
Responder1
Você está certo: /etc/passwd
e /etc/shadow
são consultados por pam_unix.so
, que fazem parte do PAM. Pelo menos nos Linux modernos. Você pode mudar isso corrigindo o pam_unix.so
. Se acreditarmos na página de manual, você não pode alterar a localização dos bancos de dados do sistema.
E você realmente não quer. /etc/passwd
não é usado apenas para autenticação, também é usado para resolução de nomes (reversa) e para procurar coisas como o nome completo do usuário, shell, etc. O nome e a localização são tão padronizados que movê-los quase definitivamente quebraria as coisas fora do PAM. Você teria que consertar muito mais do que esperava.
Atualizar:Se você está tentando ocultar os /etc/{passwd,shadow,group}
arquivos por segurança, não se preocupe. A segurança pela obscuridade raramente ajuda como política. Deixe-os onde estão e reforce o restante de suas políticas.
Atualização: uma possível solução
Se você tiver algum software personalizado e precisar acessar um conjunto diferente de bancos de dados de usuários/grupos, poderá fazer uma cópia dos módulos PAM e NSS relevantes e corrigirelespara usar seus bancos de dados personalizados. Os bancos de dados unix originais permanecem onde estão para que o software não fique confuso, mas você pode configurar o PAM e o NSS para usar seus módulos personalizados sempre que precisar e usar qualquer política que faça sentido para você.
Mantenha os bancos de dados Unix essencialmente intactos e você terá o que pediu. Isso é basicamente o que os radius
módulos ldap
PAM/NSS fazem: eles fornecem umaadicionalfonte (não de substituição) de credenciais e informações de usuário/grupo.
Indo um passo adiante: você pode voltar ao PAM e ao NSS e desativar completamente as pesquisas no banco de dados Unix. Deixe os arquivos lá para software antigo (naturalmente, suas visualizações dos bancos de dados de usuários/grupos serão imprecisas, mas pelo menos não serão quebradas).
Responder2
O que você está procurando é o pam_pwdfile
módulo. No Debian/Ubuntu o pacote é libpam-pwdfile
(não tenho certeza sobre distros derivadas do RedHat).
O README
que acompanha o pacote explica como usá-lo.
Responder3
Não tenho certeza se isso é possível imediatamente, mas é definitivamente possível com alguns hackers. Para fazer isso, você precisará:
- Tune/hackeie a biblioteca nsswitch (/lib/libnss_files.so ou libnss_db.so - verifique seu /etc/nsswitch.conf) para que ele leia algum outro arquivo.
- Ajuste/hackeie o módulo pam_unix para que ele leia alguns outros arquivos.
Responder4
Use NIS ou LDAP para autenticar seus usuários. Suas senhas não serão armazenadas no(s) arquivo(s) /etc/{password/shadow}.