Ist es möglich, die Kennwortdatenbankdatei ( /etc/passwd
) in eine andere Datei zu ändern? Wie funktioniert dieser Authentifizierungsmechanismus intern? Kommt es auf pam an?
linux
password
authentication
pam
Nitine
quelle
quelle
/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.Antworten:
Sie haben Recht:
/etc/passwd
und/etc/shadow
werden vonpam_unix.so
, die Teil von PAM sind, konsultiert . Zumindest unter modernen Linuxen. Sie können dies durch Patchen ändernpam_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.Update: eine mögliche Lösung
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
undldap
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).
quelle
Was Sie suchen, ist das
pam_pwdfile
Modul. Unter Debian / Ubuntu ist das Paketlibpam-pwdfile
(nicht sicher über von RedHat abgeleitete Distributionen).Das
README
im Lieferumfang enthaltene Paket erklärt die Verwendung.quelle
Ich bin mir nicht sicher, ob es sofort möglich ist, aber es ist definitiv mit etwas Hacking möglich. Dazu müssen Sie:
quelle
/etc/passwd
Verwenden Sie NIS oder LDAP, um Ihre Benutzer zu authentifizieren. Ihre Passwörter werden nicht in den Dateien / etc / {password / shadow} gespeichert.
quelle