Embora provavelmente não seja possível renomear os arquivos /etc/passwd
e /etc/shadow
, se você quiser segurança adicional, consulte o PAM (módulos de autenticação conectáveis) e o NSS (Name Service Switch). Como aqui.
O PAM pode ser usado para adicionar módulos de autenticação que, em vez de ler suas informações de autenticação nos arquivos padrão, os leem de outra fonte, como do ldap ou de um banco de dados. Usá-lo significaria que a /etc/shadow
quase totalidade pode ser eliminada.
O NSS complementa o PAM, tornando parte da resolução de nomes (como em quais grupos esse usuário pertence) independente dos arquivos padrão ( /etc/passwd
, /etc/groups
). Usá-lo significaria que seu arquivo passwd conterá potencialmente apenas uma opção de fallback para raiz e nada mais. O uso de chaves SSH para validar o login raiz também eliminaria a necessidade de ter uma senha raiz dentro do arquivo shadow (embora isso possa ser desejado se a conexão SSH for interrompida).
Como alternativa, se você não deseja autenticar seus usuários por meio de um banco de dados ou host ldap separado, também pode criar seus próprios módulos PAM e NSS, que lêem os dados de um arquivo não padrão, embora eu não recomende esta opção.
Quando você quiser usá-los, nunca se esqueça de manter algum tipo de fallback para uma camada de autenticação conhecida e funcional, caso contrário, você poderá se bloquear do sistema, mesmo com o root.
Observe que nem todos os aplicativos suportam o PAM (muitos deles, no entanto). No entanto, o NSS pode ser usado para implementar a autenticação de aplicativos que não oferecem suporte ao PAM, e alguns sites que li sobre o NSS sugerem essa abordagem. No entanto, isso significa que o módulo NSS fornecerá a senha (potencialmente) para qualquer pessoa que possa acessar a camada de autenticação NSS, quase sempre algo que você deseja evitar (é basicamente o mesmo que fornecer acesso de leitura não raiz ao arquivo shadow )! Portanto, se você seguir essa abordagem, verifique sempre se o NSS é usado apenas para fornecer ao usuário os dados básicos (como o conteúdo de /etc/passwd
) e se o PAM é usado como a camada de autenticação.