Immaginiamo di avere un web server Apache sul nostro sistema e di voler creare l'ambiente per le pagine del sito. Il processo Apache gira come utente nobody
(o "apache", "httpd", "wwwrun"... a seconda di come è configurato) si consideri che per poter funzionare basta che Apache abbia permessi di lettura (ed esecuzione, per le directory) sui file che deve rendere visibili via http.
Affrontiamo qui solo la parte relativa ai permessi sul filesystem, senza preoccuparci della configurazione di Apache vera e propria o di un server ftp per l'aggiornamento dei file.
1 - Aggiungere l'utente web
che verrà usato per l'aggiornamento via FTP delle pagine del sito.
2 - La home directory di web
sarà anche la directory principale del nostro sito web. Ipotizziamo che le pagine del nostro sito siano quelle in /usr/share/doc/HTML/
(o analoga directory con contenuti HTML). Copiare da questa directory a /home/web/
tutte le pagine web per il sito.
3 - Modificare owner e permessi di /home/web
per permettere all'utente web di aggiornare i contenuti del sito via ftp e all'utente nobody di leggere i documenti che costituiscono la directory principale del sito web. Settare i permessi nel modo più razionale e stretto possibile.
Comandi collaterali utili
adduser web
Crea l'utente web
locate HTML
Visualizza (alcuni) file o directory che si chiamano HTML
Comandi necessari
cp -a /usr/doc/HTML/* /home/web
Copia i file HTML
chown -R web:nobody /home/web
Imposta user web e gruppo nobody per tutti i file e le directory contenuti in /home/web.
chmod 750 /home/web
Rende scrivibile dall'utente web (lo era già) e leggibile/eseguibile dal gruppo nobody la directory /home/web (di default le home directory sono leggibili solo dai rispettivi utenti.
Per ottenere gli stessi risultati si possono usare sintassi o logiche leggermente diverse. SI poteva, per esempio, avere un gruppo diverso da nobody e i permessi di lettura estesi a tutti gli utenti (nobody compreso).
In questo caso infatti, non si hanno problemi a rendere leggibili a tutti gli utenti del sistema dei file che di fatto sono resi visibili, via http, a tutti gli utenti del mondo!