Frage

Ich habe ein cgi-bin-Anwendung in C geschrieben, dass läuft in einem Browser und dem Benutzer ermöglicht, eine interaktive Shell und Ansehen und Bearbeiten von Dateien auf einem Linux-Rechner zu öffnen. Es läuft als Standard Apache "www-data" user. Ich habe gerade einen Login-Bildschirm, um es in dem der Benutzer in ihrem Namen und Passwort (in der Form) hinzugefügt, aber ich kann den Benutzer mit nicht authentifizieren getspnam , da diese Funktion funktioniert nur, wenn Sie als root ausgeführt wird.

Welche Möglichkeiten habe ich, die Anmeldeinformationen eines Benutzers zu überprüfen, wenn nicht als root ausgeführt wird?

PS:. In meiner interaktiv Shell kann ich „su root“ eingeben und dann in meinem Passwort eingeben und es tut, um root feinen elevate so kann es natürlich interaktiv durchgeführt werden

War es hilfreich?

Lösung

Im Hinblick auf Ihre PS: Nun, wenn Sie tun, um ein su root Sie sind Umschalten auf den Root-Benutzer. Also ja, natürlich Wurzel der Schattendatei lesen können, Sie alle bereit gesagt.

Im Hinblick auf Ihr Problem: Sie können nicht haben Sie Ihre Apache-Prozesse vorübergehend elevate zu root (von setuid oder ähnlichen Aufruf), um die Authentifizierung durchzuführen?

Viel Glück!

Andere Tipps

Ich glaube, Sie wollen einen Blick nehmen unter Pluggable Authentication Modules . AFAIK, PAM Griffe alle unordentliches Material für Sie und Sie müssen nur ein paar Funktionsaufrufe tun, um die Benutzer zu authentifizieren auf, was auch immer das Backend zu authentifizieren Benutzer auf dem Linux-Rechner ist (sei es Shadow-Passwörter, NIS-, LDAP-, was auch immer)

Hier ist ein kurzer Führer um mit ihnen Ihren C-Code zu integrieren.

Wie bereits angedeutet, ich glaube, PAM ist die moderne Art und Weise, dies zu tun. Aber wenn Sie alte Schule gehen wollen, müssen Sie ein setuid-root-Programm erstellen (kein Skript) Ihre Authentifizierung zu tun.

Es gibt viele Fallstricke mit setuid-root-Programmen, weshalb PAM wahrscheinlich besser ist.

Hier ist ein Link einige gute Papiere auf sicher zu schreiben setuid-root-Programme .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top