Website-Suche

So wechseln Sie (su) ohne Passwort zu einem anderen Benutzerkonto


In dieser Anleitung zeigen wir, wie Sie zu einem anderen oder einem bestimmten Benutzerkonto wechseln, ohne dass ein Passwort erforderlich ist. Zum Beispiel haben wir ein Benutzerkonto namens postgres (das standardmäßige PostgreSQL-Superuser-Systemkonto), wir möchten, dass jeder Benutzer (normalerweise unsere PostgreSQL-Datenbank und Systemadministratoren) in der Gruppe namens postgres, um mit dem Befehl su zum postgres-Konto zu wechseln, ohne ein Passwort einzugeben.

Standardmäßig kann nur der Root-Benutzer ohne Eingabe eines Passworts zu einem anderen Benutzerkonto wechseln. Jeder andere Benutzer wird aufgefordert, das Passwort des Benutzerkontos einzugeben, zu dem er wechselt (oder, wenn er den Befehl sudo verwendet, wird er aufgefordert, sein Passwort einzugeben). Wenn er nicht das richtige Passwort angibt, erhält er ein „Authentifizierung fehlgeschlagen-Fehler, wie im folgenden Screenshot gezeigt.

Sie können eine der beiden unten aufgeführten Lösungen verwenden, um das oben genannte Problem zu lösen.

1. Verwendung des PAM-Authentifizierungsmoduls

PAM (Pluggable Authentication Modules) sind das Herzstück der Benutzerauthentifizierung auf modernen Linux-Betriebssystemen. Um Benutzern einer bestimmten Gruppe den Wechsel zu einem anderen Benutzerkonto ohne Passwort zu ermöglichen, können wir die Standard-PAM-Einstellungen für den su-Befehl in /etc/pam.d/su ändern. Datei.

vim /etc/pam.d/su
OR
sudo vim /etc/pam.d/su

Fügen Sie die folgenden Konfigurationen nach „auth ausreichend 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 dies der Fall ist, prüft der Dienst den aktuellen Benutzer, andernfalls wird die Zeile default=1 ü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. Wenn ja, gilt der Authentifizierungsprozess als erfolgreich und gibt als Ergebnis „ausreichend“ zurück. 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 (z. B. aaronk), den Sie dem Konto postgres hinzufügen möchten, ohne Passwort zur Gruppe postgres> hinzu mit dem Befehl usermod.

$sudo usermod -aG postgres aaronk

Versuchen Sie nun, als Benutzer aaronk auf das postgres-Konto zuzugreifen. Sie sollten nicht zur Eingabe eines Passworts aufgefordert werden, wie im folgenden Screenshot gezeigt:

su - postgres

2. Verwenden der Sudoers-Datei

Sie können su auch an einen anderen Benutzer senden, ohne dass ein Passwort erforderlich ist, indem Sie einige Änderungen in der sudoers-Datei vornehmen. In diesem Fall sollte der Benutzer (zum Beispiel aaronk), der zu einem anderen Benutzerkonto wechselt (zum Beispiel postgres), in der Sudoers-Datei oder in der Sudo-Gruppe sein kann den sudo-Befehl aufrufen.

sudo visudo

Fügen Sie dann die folgende Konfiguration unterhalb 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 zuzugreifen. Die Shell sollte Sie nicht zur Eingabe eines Passworts auffordern:

sudo su - postgres

Das ist alles für jetzt! Weitere Informationen finden Sie auf der PAM-Handbucheintragsseite (man pam.conf) und auch auf der Seite des sudo-Befehls (man sudo).

man pam.conf
man sudo