É possível alterar o arquivo de banco de dados de senhas (/etc/passwd) no Linux?

É possível alterar o arquivo de banco de dados de senhas (/etc/passwd) no Linux?

É 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/passwde /etc/shadowsã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/passwdnã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 radiusmódulos ldapPAM/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_pwdfilemódulo. No Debian/Ubuntu o pacote é libpam-pwdfile(não tenho certeza sobre distros derivadas do RedHat).

O READMEque 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á:

  1. 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.
  2. 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}.

informação relacionada