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.