I permessi di accesso indicano chi può:

  • leggere,
  • scrivere,
  • eseguire un file/directory.

Sono codificati da una stringa di 10 caratteri:

  • il primo carattere indica il tipo del file,
  • la prima sotto-stringa di tre caratteri indica i permessi dell’utente,
  • la seconda sotto-stringa di tre caratteri indica i permessi degli utenti appartenenti al gruppo principale dell’utente,
  • la terza sotto-stringa indica i permessi degli altri utenti.

Le sotto-stringhe sono tutte formattate allo stesso modo, ma la stessa stringa significa due cose diverse se si riferisce a file o directory.

Per i file

0 --- nessun permesso
1 --x solo esecuzione
2 -w- solo scrittura
3 -wx scrittura e eseuzione
4 r-- solo lettura
5 r-x lettura e esecuzione
6 rw- lettura e scrittura
7 rwx lettura, scrittura e esecuzione

I numeri da 0 a 7 invece indicano la codifica ottale delle stesse stringhe di permessi.

Per le directory

Per le directory, w non ha significato, r è il permesso di listare il contenuto, x indica il permesso di settarla come current working directory e attraversarla.

Permessi speciali

Non compaiono nella stringa dei permessi listata con stat ma sono applicati (o meno) lo stesso ai file e directory.

Sono tre singoli bit:

  • Sticky bit (t): è inutile sui file, applicato sulle directory corregge il comportamento di w+x permettendo di cancellare file all’interno se si hanno permessi di scrittura specificatamente su di essi, non solo sulla directory che li contiene.
  • Setuid bit (s): si usa solo per file eseguibili, indica che al posto di eseguirli con i privilegi dell’utente che li lancia, vengono eseguiti con i privilegi dell’utente proprietario. Ad esempio passwd ha il setuid=1 perché deve permettere all’utente di cambiare la sua password.
  • Setgid bit (s): è analogo al setuid bit ma con i gruppi invece che con gli utenti. Può essere applicato anche ad una directory, e allora ogni file creato li dentro ha il gruppo della directory, anziché quello primario di chi crea i files.

Visualizzazione

  • vengono visualizzati al posto del bit di esecuzione:
    • il setuid nella terna utente (user)
    • il setgid nella terna gruppo (group)
    • lo sticky nella terna altro (other)
  • se il permesso di esecuzione c’è, allora la s o la t saranno minuscoli, altrimenti saranno maiuscoli.