[Samba-it] Scriptare le ACL...

Alessandro Dentella sandro at e-den.it
Thu May 28 02:36:29 MDT 2009


On Thu, May 28, 2009 at 09:45:38AM +0200, Marco Gaiarin wrote:
> Mandi! simo
>   In chel di` si favelave...
> 
> > Documentare ACI ? Cioe' devi stampare la lista di tutti i file e dire
> > quali ACL sono associate ad ogni file ??
> 
> Questo è il metodo stupido e alla fine inutile.
> Per questo voglio definire delle regole, delle eccezioni e
> periodicamente ripristinare i permessi a queste.

concordo sulla utilità di una tale script, al punto che io l'ho fatta e la
uso all'interno del progetto 'reteisi'  [1], che propone una soluzione per
sistemi scolastici. Ciclicamente è opportuno dare una sistemata ai permessi
che ogni utente ha diritto di cambiare... ma non necessariamente è quello che
vuole l'istituzione...

Non sono particolarmente orgoglioso della script in sè [2], era uno dei
primi esperimenti che feci con python qualche anno fa, ma fa quello che
serve:

  1. legge una definizione di permessi in formato .ini (vedi sotto)

      due note:
          public_html: invoca una funzione che permette l'attraversamento
              della $HOME a www-data e la lettura di $HOME/public_html
          copy:  eredita le configurazioni da un altra sezione e permtte di
              sovrascrivere solo alcune parti

  2. le applica per ogni cartella passata in argomento. Esempio:

      # isi-perms
      # isi-perms docenti

  3. permette di sovrascrivere localmente il file di configurazione
     (cosìcchè ci sia un file unico per il progetto reteisi ed una
     possibilità di configurazione locale al server)

  4. permette di avere delle script lanciate in seguito (le eccezioni)

Per usarla devi avere installate due librerie di python (python-dry,
python-isi) che trovi solo pacchettizzate debian in [3].

Se sei interessato ti posso passare il file e le sue dipendenze in un unico
tar. 

sandro
*:-)


configurazione
===============

Il file di configurazione è circa così:

## Ogni modifica a questo file verrà sovrascritta al cambio di release.
## modificare invece il file /etc/isi/acl-local.conf

## i gruppi principali di default sono:
## admins alunni ata docenti esterni ospiti segreteria grtest

[alunni]
  path = /home/users/alunni
  grp       = docenti
  u:        = rxw    # ogni permesso al proprietario
  g:docenti = rxw    # il gruppo docenti deve poter fare tutto
  g:admins  = rxw    # anche gli admins
  g:alunni  = ---    # nessun alunno ha diritti
  o         = ---    # nessun altro ha diritto di fare qualche cosa
  public_html = true


[docenti] 
  path = /home/users/docenti
  grp       = docenti
  u:        = rxw    # l'utente deve poter fare tutto
  g:        = ---    # il gruppo nulla (questo implica che nessun altro
                     # gruppo può per via della risemantizzazione delle
                             # groupship a "upper bound"
  o         = ---     
  public_html = true

[ata]
  path = /home/users/ata
  grp  = ata
  copy = docenti
  public_html = true

[admins]
  path = /home/users/admins
  grp       = admins
  copy = docenti
  g:admins  = ---               # gli admins non possono vedere altri admins
  public_html = true

...


[post_exec]
  file = /etc/isi/acl-post-exec.sh
  ## non modificate la riga seguente se non sapete cosa fate!!!
  cmd01  = setfacl --set u::7,g::5,o:0 /home/users/*
  cmd02  = setfacl --set u::7,g::5,o:5 /home/users/alunni /home/shares/classi
  cmd03  = chmod 600 /root
  cmd04  = isi-classe -N   # no samba
  cmd05  = isi-classe -C




[1] http://docs.argolinux.org/reteisi/gestione/comandi_isi.html#isi2-perms
[2] http://hg.argolinux.org/isi/isi/file/tip/usr/sbin/isi-perms
[3] deb http://apt.argolinux.org lenny main
-- 
Sandro Dentella  *:-)
http://sqlkit.argolinux.org        SQLkit home page - PyGTK/python/sqlalchemy



More information about the samba-it mailing list