Lezione 4

Transcript

Lezione 4
Un approccio pratico
alla gestione degli utenti
e dei permessi nei sistemi UNIX
Marco Bellaccini
LSS Evangelista Torricelli
Corso di Linux
LINUX E' UN SISTEMA MULTIUTENTE:
-utente root (superuser)
-utenti normali
IN LINUX ESISTONO I “GRUPPI DI UTENTI”.
gli utenti dello stesso gruppo hanno delle “affinità”
IN LINUX I FILE HANNO ALCUNI “ATTRIBUTI”:
lettura – scrittura – esecuzione
IN LINUX I FILE HANNO UN PROPRIETARIO, libero di decidere tutto
su di essi.
IN LINUX I FILE HANNO UN GRUPPO DI APPARTENENZA (ma su
questo torneremo in seguito)
Root
–
Fa attività di manutenzione della macchina, installa e rimuove il
software.
Ma a noi interessa questo:
–
–
–
–
Amministra gli utenti: li crea, li elimina, ne cambia le password.
Amministra i gruppi: li crea, li elimina, aggiunge/toglie gli utenti da
essi
Accede a tutto. Legge, scrive ed esegue ciò che vuole.
Può modificare gli attributi di tutti i file e le directory del sistema
(anche quelli non suoi).
Normali utenti
–
Non possono toccare nulla che non gli sia esplicitamente consentito
toccare.
In particolare:
–
–
–
Non amministrano nessun utente (tranne – e nemmeno del tutto – loro
stessi).
Solitamente possono solo leggere ciò che è al di fuori della loro Home
Directory (la cartella di stretta proprietà di ogni utente).
Possono modificare soltanto gli attributi dei loro file e delle loro
directory.
Il file passwd
–
–
–
–
–
Contiene le informazioni su root e tutti gli utenti.
Associa ad ogni utente un numero (UID) e il “gruppo di login” al quale
appartiene
Normalmente solo root lo può modificare.
E' modificabile a mano ma ci sono modi più facili per lavorare sugli
utenti.
Non contiene (attualmente) le password degli utenti.
Il file shadow
–
–
Contiene le password criptate di tutti gli utenti (anche root).
Un normale utente non lo può nemmeno leggere, solo root lo può
modificare
Il file group
–
–
–
Contiene i nomi di tutti gruppi e degli utenti che ne fanno parte.
Associa ad ogni gruppo un numero (GID)
Solo root lo può modificare.
Un brusco approccio alla shell
Comando shell:
comando -opzione1 -opzione2 ... argomento
COSA USEREMO (O COMUNQUE E' BENE SAPERE):
“pwd”
ci dice in quale cartella ci troviamo
“cd una/qualche/cartella”
serve a cambiare directory, ci permette di entrare in una cartella diversa
da quella dove attualmente ci troviamo.
“ls -l”
mostra una lista dei file e delle sotto-directory di una cartella, corredata
da attributi, proprietario, gruppo e molte altre informazioni su ogni
elemento.
“chown (-R) nuovoutente fileocartella”
cambia (ricorsivamente) il proprietario di uno o più file e cartelle
“chgrp (-R) nuovogruppo fileocartella”
cambia (ricorsivamente) il gruppo di uno o più file e cartelle
“adduser utente”
crea un nuovo utente (e la sua home directory)
“deluser utente”
cancella un utente
“groupadd gruppo”
crea un nuovo gruppo
“groupdel gruppo”
cancella un gruppo
“gpasswd -a utente gruppo”
aggiunge un utente ad un gruppo
“gpasswd -d utente gruppo”
rimuove un utente da un gruppo
“su nomeutente”
ci permette di cambiare utente
“whoami”
stampa a schermo il nostro nome utente
“groups”
elenca i gruppi dei quali un utente fa parte
“passwd utente”
cambia la password di un utente (se non siamo root solo la nostra)
“touch nomefile”
crea il file “nomefile”
“mkdir cart”
crea la directory “cart”
“cat foo”
stampa a schermo il contenuto del file “foo”
“mv fileocart nuovoposto”
sposta file o cartelle, usato anche per rinominare
“cp (-r) fileocart nuovoposto”
copia (ricorsivamente) file o cartelle
“rm (-r) fileocartella”
cancella (ricorsivamente) file e cartelle
“exit”
permette il logout dell'utente
“chmod [OPZIONI] fileocartella”
cambia gli attributi di file e cartelle
OPZIONI DI CHMOD
LIVELLO
PERMESSI
0
nessun privilegio
1
esecuzione
2
scrittura
3
scrittura + esecuzione
4
lettura
5
lettura + esecuzione
6
lettura + scrittura
7
lettura + scrittura + esecuzione
Esempio:
chmod 734 pippo
7:permette al padrone di “pippo” di leggerlo, modificarlo ed eseguirlo.
3:permette agli utenti del gruppo assegnato a “pippo” di modificarlo ed
eseguirlo.
4:chiunque altro può solo leggerlo
Un problema (sur)reale
Siamo gli amministratori di una macchina, avente come utenti 3 cuochi:
- 2 italiani
- 1 francese
I cuochi italiani provengono da due diverse città: c'è un cuoco romano e
uno milanese.
Ogni cuoco vuole avere una Home directory dove memorizzare le ricette.
Tuttavia:
– i 2 cuochi italiani non vogliono che il francese scopra le ricette segrete
delle pizze, vogliono essere i soli a poterle leggere e modificare
– il cuoco romano vuole permettere a quello milanese di leggere la
ricetta della carbonara, ma non di modificarla
Svolgimento:
Apriamo l'emulatore di terminale e passiamo all'utente root:
su root
Ora creiamo gli utenti:
adduser romano
adduser milanese
adduser luis
poi creiamo i gruppi “italiani” e “francesi”:
groupadd italiani
groupadd francesi
adesso aggiungiamo il romano e il milanese al gruppo “italiani” ed il
francese al gruppo “francesi”
gpasswd -a romano italiani
gpasswd -a milanese italiani
gpasswd -a luis francesi
ora creiamo una cartella per gli italiani
mkdir /home/ita
chgrp italiani /home/ita
entriamo della cartella /home ed osserviamo la lista dei file:
cd /home
ls -l
permettiamo agli utenti dei gruppi italiani e francesi di scrivere (ed
eseguire) nelle cartelle appena create, agli altri permettiamo solo la
lettura:
chmod 774 ita
controlliamo come sono cambiati gli attributi dei file:
ls -l
Ora facciamo il logout e chiudiamo la sessione di lavoro di root:
exit
ora cambiamo utente (diventiamo “romano” - su romano) e “chiediamo”
in quale directory ci troviamo e di che gruppi facciamo parte:
pwd
groups
creiamo la cartella delle pizze in “ita” ed entriamoci:
mkdir /home/ita/pizze
cd /home/ita/pizze
facciamo la pizza margherita
touch margherita
impediamo al francese l'accesso alla cartella delle pizze ed alle loro
ricette:
chmod -R 770 /home/ita/pizze
creiamo la “carbonara”:
cd ../
touch carbonara
impediamo a tutti i tranne che a noi romani di modificarla:
chmod 744 carbonara
infine usciamo:
exit
Ora facciamo un paio di test “di resistenza”.
Diventiamo “luis”.
su luis
Tentiamo poi di vedere che pizze si fanno in italia:
ls /home/ita/pizze
Una volta fallito il tentativo, usciamo e rientriamo come milanese (su
milanese).
Successivamente proviamo a cancellare la ricetta della carbonara:
rm /home/ita/carbonara
Abbiamo fallito ancora! Usciamo e rientriamo come root.
eliminiamo gli utenti creati:
deluser romano
deluser milanese
deluser luis
eliminiamo le cartelle degli utenti e “ita”:
rm
rm
rm
rm
-r
-r
-r
-r
/home/ita
/home/romano
/home/milanese
/home/luis
cancelliamo i gruppi “italiani” e “francesi”:
groupdel italiani
groupdel francesi