PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Berechtigungsfrage



FRAD
07.04.05, 15:22
Hi,

habe hier ein Uploadscript (PHP) welches ein Ordner ausliest, derzeit ist es so:

/srv/htdocs/www/testdomain.de/uploadscript/uploads

Aus dem uploads Ordner werden die Dateien ausgelesen.

Ich möchte nun nur den Uploadordner verschieben nach /home/user01/uploads

Welche Rechte muss ich dem user "USER01" vergeben, damit er in den Ordner Dateien upload kann?

Ciao

nocheiniggy
07.04.05, 16:20
Wer übernimmt den Upload? Der User, oder der PHP-Server?
Wie erfolgt der Upload?

FRAD
07.04.05, 16:41
Hi,

also das Script sieht so aus, der User hat ein Webfrontend PHP, dort kann er eine Datei auswählen und uploaden. Das ganze macht also der Webserver, ich möchte jedoch das Uploadverzeichnis in das homedirectory legen.

Nur welche Rechte muss ich vergeben?

Neue Gruppen machen, webuser und user01 in eine Gruppe, dieser Gruppe dann Rechte auf das home Verzeichnis geben?

Ciao

mamue
07.04.05, 16:45
Naja, ein PHP script wird wohl mein vom Webserver ausgeführt - keine Ahnung welcher das FRAD ist. Also nutzt es wenig, dem user01 bestimmte Rechte zu geben, sondern es muß vielmehr der Benuter, unter dessen Kennung der httpd läuft, oder dessen Gruppe die Rechte +w und besser auch +x auf dem betreffenden Verzeichniss haben. Bei mir wäre das der user "wwwrun". Man könnte vielleicht:
chgrp "gruppe unter dem der httpd läuft" /home/user01/uploads
chmod g=wx /home/user01/uploads
Wenn das Dateisystem ACL unterstützt könnte man auch etwas feiner mit setfacl arbeiten und bräuchte nicht die Gruppe des Ordners zu ändern.

HTH,
mamue

nocheiniggy
07.04.05, 17:21
Was du nicht tun solltest, ist den User in die Gruppe einräumen, in der der httpd sitzt.
Also User01 der Gruppe wwwrun zuzuordnen.
Aber dem Ordner Upload Schreibrechte für wwwrun zu gehen, müsste gehen.
Wenn es keine heiklen Daten sind, könntest du auch jedem ein Schreibrecht auf den Upload-Ordner geben(aber das willst du sicher nicht? Würd ich auch nicht wollen)

FRAD
08.04.05, 09:14
Hi,

habe ich das richtig verstanden, wenn ich dem wwwrun das Recht gebe, auf den ordner dann geht es, aber wie sieht es da aus, wenn der user01 auch noch schreibrechte benötigt?

Kann ja keinen 2 Usern das Schreibrecht auf ein Ordner geben. Müsste dann doch eine neue Gruppe erstellen!?

Ciao

nocheiniggy
08.04.05, 21:03
Ich würds vermutlich folgendermaßen lösen: Schreib- und Leserechte für wwwrun erteilen damit der Webserver vollen Zugriff hat.
Anschließend eine MySQL-Datenbank mit den Benutzern die sich über die PHP-Seite an- und abmelden.
In dieser Datenbank kannst du dann festlegen, ob dieser Benutzer nun auch schreiben darf, oder nur lesen.
Am Besten in einer Tabelle Users mit einer Spalte Rechte.
Rechte könnten nun in Form von "w", "s", "n" stehen, wobei "n" für weder lesen, noch schreiben steht.
Willst du nun mit User01, der ja den Eintrag "w" hat auf Upload schreiben, wird erst die Abfrage gemacht, anschließend ein "ja" ausgegeben.
Bei User02 wird ein "nein" ausgegeben.
Usw.
Der User müsste also nur innerhalb deiner Datenbank existieren und du brauchst ihn nicht auf dem System anlegen.

Sollte es aber eine Möglichkeit mit ACLs geben was ich sehr stark vermute, wäre das wahrscheinlich die Variante mit mehr Sicherheit(weil du diverse Programmierfehler ausschließen kannst)

Aber im Augenblick möcht ich von PHP nichts mehr hören.
Die letzten paar Monate haben mir gereicht.
Such mal bei Google ob du da irgendwas von Rechtevergabe mit ACLs in Zusammenhang mit PHP findest.

mamue
09.04.05, 11:02
Hi,

habe ich das richtig verstanden, wenn ich dem wwwrun das Recht gebe, auf den ordner dann geht es, aber wie sieht es da aus, wenn der user01 auch noch schreibrechte benötigt?

Kann ja keinen 2 Usern das Schreibrecht auf ein Ordner geben. Müsste dann doch eine neue Gruppe erstellen!?

Ciao
Entweder der Gruppe, unter der der Webserver läuft Schreibrechte geben und dem user1, also
rwxrwx--- user1.webservergruppe datenverzeichniss
oder ACL verwenden, sofern verfügbar,
oder tatsächlich eine weitere Gruppe erstellen, die schreiben darf auf das Verzeichniss mit user1 und wwwrun als Mitglieder.

HTH,
mamue