Sie haben recht:/etc/passwd
und /etc/shadow
werden von pam_unix.so
konsultiert , die Teil von PAM sind. Zumindest auf modernen Linuxen. Sie könnten dies ändern, indem Sie pam_unix.so
patchen . Wenn man der Manpage Glauben schenken darf, können Sie den Speicherort der Systemdatenbanken nicht ändern.
Und das willst du wirklich nicht. /etc/passwd
wird nicht nur zur Authentifizierung verwendet, sondern auch zur (umgekehrten) Namensauflösung und zum Nachschlagen von Dingen wie dem vollständigen Namen des Benutzers, der Shell usw. Der Name und der Ort sind so standardisiert, dass das Verschieben fast definitiv Dinge außerhalb von PAM zerstören würde. Sie müssten viel mehr patchen, als Sie erwartet hätten.
Aktualisierung: Wenn Sie versuchen, /etc/{passwd,shadow,group}
auszublenden Dateien aus Sicherheitsgründen, machen Sie sich keine Sorgen. Security by Obscurity hilft selten als Richtlinie. Lassen Sie sie, wo sie sind, und verschärfen Sie den Rest Ihrer Richtlinien.
Update:eine mögliche Lösung
Wenn Sie über benutzerdefinierte Software verfügen, die Sie benötigen, um auf einen anderen Satz von Benutzer-/Gruppendatenbanken zuzugreifen, können Sie eine Kopie der relevanten PAM- und NSS-Module erstellen und sie patchen um Ihre benutzerdefinierten Datenbanken zu verwenden. Die ursprünglichen Unix-Datenbanken bleiben, wo sie sind, damit die Software nicht verwirrt wird, aber Sie können PAM und NSS so einstellen, dass sie Ihre benutzerdefinierten Module überall dort verwenden, wo Sie es brauchen, und jede Richtlinie verwenden, die für Sie sinnvoll ist.
Halten Sie die Unix-Datenbanken im Wesentlichen makellos und Sie haben, wonach Sie gefragt haben. Das ist so ziemlich das, was radius
und ldap
PAM/NSS-Module tun es:Sie bieten ein zusätzliches (kein Ersatz) Quelle für Anmeldeinformationen und Benutzer-/Gruppeninformationen.
Gehen Sie noch einen Schritt weiter:Sie können zu PAM und NSS zurückkehren und die Unix-Datenbanksuche insgesamt deaktivieren. Belassen Sie die Dateien dort für alte Software (natürlich werden ihre Ansichten der Benutzer-/Gruppendatenbanken ungenau sein, aber zumindest werden sie nicht beschädigt).
Was Sie suchen, ist pam_pwdfile
Modul. Unter Debian/Ubuntu ist das Paket libpam-pwdfile
(bei von RedHat abgeleiteten Distributionen bin ich mir nicht sicher).
Die README
im Lieferumfang enthalten erklärt, wie man es benutzt.
Ich bin mir nicht sicher, ob es sofort einsatzbereit ist, aber mit etwas Hacking ist es definitiv möglich. Dazu müssen Sie:
- Tune/hacke die nsswitch-Bibliothek (/lib/libnss_files.so oder libnss_db.so - überprüfe deine /etc/nsswitch.conf), damit sie eine andere Datei liest.
- Tune/hacke das pam_unix-Modul so, dass es einige andere Dateien lesen würde.