Red Hat Enterprise Linux usa la struttura del file system Filesystem Hierarchy Standard (FHS), che definisce i nomi, la posizione e i permessi per molti file e directory.
L'FHS corrente è il documento di riferimento per qualsiasi filesystem conforme all'FHS, ma lo standard lascia molte zone indefinite ed estensibili. In questa sezione viene fornita una panoramica sullo standard e una descrizione delle parti del filsystem non coperte dallo standard.
La conformità con lo standard è molto importante, ma i due fattori fondamentali sono la compatibilità con altri sistemi conformi e la capacità di montare una partizione /usr/ come partizione in sola lettura perché contiene file eseguibili comuni e non va modificata dagli utenti. Poiché /usr/ è in sola lettura, può essere montata dal CD-ROM o da un'altra macchina tramite NFS in sola lettura.
Le directory e i file qui menzionati, rappresentano un piccolo sottoinsieme di quelli specificati dal documento FHS. Per informazioni più dettagliate, consultate l'ultimo documento dell'FHS.
Lo standard completo è disponibile online su http://www.pathname.com/fhs/.
La directory /boot/ contiene file statici necessari per l'avvio del sistema, come ad esempio il kernel di Linux. Questi file sono essenziali per un avvio corretto del sistema.
![]() | Avvertenza |
---|---|
Non eliminate la directory /boot/, altrimenti non sarà più possibile avviare il sistema. |
La directory /dev/ contiene voci del filesystem che rappresentano dispositivi collegati al sistema. Questi file sono essenziali perché il sistema funzioni correttamente.
La directory /etc/ è riservata ai file di configurazione locali presenti sul vostro computer. Nessun file binario deve essere inserito in /etc/. Tutti i file binari che sono stati precedentemente inseriti in /etc/ devono essere trasferiti in /sbin/ oppure in /bin/.
Le directory X11/ e skel/ sono sottodirectory di /etc/:
/etc |- X11/ |- skel/ |
La directory /etc/X11/ è per i file di configurazione del sistema X Window, come ad esempio XF86Config. La directory /etc/skel/ è per i file dell'utente "skeleton", cioè i file che servono per popolare una directory home quando viene creato un nuovo utente.
La directory /lib/ dovrebbe contenere solo le librerie necessarie all'esecuzione dei file binari presenti in /bin/ e /sbin/. Queste immagini di librerie condivise sono particolarmente importanti per l'avvio del sistema e l'esecuzione di comandi all'interno del filesystem di root.
La directory /mnt/ è riservata ai filesystem montati temporaneamente, come i CD-ROM e i dischetti floppy da 3.5.
La directory /opt/ fornisce un'area per la memorizzazione di pacchetti applicativi statici di grandi dimensioni.
Un pacchetto che posiziona i file nella directory /opt/, crea una directory che presenta lo stesso nome del pacchetto. Questa directory, in ritorno, conserva i file che altrimenti verrebbero sparsi attraverso il file system, dando all'amministratore del sistema un modo semplice per determinare il ruolo di ogni file all'interno di un pacchetto particolare.
Per esempio, se sample è il nome di un pacchetto software particolare all'interno di /opt/, allora tutti i suoi file dovrebbero essere inseriti in /opt/sample/. Per esempio /opt/sample/bin/ per i binari e /opt/sample/man/ per le pagine del manuale.
Anche i pacchetti che comprendono più sotto-pacchetti, ognuno con un compito particolare, vanno inseriti in /opt/ e avranno così un modo standardizzato di organizzarsi. Per esempio, il pacchetto sample può avere diversi tool appartenenti ognuno alla propria sottodirectory come /opt/sample/tool1/ e /opt/sample/tool2/; ognuno di questi può avere la propria directory bin/, man/ e altre directory simili.
La directory /proc/ contiene i file speciali che estraggono o inviano informazioni al kernel.
Data la svariata quantità di dati disponibili in /proc/ e i vari modi in cui questa directory può essere usata per comunicare con il kernel, è stato dedicato un intero capitolo all'argomento. Per maggiori informazioni, consultate il Capitolo 5.
La directory /sbin/ contiene gli eseguibili utilizzati unicamente dall'utente root. Gli eseguibili in /sbin/ servono solo al momento dell'avvio e per eseguire le operazioni di recupero del sistema.L'FHS dice:
/sbin contiene normalmente i binari essenziali per l'avvio, il ripristino, il recupero e/o la riparazione del sistema oltre a quelli presenti in /bin. Qualunque altro programma eseguito dopo il montaggio della directory /usr/ (quando non si sono verificati problemi) deve essere collocato in /usr/sbin. I Programmi di gestione del sistema installati in modo locale devono essere inseriti in /usr/local/sbin.
In /sbin/ trovate, come minimo, i seguenti programmi:
arp, clock, halt, init, fsck.*, grub ifconfig, lilo, mingetty, mkfs.*, mkswap, reboot, route, shutdown, swapoff, swapon |
La directory /usr/ contiene tutti i file condivisi attraverso macchine multiple. La directory /usr/ è solitamente sulla propria partizione e dovrebbe essere montata come sola lettura. Quelle riportate di seguito sono le sottodirectory che dovrebbero essere contenute in /usr/:
/usr |- bin/ |- dict/ |- doc/ |- etc/ |- games/ |- include/ |- kerberos/ |- lib/ |- libexec/ |- local/ |- sbin/ |- share/ |- src/ |- tmp -> ../var/tmp/ |- X11R6/ |
Sotto la directory /usr/, la directory bin/ contiene gli eseguibili, dict contiene le pagine di documentazione non conformi a FHS, etc contiene i file di configurazione del sistema, games quelli per i giochi, include/ contiene i file header di C, kerberos/ contiene i binari e molte altre cose per Kerberos e lib/ contiene file oggetti e librerie che non sono stati concepiti per essere usati direttamente dagli utenti o dagli script della shell. La directory libexec/ contiene piccoli programmi d'aiuto richiamati da altri programmi, sbin/ è per i binari di amministrazione del sistema (quelli che non appartengono alla directory /sbin/), share/ contiene i file non specifici per l'architettura, src/ contiene i codici sorgente e X11R6/ serve per il sistema X Window (XFree86/ in Red Hat Enterprise Linux).
La gerarchia /usr/local viene utilizzata dall'aministratore di sistema quando installa il software a livello locale. Prima che il software sia aggiornato deve essere effettuato un back up di questa directory. Può essere usato per i programmi e i dati che sono condivisibili con altri gruppi di host, ma che non si trovano in /usr.
La directory /usr/local/ ha una struttura simile alla directory /usr/. Contiene le sottodirectory seguenti, che hanno uno scopo simile a quelle contenute nella directory /usr/:
/usr/local |- bin/ |- doc/ |- etc/ |- games/ |- include/ |- lib/ |- libexec/ |- sbin/ |- share/ |- src/ |
In Red Hat Enterprise Linux, l'uso della directory /usr/local/ è leggermente diverso da quello specificato dall'FHS. L'FHS dice che /usr/local/ si dovrebbe trovare nel posto in cui è memorizato il software che non deve subire aggiornamenti del sistema. Poiché gli aggiornamenti del software vengono effettuati in modo sicuro con Red Hat Package Manager (RPM), non dovete proteggere i file mettendoli in /usr/local/. Invece, vi raccomandiamo di usare /usr/local/ per il software locale della vostra macchina.
Per esempio, se la directory /usr/ viene montata come sola condivisione NFS da un host remoto, è ancora possibile installare un pacchetto o un programma sotto la directory /usr/local/.
Poiché FHS richiede che siate in grado di montare /usr/ in sola lettura, tutti i programmi che scrivono file di log o necessitano delle directory spool/ o lock/ dovrebbero scriverli nella directory /var/. L'FHS in riferimento a /var/ dice che è per:
...file di dati variabili. Questa directory contiene le directory e i file di spool, dati di loggin e di amministrazione, file temporanei e transitori.
Le seguenti directory si trovano all'interno della directory /var/:
/var |- account/ |- arpwatch/ |- cache/ |- crash/ |- db/ |- empty/ |- ftp/ |- gdm/ |- kerberos/ |- lib/ |- local/ |- lock/ |- log/ |- mail -> spool/mail/ |- mailman/ |- named/ |- nis/ |- opt/ |- preserve/ |- run/ +- spool/ |- at/ |- clientmqueue/ |- cron/ |- cups/ |- lpd/ |- mail/ |- mqueue/ |- news/ |- postfix/ |- repackage/ |- rwho/ |- samba/ |- squid/ |- squirrelmail/ |- up2date/ |- uucppublic/ |- vbox/ |- tmp/ |- tux/ |- www/ |- yp/ |
I file di log del sistema, come messages e lastlog si trovano in /var/log/. La directory /var/lib/rpm/ contiene anche i database del sistema RPM. I file lock si trovano in /var/lock/, solitamente in directory particolari per il programma che usa il file. La directory /var/spool/ ha delle sottodirectory per vari sistemi che devono memorizzare file di dati.