2013-01-02 3 views
7

Ich habe ein PHP-Skript Hochladen von Dateien in einen bestimmten Ordner, zZ laden sie als 'psacln' Gruppe, so dass ich die Dateien über FTP löschen können. Das alles lief gut, als PHP als FastCGI ausgeführt wurde. Ich musste PHP so ändern, dass es als Apache-Modul lief, um eine PHP-Erweiterung zu erhalten. Aber jetzt kann ich keine Dateien über PHP-Skript löschen, da die Berechtigung verweigert wird. Ich nehme an, weil jetzt die Gruppe 'Apache' versucht, die Datei zu löschen, die zu 'psacln' gehört. Wie kann ich Apache diese Dateien löschen lassen?Hinzufügen von Apache zu einer Benutzergruppe Datei Upload-Berechtigung

EDIT: ls -alF

drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:05 92/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 06:57 93/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:12 95/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 18:56 96/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Dec 21 08:30 97/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:26 98/ 
drwxr-xr-x 2 fugitiveink psacln 4096 Nov 13 14:28 99/ 
+0

zumindest müssen Sie Rechte zu "Apache" -Gruppe mit root/sudo – Raptor

+0

zuweisen Sie müssen übergeordneten Ordner Apache Benutzergruppe haben, und es muss ausführbar sein. – Sahal

+0

Welches Linux V? – Sahal

Antwort

13

Ich nehme an, dass Sie Shell- und Root-Zugriff auf dieses System haben. Wenn dies der Fall ist, können Sie versuchen, den Apache-Benutzer (normalerweise apache oder www-data) der Datei /etc/group hinzuzufügen.

Der richtige Weg, dies zu tun ist, usermod zu verwenden, obwohl ich in der Regel nur die Datei direkt bearbeiten.

Kurz gesagt, wenn Ihr Apache-Benutzer apache ist, versuchen:

sudo usermod apache --append --groups psacln 

Dies gibt im Grunde den Apache-Benutzer Zugriff auf alle Dateien & Verzeichnisse, die von der psacln Gruppe gehören.

Wenn dies nicht funktioniert, veröffentlichen Sie ein Beispiel Ihres Verzeichnisses mit den Dateiberechtigungen (ls -alF) und wir können davon arbeiten.

EDIT:

Um direkt zu bearbeiten die Gruppen-Datei mit nano (Ersatz mit je nachdem, welcher Editor Sie bequem mit):

sudo nano /etc/groups 

und finden Sie die psacln Gruppe und fügen Sie den apache Benutzer:

psacln:x:130:apache 

Beachten Sie, dass die GID (130) wird zweifellos anders sein.

+0

hat nicht funktioniert, php läuft als' apache: apache 'und erhält' usermod: user psacln existiert nicht ' – keeg

+0

Was bekommen Sie, wenn Sie' sudo groups psacln' ausführen? Sie können auch das '.'-Verzeichnis in Ihre Verzeichnislisten-Bearbeitung aufnehmen. – hafichuk

+0

'id: psacln: Kein solcher Benutzer' – keeg

-4

Legen Sie die Berechtigungen auf dem Upload-Verzeichnis auf 777 (wrx für alle Benutzer). Können Sie noch neue Dateien hochladen? Wenn Sie können, sollten Sie in der Lage sein, Dateien zu löschen.

+0

Sie müssen eine rekursive Berechtigung eingerichtet haben. Der übergeordnete Ordner sollte ebenfalls berechtigt sein. – Sahal

+0

Wenn Sie den Server nicht mit anderen Benutzern teilen, wären 777 sichere Berechtigungen. Da Sie untergeordnete Verzeichnisse haben, müssen sie auch 777 Berechtigungen haben. 'chmod -Ra + w .' aus dem angezeigten Verzeichnis. Sie können es immer zurück ändern, wenn es nicht funktioniert. Wenn Sie der Gruppe psacl Apache hinzufügen, müssen Sie die Gruppenschreibberechtigung setzen, 'chmod -R g + w. ' –

Verwandte Themen