Vous avez raison :/etc/passwd
et /etc/shadow
sont consultés par pam_unix.so
, qui font partie de PAM. Du moins sur les Linux modernes. Vous pouvez changer cela en patchant pam_unix.so
. Si l'on en croit la page de manuel, vous ne pouvez pas modifier l'emplacement des bases de données système.
Et tu ne veux vraiment pas. /etc/passwd
n'est pas seulement utilisé pour l'authentification, il est également utilisé pour la résolution de nom (inversée) et pour rechercher des éléments tels que le nom complet de l'utilisateur, le shell, etc. Le nom et l'emplacement sont tellement standardisés que les déplacer casserait presque définitivement les choses en dehors de PAM. Vous auriez à patcher beaucoup plus que prévu.
Mise à jour : Si vous essayez de masquer le /etc/{passwd,shadow,group}
fichiers pour la sécurité, ne vous inquiétez pas. La sécurité par l'obscurité aide rarement en tant que politique. Laissez-les où ils sont et renforcez le reste de vos politiques.
Mise à jour :une solution possible
Si vous avez un logiciel personnalisé dont vous avez besoin pour accéder à un ensemble différent de bases de données d'utilisateurs/groupes, vous pouvez faire une copie des modules PAM et NSS pertinents et les corriger les pour utiliser vos bases de données personnalisées. Les bases de données Unix d'origine restent là où elles sont afin que le logiciel ne soit pas confondu, mais vous pouvez configurer PAM et NSS pour utiliser vos modules personnalisés partout où vous en avez besoin et en utilisant la politique qui vous convient.
Gardez les bases de données Unix essentiellement vierges et vous avez ce que vous avez demandé. C'est à peu près ce que le radius
et ldap
Les modules PAM/NSS le font :ils fournissent un élément supplémentaire (pas de remplacement) source des informations d'identification et des informations sur l'utilisateur/le groupe.
Pour aller plus loin :vous pouvez revenir à PAM et NSS et désactiver complètement les recherches dans la base de données Unix. Laissez les fichiers là pour les anciens logiciels (naturellement, leurs vues des bases de données d'utilisateurs/groupes seront inexactes, mais au moins elles ne seront pas cassées).
Ce que vous cherchez est le pam_pwdfile
module. Sur Debian/Ubuntu, le paquet est libpam-pwdfile
(pas sûr des distributions dérivées de RedHat).
Le README
inclus avec le package explique comment l'utiliser.
Je ne sais pas si c'est possible hors de la boîte, mais c'est certainement possible avec un peu de piratage. Pour ce faire, vous devrez :
- Ajustez/hackez la bibliothèque nsswitch (/lib/libnss_files.so ou libnss_db.so - vérifiez votre /etc/nsswitch.conf) pour qu'elle lise un autre fichier.
- Ajustez/hackez le module pam_unix pour qu'il lise d'autres fichiers.