[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