Antworten:
Sie haben Recht: /etc/passwd
und /etc/shadow
werden von pam_unix.so
, die Teil von PAM sind, konsultiert . Zumindest unter modernen Linuxen. Sie können dies durch Patchen ändern pam_unix.so
. Wenn man der Manpage glauben will, kann man den Speicherort der Systemdatenbanken nicht ändern.
Und du willst es 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, der Shell usw. des Benutzers. Der Name und der Ort sind so standardisiert, dass das Verschieben fast definitiv Dinge außerhalb von PAM kaputt machen würde. Sie müssten viel mehr flicken, als Sie erwartet hatten.
Update: Wenn Sie versuchen, die /etc/{passwd,shadow,group}
Dateien aus Sicherheitsgründen auszublenden , machen Sie sich darüber keine Sorgen. Sicherheit durch Dunkelheit hilft selten als Politik. Lassen Sie sie dort, wo sie sind, und verschärfen Sie den Rest Ihrer Richtlinien.
Wenn Sie einige benutzerdefinierte Software haben Sie einen anderen Satz von Benutzer- / Gruppen - Datenbanken zugreifen müssen, können Sie eine Kopie der entsprechenden PAM und NSS - Module machen und patchen sie Ihre benutzerdefinierten Datenbanken zu verwenden. Die ursprünglichen Unix-Datenbanken bleiben dort, wo sie sich befinden, damit die Software nicht verwechselt wird. Sie können jedoch PAM und NSS so einstellen, dass Ihre benutzerdefinierten Module überall dort verwendet werden, wo Sie sie benötigen, und die für Sie sinnvollen Richtlinien verwenden.
Halten Sie die Unix-Datenbanken im Wesentlichen makellos und Sie haben das, wonach Sie gefragt haben. Dies ist so ziemlich das, was die Module radius
und ldap
PAM / NSS tun: Sie bieten eine zusätzliche (nicht ersetzbare) Quelle für Anmeldeinformationen und Benutzer- / Gruppeninformationen.
Noch einen Schritt weiter: Sie können zu PAM und NSS zurückkehren und die Unix-Datenbank-Lookups vollständig deaktivieren. Lassen Sie die Dateien dort für alte Software (natürlich sind ihre Ansichten der Benutzer- / Gruppendatenbanken ungenau, aber zumindest werden sie nicht beschädigt).
Ich bin mir nicht sicher, ob es sofort möglich ist, aber es ist definitiv mit etwas Hacking möglich. Dazu müssen Sie:
/etc/passwd
/etc/passwd
nicht die tatsächlichen Passwörter oder sogar die Hashes enthält - schattierte Passwörter waren de facto ein Standard, seit ich vor zwei Jahrzehnten mit Unix angefangen habe.