Diapositiva 1 - SisInf Lab
Transcript
Diapositiva 1 - SisInf Lab
Corso di Laurea Triennale in Ingegneria delle TLC e dell’Automazione Corso di Sistemi Operativi A. A. 2005 - 2006 Link e permessi M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Link • Un riferimento ad un file è detto link • Ogni file può avere un numero qualsiasi di link • UNIX ha due tipi di link: – Hard link – Soft link • È possibile creare un link ad un file con il comando ln 2 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari • • • Il comando ln ln [opzioni] fileesistente nuovofile associa il nuovo nome (link) nuovofile al file esistente (fileesistente), che non può essere una directory ln [opzioni] fileesistenti… directorytarget crea un link ai file ordinari (fileesistenti…) nella directory (directorytarget). I link hanno gli stessi nomi del file originale Opzioni: – -n: non crea il link se nuovofile esiste già – -s: crea un link simbolico a fileesistente con il nome nuovofile 3 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Hard link • Un hard link è un puntatore all’inode di un file. – Alla creazione di un file corrisponde la definizione di una directory entry (inode#, filename) nella directory contente il file. – L’ inode# consente di accedere agli attributi del file (numero di link, dimensione, proprietario, allocazione sul disco etc) 4 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi Hard link: esempi DEE - Politecnico di Bari • Si supponga di creare un file capitolo3 nella propria working directory, e che il sistema allochi un inode#53472 • Si supponga che la directory contenga a sua volta altri due file capitolo1 e capitolo2 Struttura della working directory capitolo1 5 di 32 capitolo2 Contenuto della working directory capitolo3 Link 1076 . 2083 .. 13059 Capitolo1 17488 Capitolo2 52473 Capitolo3 M. Ruta - G. Piscitelli Sistemi Operativi Hard link: esempi DEE - Politecnico di Bari • L’inode# nella directory entry del file capitolo3 è usato per indicizzare la inode table in modo da accedere all’inode del file. L’inode contiene gli attributi di capitolo3, tra cui la sua allocazione sul disco Legame tra directory entry, inode e contenuto del file 6 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi Hard link: esempi DEE - Politecnico di Bari • • Con il comando ln, è possibile creare un link a capitolo3, nella stessa o in un’altra directory Il comando ln senza opzioni crea un hard link al file specificato mostra gli attributi di tutti i file della directory corrente, compresi i loro inode# $ ls –il 13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1 17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2 52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3 Crea un hard link a capitolo3 di nome capitolo3.hard $ ln capitolo3 capitolo3.hard Struttura della working directory capitolo1 7 di 34 capitolo2 capitolo3 Capitolo3.hard Contenuto della working directory 1076 . 2083 .. 13059 Capitolo1 17488 Capitolo2 52473 Capitolo3 52473 Capitolo3.hard Completiamo i discorsi... Il sistema crea una nuova directory entry per capitolo3 nella directory corrente. M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Hard link: esempi •I due riferimenti al medesimo file sono equivalenti in quanto entrambi puntano allo stesso file su disco •Non si è in grado di distinguere quale dei due è stato creato per primo 8 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari $ ls –il 13059 -rwx------ 1 sarwar 17488 -rwx------ 1 sarwar 52473 -rwx------ 2 sarwar 52473 -rwx------ 2 sarwar Hard link: esempi faculty 398 Mar 11 14.20 capitolo1 faculty 5983 May 21 18.20 capitolo2 faculty 9352 Jan 10 10.20 capitolo3 faculty 9352 Jan 10 10.20 capitolo3.hard •Due nomi diversi corrispondono allo stesso file su disco i.e. hanno lo stesso inode# e quindi gli stessi attributi •Entrambi i file hanno un link count di 2 •La dimensione del file è uguale 9 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Hard link: esempi • Ogni volta che si crea un hard link ad un file, il link count per il file si incrementa di 1 – Lo stesso file esiste con nomi diversi • Quando si cancella un file che ha molteplici hard link, il sistema decrementa il link count (nell’inode del file) di 1 – Se il link count è 0, il sistema rimuove la directory entry per quel file, libera l’inode del file, dealloca i blocchi di memoria di massa precedentemente allocati per contenere il file. – Se il link count non è 0, il sistema rimuove solo la directory entry del file cancellato. Il contenuto del file e altre directory entry per quel file (hard link) rimangono inalterati. $ rm capitolo3 13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1 17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2 52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3.hard 10 di 32 Link •Il file capitolo3 è accessibile attraverso capitolo3.hard •Il link count è stato decrementato M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Hard link: esempi • Il comando ln può essere usato per creare un link ad un file in un’altra directory $ ls –il ~/memos/memo6 83476 –rwx------ 1 sarwar faculty 1673 May 29 11.22 /users/faculty/sarwar/memos/memo6 Attributi dei file nella home directory dell’utente sarwar $ ln ~/memos/memo6 memo6.hard 11 di 32 Crea un hard link di nome memo6.hard nella directory corrente ad un file della home directory dell’utente Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Hard link: esempi ÖHard link tra ~/memos/memo6 e memo6.hard della directory corrente ÖDue directory diverse hanno un link ad uno stesso file $ ls –il ~/memos/memo6 83476 –rwx------ 2 sarwar faculty 1673 May 29 11.22 /users/faculty/sarwar/memos/memo6 $ ls –il memo6.hard 83476 –rwx------ 2 sarwar faculty 1673 May 29 11.22 memo6.hard 12 di 34 Completiamo i discorsi... M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Soft/symbolic link • È possibile creare un soft link con il comando ln e opzione –s • Possono riferirsi sia a file che a directory • Sono dei file di tipo speciale che contengono semplicemente un path name. – Nell’analizzare un pathname per individuare un file/directory, ogni volta che il sistema incontra un file di tipo soft link, sostituisce il suo contenuto al pathname che lo individua • Quando il comando rm riceve come argomento un soft link, cancella quest ultimo e non il file a cui esso si riferisce 13 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi Soft link: esempi DEE - Politecnico di Bari $ ls –il 13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1 17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2 52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3 Crea un soft link, di nome capitolo3.soft, al file capitolo3 nella working directory $ ln –s capitolo3 capitolo3.soft Struttura della working directory capitolo1 14 di 34 capitolo2 capitolo3 Capitolo3.soft mostra gli attributi di tutti i file della directory corrente, compresi i loro inode# Contenuto della working directory 1076 . 2083 .. 13059 Capitolo1 17488 Capitolo2 52473 Capitolo3 52479 Capitolo3.soft Completiamo i discorsi... M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Soft link: esempi •I file capitolo3 e capitolo3.soft sono due file distinti, con inode# distinti. 15 34 file •Il di link contiene il pathname del file di cui è link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari $ ls –il 13059 -rwx------ 1 sarwar 17488 -rwx------ 1 sarwar 52473 -rwx------ 1 sarwar 52479 lrwxrwxrwx 1 sarwar Soft link: esempi faculty 398 Mar 11 14.20 capitolo1 faculty 5983 May 21 18.20 capitolo2 faculty 9352 Jan 10 10.20 capitolo3 faculty 8 Jan 10 10.20 capitolo3.soft -> capitolo3 •Il file originale (capitolo3) e il link file (capitolo3.soft) hanno inode# distinti. Pertanto, sono file differenti •Il file originale è un file ordinario (-) il link file è di tipo link (l) •Il link count per è 1 per entrambi i file •La dimensione del file è differente •Il nome del link file è seguito da →capitolo3, i.e. il pathname del file di cui capitolo3.soft è soft link 16 di 32 Link M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Permessi di accesso a file e directory • Ad un file possono essere attribuiti i seguenti permessi: – Lettura (read) – Scrittura (write) – Esecuzione (execute) • Appena un file è creato, esso viene collegato all’utente che lo ha creato e al gruppo cui fa parte in quel momento l’utente • I permessi sono definiti per: – Utente proprietario del file – Gruppo (cui appartiene il proprietario del file) – altri 17 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari 18 di 32 Visualizzare i permessi Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi Visualizzare i permessi DEE - Politecnico di Bari • I permessi sono visualizzati nei primi dieci caratteri, suddivisi in quattro insiemi – – – – l: tipo di file u: permessi concessi al proprietario del file g: permessi concessi agli utenti membri del gruppo o: permessi agli altri utenti, non compresi nei precedenti insiemi • Per ciascuno è possibile specificare se il permesso è di lettura, scrittura, esecuzione. • Es. per il file file2 19 di 32 l u g o - rw- r-- r-- Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Significato dei Permessi • Per i file ordinari – r: leggere il contenuto – w: modificare il contenuto – x: eseguire il file (ha senso per file binari o script) • Per i file speciali – r: leggere dal device (input) – w: scrivere sul device (output) – x: non significativo 20 di 32 • Per le directory – r: leggere il contenuto della directory – w: modificare la directory, i.e. aggiungere, rinominare, rimuovere file – x: accesso (scansione) della directory (per leggere, modificare, eseguire un file in essa contenuto) Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari ACL … • Ad ogni file (e directory) è associata una stringa di 10 caratteri, detta lista di controllo agli accessi o Access Control List (ACL), contenente i diritti di accesso al file 21 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi ACL DEE - Politecnico di Bari • Un file (directory), al momento della creazione, è per default reso accessibile in lettura e scrittura all’utente proprietario, generalmente ne è vietato qualunque accesso a tutti gli altri utenti, compresi quelli del gruppo di appartenenza – La sua ACL sarà: • - rw- --- --- (file) • d rwx --- --- (directory) • L’utente proprietario può cambiare la ACL in qualunque momento mediante il comando chmod 22 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Cambiare i permessi • Al momento della creazione di un file, esso appartiene all’utente che lo ha creato e assume il gruppo di quest’ultimo • Il superuser può modificare queste informazioni con i comandi: – chown: cambia il possessore – chgrp: cambia il gruppo • Un utente può modificare i permessi dei file che gli appartengono con il comando: – chmod: cambia permessi di accesso 23 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Comando chown e chgrp chown newowner file… • change owner: cambia l’utente proprietario di un file • L’utente identificato da newuser diventa il nuovo proprietario del file • Il comando può essere eseguito solo dal superuser) chgrp newgroup file… • change group: cambia l’owner group di un file • Il gruppo identificato da newgroup diventa il nuovo gruppo • Il comando può essere eseguito solo dal superuser 24 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Il comando CHMOD chmod permessi filename… • change mode: permette di cambiare i permessi di accesso (lettura, scrittura, esecuzione) di un file. • Il comando può essere eseguito solo dall’utente proprietario (o dal superuser) • I “permessi” possono essere espressi in forma ottale o simbolica 25 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi Permessi: forma simbolica DEE - Politecnico di Bari • I permessi sono formati da una combinazione sequenziale di codici utente e codici di permesso: Codici utente Descrizione u Proprietario g Gruppo o Altri a Tutti (u,g,o) 26 di 32 Codici di permesso Descrizione r Lettura w Scrittura x Esecuzione Operatori Descrizione + Aggiunge permessi - Rimuove permessi Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Permessi: forma simbolica • Per modificare i permessi di uno o più file, l’argomento del comando chmod (oltre al file) deve essere: – Codice utente – Operatore – Codice di permesso $ chmod g+w citazione $ Assegna il permesso di scrittura sul file “citazione” agli appartenenti al gruppo $ chmod ugo+rw citazione $ chmod a+rw citazione $ chmod +rw citazione Forme equivalenti per: assegnare contemporaneamente il permesso di scrittura e lettura sul file “citazione” a qualsiasi utente $ chmod o-rw citazione Toglie i permessi di lettura e scrittura del file “citazione” a chi non è proprietario né fa parte del gruppo 27 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari Permessi: forma ottale • I permessi devono specificare l’intera definizione degli accessi per i file considerati • La forma ottale è costituita da tre cifre comprese tra 0 e 7, un per ogni tipo di permesso ammissibile. • Ogni cifra è interpretata come una somma delle prime 3 potenze del 2. • Ogni cifra in forma ottale corrisponde a tre bit dell’ACL – I permessi di accesso variano da 000 a 777 28 di 32 Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi Permessi: forma ottale DEE - Politecnico di Bari r w x Cifra in forma ottale significato 0 0 0 0 Nessun permesso 0 0 1 1 (20) Esecuzione solo 0 1 0 2 (21) Scrittura solo 0 1 1 3 (21+20) Scrittura ed esecuzione 1 0 0 4 (22) Lettura solo 1 0 1 5 (22+20) Lettura ed esecuzione 1 1 0 6 (22+21) Lettura e scrittura 1 1 1 7 (22+21+20) Lettura scrittura esecuzione $ chmod 640 citazione $ 29 di 32 Assegna il permesso di lettura e scrittura per il proprietario, di sola lettura per il gruppo, nessun permesso agli altri Permessi e protezioni sui file M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari 30 di 32 CHMOD: esempi Completiamo i discorsi... M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari 31 di 32 CHMOD: esempi Completiamo i discorsi... M. Ruta - G. Piscitelli Sistemi Operativi DEE - Politecnico di Bari 32 di 32 CHMOD: esempi Permessi e protezioni sui file M. Ruta - G. Piscitelli