Einstellen des Sudo-Passworts unterscheidet sich vom Login-Passwort

8

Ich versuche, mit PAM ein anderes Passwort für sudo zu verwenden als für die Anmeldung.

Ich habe ursprünglich an diesem Beitrag gearbeitet

Stellen Sie das sudo-Passwort anders ein als das Login-Passwort

Leider erhalte ich jedes Mal einen Authentifizierungsfehler und bin mir nicht sicher, was falsch läuft. Vielleicht habe ich mein Passwort falsch gehasht oder falsch zur Datenbank hinzugefügt, aber ich bin mir nicht sicher, wo das Problem liegt.

Die Konfiguration für sudo lautet

session    required   pam_env.so readenv=1 user_readenv=0

session    required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0

auth required pam_userdb.so crypt=crypt db=/var/local/sudopass/passwd.db

\#@include common-auth

@include common-account

@include common-session-noninteractive

Ich habe das Passwort passwd -m des passwordzu Testzwecken festgelegt und dann mit db5.3 die Datenbank passwd.db erstellt

db5.3_load -h /var/local/sudopass -t hash -T passwd.db

mein Benutzername

73o8ECeyEW3Y2 (Passwort-Hash)

Und dann Authentifizierungsfehler. Hinweis: Wenn ich diese Datenbank beispielsweise in meinem Ausgangsverzeichnis ablege, kann PAM die Datenbank nicht einmal finden, unabhängig davon, wie ich die Berechtigungen festgelegt habe.)

Aktueller auth.log-Speicherauszug

Ich habe Probleme damit, den Authentifizierungsfehler zu erhalten, aber hier ist das aktuelle Problem in auth.log Oct 18 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb(sudo:auth): Verify useraz 'mit einem Kennwort

18. Oktober 12:07:43 az-GlAdOS-mk11-m sudo: pam_userdb (sudo: auth): user_lookup: Datenbank `/var/local/sudopass/passwd.db 'konnte nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis

18. Oktober 12:07:43 az-GlAdOS-mk11-m sudo: az: PAM-Authentifizierungsfehler: Fehler im Servicemodul; TTY = pts / 4; PWD = / home / az; USER = root; BEFEHL = / bin / nano / etc / pam.d / sudo`

Aaron Zolotor
quelle
Es würde gut funktionieren. Ich könnte die Sudo-Gruppe leer lassen und nur ein Root-Passwort haben, aber 1) Ich mag es nicht, als Root angemeldet zu sein, wenn ich nur ein oder zwei Befehle ausführen muss. 2) Größeres Risiko. 3) Ich versuche, die Verwendung zu beherrschen von PAM-Modulen / Authentifizierung
Aaron Zolotor
Was sehen Sie in den Systemprotokollen?
V13
Das letzte Mal, als ich es versuchte und sah, warf es nur einen Authentifizierungsfehler
Aaron Zolotor
Fügen Sie debugder pam_userdb.soZeile eine Option hinzu, um weitere Informationen in den Systemprotokollen zu erhalten.
TelcoM

Antworten:

2

Der Leitfaden, auf den Sie verlinkt haben, stammt aus der Zeit vor 5 Jahren. PAM verwendet DES nicht mehr. Versuchen Sie dies, um Ihren Passwort-Hash zu generieren:

echo pass|mkpasswd -s -m sha-512
Magister Ludi
quelle
6

Sie können die targetpwOption in verwenden sudoers, bei der sudo nicht nach Ihrem eigenen Kennwort fragt, sondern nach dem Kennwort des Benutzers, als den Sie den Befehl ausführen möchten (was in den meisten Fällen der Fall ist root). Sie können dann verschiedene Passwörter für Ihren eigenen Benutzer und das rootBenutzerkonto verwenden.

Verwenden Sie das folgende Snippet in Ihrer Sudoers-Datei, um dieses Verhalten global zu aktivieren (bearbeiten Sie es mit visudo):

Defaults targetpw
ALL ALL=(ALL) ALL

Die zweite Zeile bedeutet, dass jeder Benutzer im System sudo verwenden kann, wenn er das Kennwort des Zielbenutzers kennt. Wenn Sie es weglassen, sind sowohl die Mitgliedschaft in der konfigurierten Gruppe als auch das Kennwort des Ziels erforderlich. (Beachten Sie, dass Sie die Gruppenanforderung umgehen können, wenn Sie Zugriff darauf haben su, da diese Konfiguration nicht berücksichtigt wird.)

Sie können auch eine der beiden folgenden Varianten verwenden, mit denen die targetpwAnweisung nur auf einen bestimmten Benutzer bzw. eine bestimmte Gruppe angewendet wird :

Defaults:username targetpw
username ALL=(ALL) ALL

Defaults:%groupname targetpw
%groupname ALL=(ALL) ALL

(Geben Sie nicht an , ALL ALL=(ALL) ALLob Sie eine davon verwenden!)

Wüstengecko
quelle