200 likes | 331 Views
Seminario di Sistemi Operativi mod.B. POSIX A ccess C ontrol L ists. Giacomo Basso 566/538. Argomenti trattati. Perché ACL e come funziona. ACL sui più popolari file system Linux. Come ACL influisce sulle prestazioni. Il tradizionale modello dei permessi dei sistemi UNIX.
E N D
Seminario di Sistemi Operativi mod.B POSIX Access Control Lists Giacomo Basso 566/538
Argomenti trattati • Perché ACL e come funziona. • ACL sui più popolari file system Linux. • Come ACL influisce sulle prestazioni. POSIX Access Control Lists
Il tradizionale modello dei permessi dei sistemi UNIX Ad ogni oggetto del file system sono associati tre insiemi di permessi che definiscono gli accessi per solo tre classi di utenti: owner Questo schema è implementato usando solo 9 bit per ogni oggetto owning group other POSIX Access Control Lists
Limiti • Solo l’amministratore di sistema può creare gruppi ed eventualmente apportare modifiche alla sua composizione. • Per consentire a degli utenti normali di effettuare dei tasks che di norma può fare solo l’amministratore, occorrono particolari utilities che possono incrementare la complessità del sistema e renderne difficile la manutenzione. POSIX Access Control Lists
Come funziona ACL • Un ACL consiste di un insieme di entries. • Ciascuna delle tre classi utente è rappresentata da una ACL entry. • Permessi per utenti o gruppi successivamente aggiunti occupano delle nuove ACL entries. POSIX Access Control Lists
ACL minimale La classe Group contiene solo owning group POSIX Access Control Lists
ACL estesa La classe Group adesso contiene 3 entries + una maschera: POSIX Access Control Lists
La mask entry • La mask entry viene introdotta per conoscere i permessi effettivi delle classi appartenenti a Group. • Rappresenta precisamente il massimo delle possibilità che ha un utente appartenente alla classe Group. • Per owner e other non si usa la maschera. POSIX Access Control Lists
La maschera dei permessi POSIX Access Control Lists
Access ACL Definisce i permessi di accesso correnti di un oggetto del file system Default ACL Definisce i permessi che un oggetto del file system eredita dalla directory in cui è stato creato. Solo per directory. POSIX Access Control Lists
I comandi ACL $ setfacl -m user:joe:rwx dir $ getfacl dir user::rwx user:joe:rwx group::r-x mask::rwx other::--- $ getfacl dir user::rwx group::r-x other::--- $ chmod g-w dir $ ls -dl dir drwxr-x---+ ... agruen suse ... dir $ getfacl dir user::rwx user:joe:rwx #effective:r-x group::r-x mask::r-x other::--- $ ls -dl dir drwxrwx---+ ... agruen suse ... dir POSIX Access Control Lists
Implementazione ACL in Linux • Non ci sono system calls specifiche per ACL (a differenza di freeBSD e Solaris) • ACL implementato mediante Attributi Estesi (EA), ovvero coppie costituite da un nome e un valore associati ad un oggetto del file system (simili alle variabili di ambiente). POSIX Access Control Lists
Ext2 e Ext3 • Ciascun i-node ha un campo chiamato i_file_acl • Questo campo contieneil numero del blocco che contiene gli attributi estesi associati all’oggetto di questo i-node • Per migliorare l’efficienza, i-node con gli stessi attributi estesi possono puntare allo stesso blocco • Non è possibile allocare più di un blocco per gli attributi estesi relativi ad un i-node POSIX Access Control Lists
JFS • Se gli Attributi Estesi sono di piccole dimensioni vengono memorizzate direttamente all’interno dell’i-node • Altrimenti memorizza gli Attributi Estesi di un i-node in un range di blocchi consecutivi. • Non c’è pertanto la limitazione del singolo blocco per i-node • Non è possibile la condivisione dei blocchi POSIX Access Control Lists
XFS • Piccoli insiemi di Attributi Estesi vengono memorizzati direttamente negli i-node. • Insiemi di Attributi Estesi di medie dimensioni vengono memorizzati nei blocchi foglia dei B+-alberi. • Insiemi di Attributi Estesi molto grandi vengono memorizzati nei B+-alberi completi. POSIX Access Control Lists
Performance di EA e ACL vediamo come vengono influenzati i tempi di accesso ad un oggetto del file system Il seguente test è stato effettuato su un pc configurato nel modo seguente Sistema operativo: SuSE Linux 8.2, con SuSE 2.4.20 kernel. Hardware: AMD Athlon processor clocked at 1.1 GHz and 512 MiB of RAM HD 30 GB IBM Ultra ATA 100 hard drive with 7200 RPM, an average seek time of 9.8 ms, and 2 MiB of on-disk cache POSIX Access Control Lists
Performance di EA e ACL • I tempi ottenuti si riferiscono al primo accesso ad un file dopo il riavvio del sistema. • Vengono messi a confronto i tempi di accesso con e senza ACL. POSIX Access Control Lists
Performance di EA e ACL POSIX Access Control Lists
Link di riferimento: http://www.suse.de/~agruen/acl/linux-acls/online POSIX Access Control Lists