- non root
- non root
- SuEXEC
- Dipende. 644 per i file e 755 per le cartelle sono valori predefiniti sicuri.
Non cambiare la proprietà di nulla in www-data a meno che tu non voglia che php sia in grado di modificare il contenuto di quel file/cartella
Indipendentemente da qualsiasi altra cosa tu faccia:le cartelle necessitano di permessi di lettura ed esecuzione affinché l'utente possa trovare i file; i file richiedono autorizzazioni di lettura affinché l'utente possa leggerli. Se ricevi errori di autorizzazione quando modifichi le cose, sei riuscito a rimuovere queste autorizzazioni fondamentali.
Se non stai scrivendo alcun file tramite la tua applicazione php, puoi lasciare i file di tua proprietà:tu. In questa circostanza si applica il permesso mondiale (xx4/5).
Se lasci i file come di tua proprietà:tu con permessi file di 644 (file) ciò significherebbe che solo puoi modificare i file del sito web - www-data non sei tu - quindi non può modificare i file.
Se vuoi limitare l'accesso ad apache + te e bloccare tutti gli altri accessi chown -R you:www-data *
. Con i permessi dei file di 640 e i permessi delle cartelle di 750 puoi modificare, www-data può leggere - perché poi apache legge il permesso di gruppo (x4/5x).
Limita al minimo i percorsi in cui consenti ad apache/php di scrivere - se c'è una directory tmp in cui l'applicazione deve scrivere - consenti all'applicazione di scrivere solo in quella cartella - e per qualsiasi posizione scrivibile, se possibile, assicurati che sia all'esterno la radice del documento o adottare misure per garantire che questo percorso scrivibile non sia accessibile dal Web.
Nota che "tu" non dovrebbe non essere radice. Consentire l'accesso diretto a ssh come root è un indicatore di altre falle nella sicurezza (come not non consentire l'accesso tramite password), ma questo è un intero gruppo di domande a sé stante.
Quindi, se ho capito bene le cose, se apache è in esecuzione come www-data e voglio che apache sia in grado di leggere una directory, il bit x deve essere impostato per il gruppo world (other) (o+x), e anche questo deve assediato su tutte le directory principali lungo tutta la catena (www, var). E se voglio che apache sia in grado di leggere da un file, è necessario impostare il bit o+r.
Questo non è vero, non devi impostare rwx
per altro'. Dovresti cambiare il proprietario e/o il gruppo della particolare cartella/file che stai tentando di proteggere. Ad esempio:
chown -R cwd:www-data /var/www/cwd.com
chmod 750 /var/www/cwd.com
Ora solo i membri del gruppo www-data
può leggere /var/www/cwd.com
. E solo tu (cwd) puoi scriverci. Se vuoi consentire alle tue applicazioni (tramite Apache) di scrivere/modificare i file anche in quella directory, modificala a 770.
Penso che questo copra tutti i tuoi problemi, non vedo alcun motivo per cambiare l'utente con cui è in esecuzione apache.