Wie erteile ich einem Webserverbenutzer Leseberechtigung für die Datei /etc/shadow?

Wie erteile ich einem Webserverbenutzer Leseberechtigung für die Datei /etc/shadow?

Ich möchte, dass ein lokaler Linux-Benutzer mit dem Nginx PAM-Modul authentifiziert (anmeldet) werden kann. Ich verwende einen CentOS 7-Server. Konkret versuche ich Folgendes zu tun …

DerLiesmichfür das ngx http Auth PAM Modul heißt es:

Beachten Sie, dass das Modul als Webserver-Benutzer ausgeführt wird. Die verwendeten PAM-Module müssen daher in der Lage sein, die Benutzer zu authentifizieren, ohne dass sie Root-Rechte besitzen. Dies bedeutet, dass Sie, wenn Sie das Modul pam_unix.so zur Authentifizierung von Benutzern verwenden möchten, dem Webserver-Benutzer das Lesen der Datei /etc/shadow gestatten müssen, wenn Sie das nicht abschreckt (auf Debian-ähnlichen Systemen können Sie den Benutzer www-data zur Shadow-Gruppe hinzufügen).

Meine erste Frage ist, ob in diesem Fall „nginx“ der Webserver-Benutzer ist. Meine zweite Frage ist, wie ich die Berechtigungen für den Webserver-Benutzer festlegen kann, um die Datei /etc/shadow zu lesen. Kann mir bitte jemand die Schritte nennen, die bei ihm funktioniert haben? Ich habe viele Tutorials befolgt, die ich online gefunden habe, aber ohne Erfolg. Wenn ich derzeit auf die Site zugreife, bei der sich ein lokaler Linux-Benutzer anmelden können soll, erhalte ich zwar eine Authentifizierungsaufforderung (zur Eingabe von Benutzername und Passwort), aber wenn ich die Anmeldeinformationen eines lokalen Linux-Benutzers eingebe, ist dies erfolglos und ich werde einfach aufgefordert, sie erneut einzugeben.

Vielen Dank, ich bin für jede Hilfe dankbar und kann Ihnen bei Bedarf weitere Informationen geben.

Bearbeiten:

Ich habe PAM in nginx konfiguriert, indem ich nginx zunächst aus dem Quellcode erstellt habe, und zwar mit den SchrittenHier. In meiner nginx.conf-Datei habe ich oben die folgende Zeile hinzugefügt, um das PAM-Modul einzubinden...

load_module /etc/nginx/modules/ngx_http_auth_pam_module.so;

Ich habe die beiden folgenden Zeilen auch in meine Standortdirektive in nginx.conf aufgenommen …

auth_pam "Secure area";
auth_pam_service_name "nginx";

Im Verzeichnis „/etc/pam.d“ für die Nginx-Servicedatei habe ich die folgenden zwei Zeilen …

auth required /usr/lib/security/pam_unix.so
account required /usr/lib/security/pam_unix.so

Mit Blick auf dieLiesmichfür das ngx http auth pam-Modul sehe ich, dass ich dem Webserver-Benutzer Leseberechtigung für die Datei /etc/shadow erteilen müsste. Dazu habe ich zuerst eine neue Gruppe namens „shadow“ erstellt. Dann habe ich den Webserver-Benutzer (von dem ich annehme, dass es nginx ist) der Gruppe „shadow“ zugewiesen. Dann habe ich die Berechtigungen für die Datei /etc/shadow geändert. Die Befehle, die ich dazu ausgeführt habe, sind unten aufgeführt …

groupadd shadow
usermod -a -G shadow nginx
chown root:shadow /etc/shadow
chmod g+r /etc/shadow

Anschließend habe ich die Berechtigungen für die Datei /etc/shadow mit dem Befehl

ls -l /etc/shadow

und das war die Ausgabe ...

----r-----. 1 root shadow 1390 Aug 30 12:51 /etc/shadow

Ich habe auch ein Passwort für den Nginx-Benutzer festgelegt. Und um es noch einmal zu wiederholen: Wenn ich auf die Site zugreife, für die ich eine Authentifizierung durchführen möchte, werde ich beim Eingeben des Nginx-Benutzernamens und -Passworts einfach erneut aufgefordert, diese einzugeben.

Antwort1

Ich nehme an, Sie haben nginx-module-auth-pam bereits installiert und konfiguriert /etc/pam.d/nginx.

Wenn nicht: Installieren Sie die RPM-Datei, da alles für Sie konfiguriert wird. Mit anderen Worten: Sie müssen die /etc/shadowZugriffseinstellungen nicht manuell anpassen. Tatsächlichdarf nichtOptimierung /etc/shadow, falls Sie pam verwenden. Diese Datei enthält die (gehashten) Passwörter für Ihre Benutzer, daher möchten Sie aus Sicherheitsgründen keinem Prozess oder Programm (außer pam) oder Benutzer (außer root) Zugriff auf diese Datei gewähren.

Falls Sie ein Abonnement haben:

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-auth-pam

Wenn nicht: greifen oder bauen vonhttps://github.com/jfut/nginx-module-auth-pam-rpm

Warum beantworten Sie nicht nur Ihre Frage? Die Beispiele, die Sie angeführt haben, beziehen sich auf Debian-ähnliche Systeme, aber die Konfigurationsmethode ist für Redhat-ähnliche Systeme wie CentOS 7 etwas anders.

Weitere Konfigurationsbeispiele zu diesem Modul finden Sie inGitHub.

Bitte überprüfen Sie auchhttps://nginx-extras.getpagespeed.com/für zusätzliche Konfigurationsbeispiele.

verwandte Informationen