PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zugriff auf Dateien oberhalb vom Document_root


martinstahl
22.03.2004, 22:46:31
Hallo zusammen,

ich bin ziemlich verzweifelt. Seit einigen Stunden suche ich hier im Forum und anderswo nach einer Lösung, wie man auf eine Datei oberhalb des Document_Root-Verzeichnisses zugreifen kann (lesend und schreibend).

Der Code sieht in etwa so aus:

$f='/var/qmail/mailnames/domain.de/hugouser/.qmail';
$asd=file($f);
echo $asd[0] . '<br>';
echo $asd[1] . '<br>';
echo $asd[2] . '<br>';
usw.

So langsam beschleicht mich das Gefühl, dass das gar nicht geht.

Ist das echt so?

Was ich vor habe:

Die User sollen E-Mail-Weiterleitungen ihrer eigenen E-Mail-Adressen selbst ändern können. Dazu hätte ich jetzt einfach die .qmail-Datei eingelesen, in einem Webformular abändern lassen und wieder abgespeichert.

Die .qmail sitzt aber im Verzeichnis /var/qmail/mailnames/domain.de/hugouser/.qmail

Document_Root ist /home/httpd/vhosts/domain.de/httpdocs

Die Rechte der Datei habe ich auf 777 gesetzt und PHP läuft nicht im Safemode.

Auf dem Server läuft, wie gesagt, qmail. Ich habe alle Rechte auf dem Server (Root-Server).

Gibt es irgend eine Möglichkeit, diese Weiterleitungsdateien per Webinterface zu modifizieren?

Vielen Dank schonmal für Eure Hilfe!

Martin

meikel
23.03.2004, 07:12:38
QMail
Original geschrieben von martinstahl
Gibt es irgend eine Möglichkeit, diese Weiterleitungsdateien per Webinterface zu modifizieren?
Nicht direkt. Der Apache ist Popeluser und darf sich nicht an den QMail Files vergreifen.

Es geht nur so, daß Du einen SUDO User einrichtest, der ohne Passwort ein Shellscript mit Rootrechten aufrufen darf, das dann die Veränderungen an den QMail Files vornimmt. Editiere /etc/sudoers nicht direkt sondern mit visudo. Und kontrolliere das hinterher. sudo reagiert empfindlich auf die Syntax.

Falls Du PHP 4.3.x hast, hast Du bessere Karten, weil es da ein CLI gibt, mit dem Du bequem Shellscripte auf PHP Basis basteln kannst.

Beachte bei der Erstellung von QMailfiles immer die Rechte. Sonst hat QMail dann Probleme...

martinstahl
23.03.2004, 11:49:37
Hallo meikel,

vielen Dank für die schnelle Antwort!

Habe ich das richtig verstanden: Sudo benötige ich in jedem Fall, auch mit PHP 4.3.3?

Mit Sudo habe ich mich jetzt etwas auseinandergesetzt. Aber wie muss der User heissen, der die root-Rechte bekommt?

Gibt es einen Standard-PHP-User?

Und wie ist das mit den Rechten der .qmail-Datei, wenn ich diese Datei als Sudo-User bearbeite? Ändert sich dadurch der Eigentümer? .qmail gehört normalerweise dem User popuser, was ja wahrscheinlich so bleiben sollte.

Danke nochmal!

Martin

meikel
23.03.2004, 17:15:17
Original geschrieben von martinstahl

>Habe ich das richtig verstanden: Sudo benötige ich in jedem Fall,

Ja.

>auch mit PHP 4.3.3?

Das hat erst mal nix mit PHP zu tun. PHP hat netterweise ab 4.3.x ein sogenanntes command line interface, das man auch als Shell benutzen kann.
#!/usr/bin/php -q
<?php
# Script
?>

>Mit Sudo habe ich mich jetzt etwas auseinandergesetzt.
>Aber wie muss der User heissen, der die root-Rechte bekommt?

Da mußt Du in die httpd.conf gucken:
wenn mod_php heißt der Apache User meist wwwrun oder www
wenn CGI + SuPHP, dann nimmst Du die Userangaben aus dem jeweiligen Virtualhost.

>Und wie ist das mit den Rechten der .qmail-Datei, wenn ich diese
>Datei als Sudo-User bearbeite? Ändert sich dadurch der
>Eigentümer? .qmail gehört normalerweise dem User popuser, was ja
>wahrscheinlich so bleiben sollte.

Das mußt Du kontrollieren. Wenn Du ein neues File erstellst, gehört es root:root (muß mit chown geändert werden), wenn Du ein File bearbeitest, bleibt der Eigentümer.