PHP, Apache und benutzerspezifische Konfigurationsdateien in $HOME

23/08/2007 - 01:17 von Martin Gäckler | Report spam
Hallo,

ich möchte gerne für mein Netzwerk eine Webanwendung schreiben, mit dem
der BenutzerInnen Konfigurationsdateien wie z.B. .forward oder .procmail
in seinem ihrem Heimatverzeichnis bearbeiten kann.

Ziel ist, daß der/die Benutzer/in sich mit dem Linuxkennwort anmeldet
und das Skript dann mit dessen Rechten làuft, so daß die persönlichen
Konfiguationsdateien geàndert werden können.

Die Möglichkeiten von Apache, die ich gefunden habe, laufen darauf
hinaus, daß Apache eine eigene Benutzerdatenbank mit eigenen Kennwörtern
pflegt. Das ist mir aber zu wenig. Ein CGI Programm, das in C++
geschrieben wurde, könnte das zwar leicht erledigen, ich würde aber ein
Skript in PHP bevorzugen.

Genial wàre es, wenn sowas wie Windows Integrated Autentication möglich
wàre. Das ist aber nicht Pflicht.

Hat jemand eine Idee?

Hier nun ein paar technische Daten meines Netzwerkes:

Server: OpenSuse 10.1 mit Apache 2.x und Samba als Domaincontroller
Clients: Windosen und Macs mit Seamonkey, die Dosen verwenden den
Domaincontroller zur Benutzerautentifizierung.

mfg Martin

Firma/Company: CRESD GmbH
WWW: http://www.cresd.de
PGP-Key: http://www.cresd.de/edv/pgpkey.txt
Open BC (Einladung) http://www.openbc.com/go/invita/4561755
 

Lesen sie die antworten

#1 Alexander Bartolich
23/08/2007 - 18:35 | Warnen spam
Martin Gàckler schrieb:
[...]
ich möchte gerne für mein Netzwerk eine Webanwendung schreiben, mit dem
der BenutzerInnen Konfigurationsdateien wie z.B. .forward oder .procmail
in seinem ihrem Heimatverzeichnis bearbeiten kann.



Über $$HOME/.forward und $HOME/.procmailrc kann man Programme im Kontext
des betreffenden Benutzers ausführen lassen. Schreibrechte in diesen
Dateien bedeuten total ownage.

Ziel ist, daß der/die Benutzer/in sich mit dem Linuxkennwort anmeldet
und das Skript dann mit dessen Rechten làuft, so daß die persönlichen
Konfiguationsdateien geàndert werden können.



Die Übertragung des Passworts über eine ungesicherte HTTP-Verbindung
ist àquivalent zur Verwendung von telnet (statt ssh). Du brauchst
unbedingt SSL.

http://httpd.apache.org/docs/2.0/ssl/

Die Möglichkeiten von Apache, die ich gefunden habe, laufen darauf
hinaus, daß Apache eine eigene Benutzerdatenbank mit eigenen Kennwörtern
pflegt. Das ist mir aber zu wenig. Ein CGI Programm, das in C++
geschrieben wurde, könnte das zwar leicht erledigen, ich würde aber ein
Skript in PHP bevorzugen.



http://pam.sourceforge.net/mod_auth_pam/

Genial wàre es, wenn sowas wie Windows Integrated Autentication möglich
wàre. Das ist aber nicht Pflicht.



Das ist vermutlich das zehntausendste Synonym für NTLM.

Über mod_auth_pam greift Apache auf den Authentisierungsmechanismus
des Betriebssystems zurück. Wenn du dort einen Windows-Domain-Login
(z.B. über winbind) konfiguriert hast, hat den dann auch Apache.

Alternative kannst du mit mod_auth_ntlm Apache auch direkt Kontakt
zum Domain-Controller aufnehmen lassen.

http://sourceforge.net/projects/modntlm/

[...]
Hier nun ein paar technische Daten meines Netzwerkes:

Server: OpenSuse 10.1 mit Apache 2.x und Samba als Domaincontroller
Clients: Windosen und Macs mit Seamonkey, die Dosen verwenden den
Domaincontroller zur Benutzerautentifizierung.



Über den wichtigsten Teil deines Projekts hast du dir anscheinend
noch gar keine Gedanken gemacht. Apache làuft üblicherweise als
eigener Benutzer mit geringen Rechten. Wie willst du Schreibrechte
auf Dateien von Benutzern bekommen?

Vorstellbar ist sudo, d.h. dein PHP-Skript führt irgendwann ein
Shell-Skript über sudo aus.

Oder du führst das PHP-Skript mit suEXEC als der betreffende
Benutzer aus.

news.albasani.net

Ähnliche fragen