GNU/Linux >> Tutoriels Linux >  >> Linux

Est-il possible de changer le fichier de base de données de mots de passe (/etc/passwd) sous Linux ?

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 :

  1. 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.
  2. Ajustez/hackez le module pam_unix pour qu'il lise d'autres fichiers.

Linux
  1. Comment changer le mot de passe sous Linux (commande passwd)

  2. Une introduction au fichier Linux /etc/fstab

  3. Extraire les dates de /etc/shadow

  4. Dans mon fichier /etc/hosts/ sous Linux/OSX, comment créer un sous-domaine générique ?

  5. Limite de taille de /etc/hosts (Linux)

Comprendre le fichier /etc/shadow

Qu'est-ce que Fstab sous Linux | Une introduction au fichier Linux /etc/fstab

La bonne façon de modifier les fichiers /etc/passwd et /etc/group sous Linux

Commande Linux passwd - Modifier le mot de passe utilisateur

Qu'est-ce que le fichier /etc/passwd sous Linux ?

Comprendre le fichier /etc/fstab sous Linux