Alle Linux-Benutzer Schreibrechte auf einen Ordner

Schumiel

Lieutenant
Registriert
Jan. 2010
Beiträge
846
Hallo,

und zwar möchte ich allen Web-Benutzern Schreib- und Leserechte auf einen Ordner geben.

Hintergrund ist, dass mehrere Webseiten mit der gleichen php.ini laufen. Nun muss ich aber dem upload_tmp_dir festlegen, damit ich die hochgeladenen Bilder zwischenspeichern kann. Daher bräuchte jeder Nutzer die Rechte für diesen Ordner. Wie mache ich das?
 
Ich hoffe ich liege damit richtig in dem man per FTP den passenden Zugriff gibt wie 755 auf den Ordner. Obwohl 755 hoch gegriffen ist und die Leute Bilder löschen können. Also eine Nummer kleiner.
 
Hi,

was sind "Web Benutzer"? Grundsätzlich kann man es natürlich per "755" oder Ähnlichem machen. Aber was genau du vorhast erschließt sich mir nicht.

Erklär bitte mal, was du unter "Web Benutzer" verstehst.

VG,
Mad
 
Wenn diese Web-Benutzer einfach die Nutzer deiner Webseite sind, so müsste es doch eigentlich reichen, wenn dein Webserver auf den Ordner Schreibzugriff hat, oder? Denn das sind ja dann keine Systembenutzer im eigentlichen Sinne, sondern die der Webseiten. Die müsste doch dann der Webserver verwalten, oder sehe ich das falsch?
 
  • Gefällt mir
Reaktionen: FranzvonAssisi
Im einfachsten Falle werden Nutzer (und somit auch Prozesse, die unter eigenem Nutzer gestartet werden), einer eigenen Gruppe hinzugefügt, dieser Gruppe werden dann volle bzw. Schreibrechte auf den Ordner gegeben (chmod ??7? ).

Bitte auch beachten, was @Grimba schrieb, denn ggf. ist es der Prozess selber (also z.B. der Apache oder die PHP-Instanz), der in den Ordner schreibt, der Nutzer authentifiziert sich lediglich gegenüber der Instanz und braucht noch nicht einmal als realer Benutzer auf dem System zu existieren (owncloud/nextcloud wären da so ein Beispiel).
 
Habe es auf Ordner /tmp gelenkt. Bekomme aber neue Fehlermeldung:

PHP:
[B]PHP Warning: move_uploaded_file(): open_basedir restriction in effect.[/B]
 
Ja, dann hat derjenige, der das PHP-Skript ausführt, keinen Zugriff auf den /tmp Ordner. Und derjenige ist dein Webserver.

@NullPointer hast recht. Mein Fehler.
 
Zuletzt bearbeitet:
Nicht ganz. open_basedir ist eine php.ini-Einstellung, mit der Dateizugriffe durch PHP auf bestimmte Verzeichnisse (und dessen Unterverzeichnisse) eingeschränkt werden können: https://www.php.net/manual/en/ini.core.php#ini.open-basedir

Du müsstest also entweder ein Verzeichnis benutzen, das gemäß open_basedir erlaubt ist, oder (wenn möglich) /tmp zum open_basedir hinzufügen.
 
  • Gefällt mir
Reaktionen: Schumiel
Ich würde das nicht ins /tmp lenken.
Lieber ein eigener mount in dem nur der Webserverprozess zugriff hat
 
  • Gefällt mir
Reaktionen: Madman1209 und I'm unknown
Wobei ich einem Skript vom Webserver auch keine globalen Rechte auf den System-tmp-Ordner geben würde...
 
  • Gefällt mir
Reaktionen: Grimba
Zurück
Oben