Permessi

Da UZ wiki.

ACL di AFS

I file nella propria home e nella nobackup sono gestiti tramite AFS. Di conseguenza i permessi sono gestiti tramite le ACL (Access Control List) di AFS e non tramite i classici permessi UNIX (anche se come vedremo anche loro continuano ad avere un ruolo). Le ACL assegnano a ogni cartella una lista di permessi (che sono ereditati da ogni sottocartella e da ogni file contenuto nella cartella). In particolare non è possibile impostare le ACL per ogni singolo file.

Per vedere le ACL di una cartella si usa il comando fs la (list acl)

byum@heroin:~$ fs la
Access list for /afs/uz.sns.it/user/byum is
Normal rights:
  system:administrators rlidwka
  byum rlidwka

Come si vede a ogni gruppo di utenti è associata una lista di permessi. Questi sono

  • l Il permesso di lookup. Questo è il permesso fondamentale. Essenzialmente autorizza l'utente a porre domande sulla cartella. Ci sono pochissime cose però che si possono fare solo col permesso di lookup. Ad esempio è possibile ottenere la lista dei file all'interno della cartella con il comando ls ma non le loro proprietà con il comando ls -l (che necessita anche del permesso di lettura).
  • i Il permesso di insert. Questo autorizza l'utente a creare nuovi file o sottocartelle nella cartella, sia creandoli ex novo che spostandoli. Non permette però di creare file in una sottocartella se le ACL corrispondenti lo vietano.
  • d Il permesso di delete. Questo autorizza l'utente a eliminare file o sottocartelle sia rimuovendoli dal filesystem (ad esempio tramite il comando rm) sia spostandoli in altre cartelle (però è necessario che l'utente abbia il permesso di insert per la cartella di destinazione).
  • a Il permesso di administer. Questo autorizza l'utente a cambiare le ACL della cartella. Tutti gli utenti del gruppo system:administrator hanno questo permesso implicitamente (cioè anche se non è presente nelle ACL della cartella).
  • r Il permesso di read. Questo autorizza l'utente a leggere i file presenti nella cartella e a ottenerne le proprietà tramite il comando ls -l.
  • w Il permesso di write. Questo permette di modificare i file nella cartella e di cambiarne i permessi UNIX (ad esempio per renderli eseguibili).
  • k Il permesso di lock. Questo permette all'utente di bloccare un file. Tendenzialmente non vi interesserà a meno che non stiate programmando applicazioni che fanno uso di thread, e in tal caso non avete bisogno di spiegazioni.

Per modificare le ACL si usa il comando fs sa (set acl). La sintassi è la seguente

fs sa -dir CARTELLA -acl LISTAPERMESSI

dove CARTELLA è la cartella di cui volete impostare i permessi e LISTAPERMESSI è una lista della forma NOMEGRUPPO PERMESSI. Ad esempio

byum@heroin: ~$ fs sa -dir . -acl classediscienze rl user none

imposta le ACL della cartella corrente al permesso di lettura e lookup per gli utenti del gruppo classediscienze e nessun permesso agli utenti normali (none è una stringa convenzionale per indicare nessun permesso). Questi permessi vanno ad aggiungersi a quelli già esistenti per la cartella. Se si vuole esplicitamente cancellare tutti i permessi preesistenti bisogna usare l'opzione -clear come nel seguente esempio:

byum@heroin: ~$ fs sa -clear -dir . -acl classediscienze rl user none

I permessi standard UNIX

Come già detto i permessi standard UNIX hanno un ruolo in subordine rispetto