Mar 07

Umask e sticky bit

Spread the love

Veloce incursione nel mondo Linux/Unix.

umask = 777 – diritti di lettura / scrittura (in ottale)

il valore umask è il complemento a 128 dei permessi di scrittura. Ci dice quali permessi vogliamo negare sul file più che concedere.

Ad esempio se una directory è leggibile / scrivibile / eseguibile dal proprietario e solo leggibile/eseguibile dalresto del mondo (il gruppo e tutti gli altri), si ha:

  • proprietario = 111 = 7
  • gruppo = 101 = 5
  • altri = 101 = 5

per cui umask = 777 – 755 = 022 (ottale)

Se anche il gruppo dovesse poter scrivere, si deve impostare la directory con

chmod 775 /path/to/dir

ossia umask = 777 – 775 = 002.

umask è un comando Unix che altera permanentemente i diritti di accesso ai file / directory creati dopo il comando per quella shell. Esempio:

marcob@jsbach:~$ umask 022
marcob@jsbach:~$ touch nuovo
marcob@jsbach:~$ ll nuovo 
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
marcob@jsbach:~$ umask 002
marcob@jsbach:~$ touch nuovo1
marcob@jsbach:~$ ll nuovo*
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
-rw-rw-r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo1

Ma cosa vuol dire:

drwxrwxrwt  15 root root  4096 2011-03-07 14:55 tmp/

cioè cosa significa la t?

Significa che per la directory /tmp/ è stato impostato lo sticky bit (bit adesivo) che fa in modo che nella directory tutti possano scrivere ma solo i proprietari dei file possano rinominarli o cancellarli.

Per i file: il kernel, quando carica nella swap area un file eseguibile, non lo rimuove (lo incolla letteralmente alla swap area) nemmeno quando ha terminato l’esecuzione. Questo, soprattutto alle origini, per fare in modo che i programmi più frequentemente usati dall’utente rimanessero in memoria per avviarli più rapidamente.

Lascia un commento

Your email address will not be published.