Problemi di autorizzazione FTP e Apache


10

Sto avendo problemi su quale utente dovrebbe possedere la mia directory www - ftp o apache? Se impostato sull'utente ftp, l'utente può aggiungere, rimuovere e modificare facilmente i file, ma le azioni del file system php generano errori di autorizzazione negata (ovviamente perché richiedono che l'utente sia apache). Se tuttavia, la directory www è impostata su apache, ftpuser non sarà in grado di eseguire alcune azioni come la modifica e l'eliminazione dei file. Qualcuno ha mai riscontrato un problema simile? Qual è la soluzione? Grazie

Risposte:


12

Ecco a cosa servono i gruppi.

È possibile aggiungere l' ftputente al apachegruppo e viceversa. O, meglio ancora, potresti aggiungerli a un terzo gruppo creato appositamente per questo scopo.

per esempio

# groupadd mygroup
# useradd -G mygroup ftp
# useradd -G mygroup apache
# chown -R: mygroup / var / www
# chmod -R g + rw / var / www

Tali comandi eseguono le seguenti operazioni:

  1. Crea un nuovo gruppo "mygroup"
  2. Aggiunge l'utente ftp a mygroup
  3. Aggiunge l'utente apache a mygroup
  4. Concede in modo ricorsivo la proprietà del gruppo ai contenuti di / var / www / a mygroup
  5. Concede in modo ricorsivo permessi di lettura e scrittura di gruppo ai contenuti di / var / www /

Devi solo assicurarti che i file aggiunti in futuro appartengano al gruppo 'mygroup' e abbiano le autorizzazioni appropriate sia per apache che per ftp per leggerli / scriverli.


3
La combinazione di " find /var/www -type d -print0 | xargs -0 chmod g+s /var/www" con un umask di 002 assicurerà che i nuovi file e directory in / var / www ereditino il gruppo appropriato e le autorizzazioni per il gruppo per avere accesso r / w. Molte distribuzioni Linux ora sono impostate su un umask di 002 (le stesse predefinite per creare un nuovo gruppo per ogni nuovo utente)
freiheit

Questa risposta funziona perfettamente! Ma sto var/wwwriscontrando un problema in cui l'utente può ancora visualizzare tutte le altre directory al di fuori di c'è un metodo per limitare questo?
massimo

3
Le righe 2 e 3 non funzioneranno se gli utenti esistono già (su CentOS 7). In questo caso usare usermodad es.usermod -G mygroup ftp
nick

Semplice, autoesplicativo, comprensibile! Perfetto! Grazie, @hobodave!
GTodorov,

4

La maggior parte dei tuoi contenuti dovrebbe essere di proprietà di un utente diverso da apache. Supponendo che usi FTP per aggiornare i tuoi contenuti, puoi impostare tutti i file di proprietà di ftp: apache. Suggerirei di usare SCP per SFTP invece di ftp. I file devono avere autorizzazioni 644 o 640 e autorizzazioni directory 755 o 750.

Per file e directory l'applicazione deve scrivere per aggiungere l'accesso in scrittura al gruppo.


0

Ho avuto un problema simile con una pagina php costruita per copiare una cartella sul server con un nome diverso. L'ho risolto disattivando la modalità sicura php.


2
La modalità sicura PHP è lì per un motivo. Disattivarlo non è affatto una buona idea.
user9517
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.