Unix e utenti UNIX è un SO multiutente Singolo utente Lavora su file e cartelle Esegue dei comandi Scrive dei programmi Usa delle risorse Personalizza l’ambiente di lavoro Può lavorare su di un terminale remoto … 1 Identità e protezione I file e le cartelle di ciascun utente devono essere protetti dagli altri utenti e resi accessibili secondo le modalità scelte dall’utente medesimo A tal fine gli utenti devono essere identificabili Spesso gli utenti sono divisi in gruppi di lavoro che collaborano, in questo caso deve essere possibile distinguere gli appartenenti al gruppo di lavoro dell’utente dagli altri utenti Identificazione degli utenti Login + Password richieste all’inizio della sessione di lavoro UID: user identifier Numero intero usato dal sistema per verificare i diritti di accesso ai file e, quindi, le operazioni che l’utente può compiere Utenti e gruppi Gli utenti sono divisi in gruppi di lavoro, in certe versioni di unix un utente può far parte contemporaneamente di più gruppi di lavoro GID: group identifier Numero intero usato dal sistema per verificare i diritti di accesso ai file e, quindi, le operazioni che gli utenti appartenenti a un cero gruppo possono compiere 2 Protezione Limiti di azione Esiste un solo utente che non ha limiti d’azione: root Meccanismo base per limitare gli utenti: definizione di opportuni diritti d’accesso a file e directory Un file può essere un eseguibile (per esempio un comando); limitare l’accesso a un eseguibile significa impedire a certi utenti di utilizzare quel comando. Idem nel caso in cui impedisca ad alcuni utenti l’accesso a una cartella che contiene comandi File e gruppi di utenti Un file appartiene di default all’utente che l’ha creato (owner) A ogni file sono associati diritti d’accesso per tre tipi di utenti: 1. Owner 2. Utenti appartenenti al gruppo dell’owner 3. Tutti gli utenti che non rientrano in 1 e in 2 3 Diritti d’accesso associati a file e directory File: r read w write x execute lettura modifica esecuzione (se programma) Directory: r read w write x execute lista dei file contenuti creazione/cancellazione file attraversamento a ogni file/directory sono associate tre triplette di simboli che indicano quali operazioni può compiere il proprietario (owner), quali gli appartenenti al gruppo del proprietario (group) e quali i rimanenti utenti (others) esempi Owner: leggere il contenuto di pippo, modificarlo, mandarlo in esecuzione Group: leggere il contenuto di pippo e mandarlo in esecuzione Others: nessuna operazione file r w x r - x - - - pippo r w - r w - r - - pluto Owner: leggere il contenuto di pluto e modificarlo Group: leggere il contenuto di pippo e modificarlo Others: leggere il contenuto di pluto esempi Il file /etc/passwd contiene le informazioni relative all’identità deli utenti con tanto di password associata (criptata). I diritti di accesso sono: rw- r-- r-- Diritti di root passwd Tutti gli altri E se voglio cambiare password?? Devo passare tramite amministratore di sistema? 4 Estensione controllata dei diritti d’accesso I diritti d’accesso di un programma sono estesi aggiungendo quelli relativi allo UID associato al programma medesimo Esempio passwd: programma che consente a un utente di cambiare password, è un comando Unix, ha associato lo UID di root, quindi quando viene eseguito può accedere al file /etc/passwd modificandolo (ma limitatamente alla funzionalità del comando medesimo), cosa che gli utenti diversi da root non possono fare normalmente Esempi directory directory Owner: elenco dei file di alfa, creazione/canc file in alfa, attraversamento di alfa Group: elenco dei file di alfa, attraversamento Others: elenco dei file di alfa e attraversamento Owner: elenco dei file di beta, creazione/canc file in beta, attraversamento di beta Group: elenco dei file di beta, creaz/canc file in beta, attraversamento Others: nessuna operazione concessa r w x r - x r - x alfa r w x r w x - - - beta r w x r - x - - x gamma Owner: elenco dei file di gamma, creazione/canc file in gamma, attraversamento di gamma Group: elenco dei file di gamma, attraversamento Others: solo attraversamento di gamma Modifica dei diritti d’accesso chmod chown chgrp 5 chmod + attiva diritti – disabilita diritti chmod u g o a r w x + - nomeFile (o directory) u (user) = owner del file g = gruppo dell’owner o = others (tutti gli altri) a = all (tutti gliutenti) Esempi chmod r w - r- - r- - pippo r w x r w x r w x pluto chmod ug+x pippo chmod o-wx pluto r w x r - x r - - pippo rwx rwx r-- pluto Chmod può essere usato solo dal proprietario di un file o dall’amministratore di sistema chown L’amministratore di sistema può cambiare l’owner di un file tramite il comando chown Prompt> chown ut nomeFile1 [nomeFile2 … nomeFileN] Utente1 Gruppo1 File1 prompt> chown Utente2 File1 Utente2 Gruppo1 E se Utente2 appartenesse ad un altro gruppo? File1 6 chown Prompt> chown ut:gruppo nomeFile1 [nomeFile2 … nomeFileN] Utente1 Gruppo1 File1 prompt> chown Utente2:Gruppo2 File1 Utente2 Gruppo2 File1 chgrp prompt> chgrp nuovoGruppo nomeFile1 [nomeFile2 … nomeFileN] Cambia il gruppo associato ad un file 7