2013-01-02 18 views
7

Ho uno script php che carica i file in una determinata cartella, attualmente stanno caricando come un gruppo 'psacln', in modo da poter eliminare i file tramite FTP. Funzionava tutto bene quando PHP era in esecuzione come FastCGI, dovevo cambiare PHP per funzionare come Apache Module per far funzionare un'estensione php. Ma ora non posso cancellare file tramite script PHP perché il permesso è negato. Presumo perché ora il gruppo 'Apache' sta cercando di eliminare il file che appartiene a 'psacln'. Come posso consentire ad Apache di cancellare quei file?Aggiunta di apache a un file di gruppo autorizzazione di caricamento del file

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

almeno devi concedere i diritti al gruppo "Apache" con root/sudo – Raptor

+0

Devi avere una cartella padre per avere un gruppo di utenti apache e deve essere eseguibile. – Sahal

+0

Quale linux V? – Sahal

risposta

13

Suppongo che tu abbia accesso a shell e root a questo sistema. In tal caso, puoi provare ad aggiungere l'utente apache (in genere apache o www-data) al file /etc/group.

Il modo corretto per eseguire questa operazione è utilizzare usermod, anche se in genere si modifica il file direttamente.

In breve, se l'utente apache è apache, provare:

sudo usermod apache --append --groups psacln 

Questo dà praticamente all'utente l'accesso a qualsiasi file apache & directory che sono di proprietà del gruppo psacln.

Se questo non funziona, inserisci un esempio della tua directory con i permessi del file (ls -alF) e possiamo lavorare da quello.

EDIT:

Per modificare direttamente i gruppi di file usando nano (sostituto con qualsiasi editor di sei a tuo agio con):

sudo nano /etc/groups 

e trovare il gruppo psacln e aggiungere l'utente apache:

psacln:x:130:apache 

Si noti che il gid (130) sarà indubbiamente diverso.

+0

non ha funzionato, php è in esecuzione come' apache: apache' come getermod: utente psacln non esiste ' – keeg

+0

Cosa ottieni quando esegui' sudo groups psacln'? Puoi anche includere la directory '.' nel tuo elenco di directory edit. – hafichuk

+0

'id: psacln: nessun utente' – keeg

-4

Impostare le autorizzazioni sulla directory di upload a 777 (WRX per tutti gli utenti). Puoi ancora caricare nuovi file? Se puoi, dovresti essere in grado di cancellare i file.

+0

È necessario impostare l'autorizzazione ricorsiva. Anche la cartella principale dovrebbe avere il permesso. – Sahal

+0

Se non si condivide il server con altri utenti, 777 sarebbe sicuro. Dal momento che hai le directory figlio, dovranno avere anche il permesso 777. 'chmod -R a + w .' dalla directory mostrata. Puoi sempre cambiarlo se non funziona. Se aggiungi apache al gruppo psacln dovrai impostare il permesso di scrittura in gruppo, 'chmod -R g + w .' –

Problemi correlati