Filesystem: 9 Marzo 2004
Tratto da:
Linux users group Cremona
Primo corso su GNU/Linux
Il Filesystem
Relatori:
Giorgio “ Bodo” Bodini
Roberto “Oliverino” Azzini
1
il filesystem
filesystem: una parola, due concetti
organizzazione dei dati su supporti fisici (hard disk – cdrom – ecc...)
organizzazione di file e directory all' interno del sistema operativo
2
Cenni sulle memorie di massa
Geometria di un HD
3
alcuni tipi di filesystem
Cod. Nome Sistema Dim. Max filesystem Dim.Max file Journaled ACL
minix minix Gnu/Linux 64 MB 64 MB
ext extended filesystem Gnu/Linux 2 GB 2 GB
ext2 second extended filesystem Gnu/Linux 4 TB 2GB v
ext3 extended filesystem 3 Gnu/Linux v v
reiserfs reiser filesystem Gnu/Linux 16 TB 1024 PB v v
xfs x filesystem SGI Silicon Grafics 18000 PB 9000 PB v v
jfs journaled filesystem Ibm 32 PB 4 PB v v
nfs network filesystem Reti
swap swap filesystem Gnu/Linux
iso9660 cd-rom filesystem cd-rom
udf universal disk format cd-rom RW
smb server message block reti miste Linux/win
fat file allocation table MS-DOS 16 MB
fat16 file allocation table 16bit MS-DOS/Win3.1 2 GB
vfat virtual file allocation table Win 95
fat32 file allocation table 32bit Win 95 SR2/98/Me 2 TB
ntfs new tecnology filesystem WinNT/2K/XP 2 TB v
hfs hierarchical filesystem Mac v
hpfs high performance filesystem Ibm OS/2
ufs/ffs unix filesystem/fast filesystem Unix/*BSD v v
ofs/ffs old filesystem/fast filesystem Amiga OS
4
Albero delle Directory
Mandrake 9.2 Slackware 9.1
5
filesystem ospiti
6
Albero delle Directory
/
Root - Radice
No file !!!
Solo directory specificate dal FHS
7
Albero delle Directory
/bin
binares - binari
Solo comandi necessari per l'uso del sistema
Accessibili a tutti gli utenti
8
Albero delle Directory
/boot
boot - avvio
avvio del sistema
9
Albero delle Directory
/dev
device - dispositivi
Un file per ogni dispositivo fisico dell'elaboratore
Programma MAKEDEV: crea file di dispositivo aggiuntivi
10
Albero delle Directory
/etc
configurazione
solo dati di configurazione della macchina locale
11
Albero delle Directory
/home
home - personale
contiene tutti i dati personali degli utenti
12
Albero delle Directory
/initrd
usata da Mandrake solo all'avvio
13
Albero delle Directory
/lib
librerie
file di libreria
moduli del kernel
14
Albero delle Directory
/mnt
mount - innesto
punti di innesto per altri filesystem
15
Albero delle Directory
/opt
applicativi opzionali
16
Albero delle Directory
/proc
processi
17
Albero delle Directory
/root
home root
directory home dell' utente root
18
Albero delle Directory
/sbin
system binaries – binari di sistema
Solo comandi necessari per l'uso del sistema
Accessibili solo all' utente root
19
Albero delle Directory
/tmp
temporary – file temporanei
20
Albero delle Directory
/usr
gerarchia secondaria
21
Albero delle Directory
/usr/local
gerarchia applicazioni locali
22
Albero delle Directory
/var
file di dati variabili
23
Comandi per la gestione dei file e delle directory
Apertura di un terminale
24
Comandi per la gestione dei file e delle directory
$ pwd
print working directory
stampa a video il nome della directory di lavoro corrente
opzioni funzione
--help Mostra nello standard output un messaggio d'aiuto ed esce .
25
Comandi per la gestione dei file e delle directory
$ cd
change directory
cambia la directory di lavoro corrente
nota: $cd è un comando incorporato nella shell
opzioni funzione
.. passa alla directory superiore
- ritorno all' ultima directory visitata
senza parametri torna alla directory home
26
Comandi per la gestione dei file e delle directory
$ ls
list
permette di visualizzare i contenuti delle directory
ls [opzioni] [file...]
opzioni funzione
-a elnca tutti i file il cui nome inizia per “.” (anche detti “dot” file o file nascosti).
Scrive (in un'unica colonna) i permessi del file, il numero di collegamenti (link) verso di esso, il nome del
-l
proprietario e del gruppo, la dimensione (in byte), l'orario ed il nome.
-R Elenca ricorsivamente tutte le sottodirectory incontrate.
-r Inverte la direzione dell'ordinamento.
-t Ordina secondo l'orario mostrato.
-u Usa l'orario di ultimo accesso per ordinare (con -t) o elencare (con -l), invece che l'orario di modifica.
27
Comandi per la gestione dei file e delle directory
$ touch
tocca
cambia l'orario di un file e se non esiste lo crea
touch [-acm][-r ref_file|-t orario] file...
opzioni funzione
-a Cambia l'ora di accesso di file.
-c Non crea file.
-m Cambia l'ora di modifica di file.
-r ref_file Usa i corrispondenti orari di ref_file come i nuovi valori per gli orari da cambiare.
-t orario Usa l'orario specificato come nuovo valore per gli orari da cambiare.
28
Comandi per la gestione dei file e delle directory
$ cp
copy
copia file e directory
cp [opzioni] file... percorso/directory
opzioni funzione
Conserva nella copia quanto è possibile della struttura e degli attributi dei file originali (ma non la struttura
-a
di directory).
-p Conserva proprietario, gruppo, permessi e date dei file originali.
-R Copia le directory ricorsivamente, rispettando le non-directory
Copia link simbolici come link simbolici piuttosto che copiare i file da essi puntati, e conserva la relazione di
-d
hard link tra i file originali anche nelle copie.
29
Comandi per la gestione dei file e delle directory
$ mv
move
permette di spostare o di rinominare un file
mv [opzioni] sorgente destinazione
opzioni funzione
-f Non chiede conferme.
Chiede conferma quando destinazione esiste (nel caso in cui venissero usati sia -f che -i, l'ultima
-i
opzione data prende la precedenza).
30
Comandi per la gestione dei file e delle directory
$ rm
remove
rimuove file o directory
rm [opzioni] file...
opzioni funzione
-i --interactive -- chiede conferma prima di rimuovere un file (opzione di default nella Mandrake)
-r --recursive-- rimuove alberi di directory e i file contenuti ricorsivamente
-f --force-- Ignora i file inesistenti e non chiede mai conferma all'utente.
-v --verbose-- stampa a schermo il nome di ciascun file prima di rimuoverlo
31
Comandi per la gestione dei file e delle directory
$ ln
link
crea collegamenti fisici (hard link) o simbolici (soft link) tra file
ln [opzioni] sorgente destinazione
opzioni funzione
usato senza opzioni ln crea link fisici , hard link, al file passato come sorgente
-f Rimuove i file di destinazione preesistenti.
-d Permette al super-utente di realizzare collegamenti fisici su directory.
Realizza collegamenti simbolici invece che collegamenti fisici. Quest'opzione produce semplicemente un
-s
messaggio d'errore quando viene usata su un sistema che non supporta i collegamenti simbolici.
32
Comandi per la gestione dei file e delle directory
$ mkdir
make directory
crea una directory
mkdir [opzioni] directory
opzioni funzione
-p crea un albero delle directory specificato
33
Comandi per la gestione dei file e delle directory
$ rmdir
remove directory
rimuove una directory vuota
rmdir [opzioni] directory
opzioni funzione
rimuove solo directory vuote
34
Comandi per la gestione del filesystem
# mount
monta
monta un filesystem
mount [-t tipo_fs] [-o opzioni] device dir
opzioni funzione
se invocato senza argomenti mostra il contenuto del file mtab
-t tipo_fs se invocato con solo queste due opzioni elenca i filesystem montati corrispondenti a tipo_fs
fa si che tutti i file system menzionati in fstab (del tipo specificato) siano montati come indicato, ad
-a [-t tipo]
eccezione di quelli la cui riga contiene la parola chiave noauto.
-n Monta senza scrivere in /etc/mtab. Ciò è necessario ad esempio quando /etcè un file system a sola lettura.
se invocato seguito dal nome del device da montare e il punto di montaggio di destinazione, provvede al
-t tipo_fs device
montaggio stesso.
-o Le opzioni sono specificate con un flag -o seguito da una stringa di opzioni separate da virgole.
e mille altri leggere man page
35
Comandi per la gestione del filesystem
# umount
smonta
smonta un filesystem
umount device | dir
opzioni funzione
-n Smonta senza scrivere in /etc/mtab.
-a Sono smontati tutti i file system descritti in /etc/mtab.
36
Comandi per la gestione del filesystem
# mkfs
make filesystem
crea un filesystem
mkfs [ -V ] [ -t fstype ] [ fs-options ] filesys [ blocks ]
opzioni funzione
Specifica il tipo di file system che deve essere costruito. Se non è specificato, viene usato il tipo di file
-t fstype
system predefinito (attualmente ext2).
Opzioni specifiche del file system che devono essere passate al costruttore effettivo del file system.
fs-options Sebbene non sia garantito, le seguenti opzioni sono supportate dalla maggior parte
dei costruttori di file system.
-c Controlla se il dispositivo ha blocchi danneggiati prima di costruire il file system.
37
Comandi per la gestione del filesystem
# du
disk usage
visualizza la quantità usata di spazio su disco
du [opzioni] [file...]
opzioni funzione
Senza argomenti, du visualizza lo spazio su disco per la directory corrente.
-a Visualizza lo spazio occupato da ogni file, non solo dalle directory.
-s Visualizza solo lo spazio occupato dagli argomenti dati, e non dalle loro sottodirectory.
-k Stampa le dimensioni in kilobyte.
38
Comandi per la gestione del filesystem
# df
disk free
visualizza l'ammontare di spazio libero su disco
df [opzioni] [file...]
opzioni funzione
se usato senza argomenti visualizza l' ammontare di spazio libero su disco in MB, e in %
-k come sopra ma in Kilobyte
39
Comandi per la gestione del filesystem
# fsck
filesystemchek
verifica e ripara un file system di Linux
fsck [ -AVRTNP ] [ -s ] [ -t tipo_fs ] [ opzioni_fs ] filesys [ ... ]
opzioni funzione
-N non viene eseguito ma mostra solo quello che sarebbestato fatto
-A ``Attraversa'' il file /etc/fstab e prova a verificare tutti i file system lì elencati in un colpo solo.
Quando si verificano tutti i file system con l'opzione -A, viene saltato il root file system (nel caso che sia
-R
gia montato in lettura e scrittura).
-t tipo_fs Specifica il tipo del file system da verificare.
40
Comandi per la gestione del filesystem
# fdisk
manipolatore della tabella delle partizioni per Linux
opzioni funzione
vedere la man page
41
file importanti per la gestione del filesystem
/etc/fstab
contiene informazioni statiche sui file system
esempio di fstab sulla mia macchina:
/dev/hda6 swap swap defaults 0 0
/dev/hda3 / reiserfs defaults 1 1
/dev/hda1 /mnt/win_c vfat defaults,users 1 0
/dev/hda5 /mnt/win_d vfat defaults,users 1 0
/dev/cdrom /mnt/cdrom iso9660 noauto,user,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
42
file importanti per la gestione del filesystem
/etc/mtab
contiene informazioni sui filesystem montati
esempio di mtab sulla mia macchina:
/dev/hda3 / reiserfs rw 0 0
/dev/hda1 /mnt/win_c vfat rw,noexec,nosuid,nodev 0 0
/dev/hda5 /mnt/win_d vfat rw,noexec,nosuid,nodev 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
proc /proc proc rw 0 0
usbfs /proc/bus/usb usbfs rw 0 0
43
Filesystem
Fonti :
➔ Daniele Giacomini: Appunti di informatica libera
➔ Rusty Russel, Daniel Quintan: Filesystem Hierarchy Standard v2.2
➔ Rusty Russel, Daniel Quintan, Cristopher Yeoh: Filesystem Hierarchy Standard v2.3
➔ Domenico Pingitore: Il filesystem di Linux: struttura e contenuto (in Linux Magazine n° 38 Febbraio
2004)
➔ Palin e Lusc (LugCR): Seminario filesystem e permessi per il LinuxDay 2003
➔ Jon “Maddog” Hall e Paul G. Sery: RedHat Linux for dummies – IDG Books
➔ Moshe Bar: Linux file system – McGraw Hill
➔ Claudio Panichi: Hardening(2): rendere sicuro l'accesso al filesystem (in Linux&c numero 37 Febbraio
2004)
➔ Autori vari: man pages
44