Filesystem

Con la parola filesystem si indica l'organizzazione delle directory e dei file da parte del sistema operativo. Esso puo' essere ospitato su diversi tipi di supporto: hard-disk, chiavi usb, CD, DVD, RAM ; e puo' essere scritto in diverse maniere sul supporto: ext2, ext2, reiserfs, FAT, ecc.

Come e' fatto l'albero delle directory

Benche' in Linux nessuno abbia scritto uno standard, esiste la convenzione di mettere le directory principali nel seguente ordine con uno specifico significato:

  • /bin : Comandi e programmi principali di sistema (significa binary)
  • /boot : Kernel e altri files necessari per avviare Linux
  • /dev : Files particolari che rappresentano tutto l'hardware collegato al pc
  • /etc : Files di configurazione dei programmi
  • /home : Qui dentro ci sono le cartelle personali degli utenti.
  • /lib : Librerie condivise
  • /lost+found : Files persi a causa di errori, recuperati dal sistema
  • /mnt : Directory di mount della partizione dei dischi
  • /opt : Programmi commerciali o voluminosi che non fanno parte del sistema (Netscape , Openoffice)
  • /proc : Files "virtuali" di informazione sul sistema
  • /root : La cartella personale dell'amministratore di sistema
  • /sbin : Comandi per l'amministratore di sistema
  • /tmp : Files temporanei
  • /usr : Programmi e files aggiunti dall'utente (significa Unix system resource)
  • /var : I files che col tempo crescono di dimensione, come log e spool di stampa

Non tutte le cartelle descritte possono essere accluse nella vostra distribuzione.

Cenni sui permessi ai file

Esistono tre tipi di users:

  • Owner : chi ha creato il file stesso e ha ogni diritto su di esso. Il superuser puo' cambiare la paternita' (o maternita') di un file.
  • Group : l'owner del file da' l'accesso ad altri utenti chiamati Group, ma essi non possono allargare o restringere l'accesso al file come fa l'owner
  • Other : altri che non sono ne' user ne' group

esistono inoltre 3 diversi tipi di accesso ad un file:

  • Read : puo' essere letto (si indica anche come valore 4)
  • Write : puo' essere modificato (si indica anche come valore 2)
  • Execute : puo' essere eseguito come comando (si indica anche come valore 1)

Quindi ogni file ha una dicitura di nove lettere, le prime tre per Owner, le seconde per Group, le terze per other.

 Prova.file rwxr--r--

quindi il file Prova.file puo' essere modificato liberamente ed eseguito da owner ma essere solo letto dagli altri due gruppi. (Oppure ha valore 744)

Quando si esegue il comando:

 $ ls -l 

appare la lista dei file con una completa descrizione.

Inoltre il comando chmod serbe per cambiare le proprieta' di un file:

 $chmod [who] [op-code] [permission] ... [File]... 

dove al posto di who va messo una o piu' delle seguenti lettere:

  • u : sta per user
  • g : sta per group
  • o : sta per other (cioe' tutti gli altri)
  • a : che sta per all (cioe' tutti)

mentre per op-code si intende:

  • + : cioe' aggiungi permesso
  • - : cioe' togli permesso
  • = : cioe' assegna permesso

esempio

 $ls -l 
 rwxrw-xr-x max max 55 Oct 2 15:56 Java.direct 
 $chmod go-rw Java.direct 
 $ls -l 
 rwx-x-x max max 55 Oct 2 15:56 Java.direct

Per finire esiste il setuid bit (anche chiamato Sticky byte) da poter assegnare, questo permesso da' la possibilita' chi utilizza l'eseguibile marcato con questo bit di apparire, durante l'esecuzione dello stesso, com il proprietario del file. Per esempio se il comando startx ha i sguenti permessi:

  rwx-r-xr-x root root  startx

e' un nromalissimo file che appartiene a root ma che lo possono eseguire tutti, ma se diamo il seguente comando:

 # chmod a+s startx

a questo punto chiunque eseguira' startx eseguira' un programma i cui comandi avranno i permessi di root!!!

 # ls -l startx
  rws-r-sr-x root root  startx