In dieser Anleitung zeigen wir, wie Sie ohne Passwort zu einem anderen oder einem bestimmten Benutzerkonto wechseln können. Zum Beispiel haben wir ein Benutzerkonto namens postgres (die standardmäßige PostgreSQL Superuser-Systemkonto), möchten wir, dass jeder Benutzer (normalerweise unser PostgreSQL Datenbank- und Systemadministratoren) in der Gruppe namens postgres um zu postgres zu wechseln Konto mit dem su
Befehl ohne Eingabe eines Passworts.
Standardmäßig kann nur der Root-Benutzer ohne Eingabe eines Passworts zu einem anderen Benutzerkonto wechseln. Alle anderen Benutzer werden aufgefordert, das Passwort des Benutzerkontos einzugeben, zu dem sie wechseln (oder wenn sie den sudo-Befehl verwenden, werden sie aufgefordert, ihr Passwort einzugeben), wenn sie nicht das richtige Passwort angeben, erhalten sie ein „Authentifizierung fehlgeschlagen ” Fehler, wie im folgenden Screenshot gezeigt.
Sie können eine der beiden unten angegebenen Lösungen verwenden, um das obige Problem zu lösen.
1. Verwendung des PAM-Authentifizierungsmoduls
PAM (Steckbare Authentifizierungsmodule ) bilden den Kern der Benutzerauthentifizierung auf modernen Linux-Betriebssystemen. Damit Benutzer in einer bestimmten Gruppe ohne Passwort zu einem anderen Benutzerkonto wechseln können, können wir die Standard-PAM-Einstellungen für den su-Befehl ändern in /etc/pam.d/su Datei.
# vim /etc/pam.d/su OR $ sudo vim /etc/pam.d/su
Fügen Sie die folgenden Konfigurationen nach “auth enough pam_rootok.so hinzu “, wie im folgenden Screenshot gezeigt.
auth [success=ignore default=1] pam_succeed_if.so user = postgres auth sufficient pam_succeed_if.so use_uid user ingroup postgres
In der obigen Konfiguration prüft die erste Zeile, ob der Zielbenutzer postgres ist , wenn ja, prüft der Dienst den aktuellen Benutzer, andernfalls den default=1
Zeile wird übersprungen und die normalen Authentifizierungsschritte werden ausgeführt.
auth [success=ignore default=1] pam_succeed_if.so user = postgres
Die folgende Zeile prüft, ob der aktuelle Benutzer in der Gruppe postgres ist , falls yes
, wird der Authentifizierungsprozess als erfolgreich angesehen und als Ergebnis ausreichend zurückgegeben. Andernfalls werden die normalen Authentifizierungsschritte ausgeführt.
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Speichern Sie die Datei und schließen Sie sie.
Fügen Sie als Nächstes den Benutzer hinzu (zum Beispiel aaronk ), die Sie su
möchten auf das Konto postgres ohne Passwort in die Gruppe postgres mit dem usermod-Befehl.
$sudo usermod -aG postgres aaronk
Versuchen Sie nun su
zu den postgres Konto als Benutzer aaronk , sollten Sie nicht zur Eingabe eines Passworts aufgefordert werden, wie im folgenden Screenshot gezeigt:
$ su - postgres
2. Verwendung der Sudoers-Datei
Sie können auch su
an einen anderen Benutzer, ohne dass ein Passwort erforderlich ist, indem Sie einige Änderungen in der sudoers-Datei vornehmen. In diesem Fall muss der Benutzer (zum Beispiel aaronk ), der zu einem anderen Benutzerkonto wechselt (zum Beispiel postgres ) sollte sich in der sudoers-Datei oder in der sudo-Gruppe befinden, um den sudo-Befehl aufrufen zu können .
$ sudo visudo
Fügen Sie dann die folgende Konfiguration unter der Zeile “%sudo ALL=(ALL:ALL) ALL”
hinzu wie im folgenden Screenshot gezeigt.
aaronk ALL=NOPASSWD: /bin/su – postgres
Speichern und schließen Sie die Datei.
Versuchen Sie nun su
auf das Konto postgres als Benutzer aaronk , sollte die Shell Sie nicht zur Eingabe eines Passworts auffordern:
$ sudo su - postgres
Das ist jetzt alles! Weitere Informationen finden Sie auf der manuellen PAM-Eintragsseite (man pam.conf ) und die des sudo-Befehls auch (man sudo ).
$ man pam.conf $ man sudoVerwandte Lektüre :10 nützliche Sudoer-Konfigurationen zum Einstellen von „sudo“ in Linux