5.1 Concepte generale
5.2 Fisiere specifice
5.3 Management conturi
5.4 su & sudo
5.5 Monitorizare useri
Concepte generale
Conturile de utilizator permit sistemului de operare sa identifice si sa restrictioneze accesul la resurse. Administrarea conturilor de utilizator reprezinta una dintre principalele sarcini ale unui administrator de sistem.
In Linux sau in Unix fiecare actiune care are loc (proces care ruleaza) sau fiecare resursa de tip fisier este controlata de un anumit utilizator.
Exista 2 categorii principale de utilizatori:
1. useri de sistem.
Fiecare daemon care ruleaza foloseste un user pentru a avea acces la resurse si pentru a executa taskurile necesare.
Definitie
Un daemon este un proces care ruleaza in background fara interactiunea unui utilizator.
Exemplu: httpd ruleaza sub userul wwwuser si wwwgroup, sendmail ruleaza sub userul mail etc.
Important
In Linux si Unix orice proces sau daemon ruleaza cu drepturile utilizatorului care-l lanseaza in executie.
Exemplu: daca root lanseaza un proces, procesul are acces total asupra sistemului. Daca un utilizator normal lanseaza acelasi proces, procesul va avea acces doar asupra fisierelor la care are acces utilizatorul si in acelasi mod.
Acest concept este fundamental, iar pe el se bazeaza o mare parte din securitatea generala Linux/Unix.
2. useri persoane.
Se autentifica in general prin username si parola. Un asemenea cont de user este format din: username, parola, home directory, mediul de lucru (environment) - $PATH, umask, shell-ul folosit etc.
Fiecare user este identificat printr-un UID. UID este in general pe 16 sau 32 de biti (intre 0 si 65535 sau 0 si 4294967295). Userul root are UID = 0.
Cu toate ca se recomanda ca UID-ul sa fie unic pentru fiecare utilizator acest lucru nu este obligatoriu. Daca mai multi utilizatori au acelasi UID ei vor fi tratati in mod identic de catre sistem.
Userii sunt organizati in grupuri pentru a se putea seta permisiuni la nivel de grup.
Fiecare user face parte din unul sau mai multe grupuri. Exista deci pentru fiecare user un grup principal (cel definit in/etc/passwd) si optional mai multe grupuri secundare.
Fiecare grup este identificat printr-un nr. unic numit GID.
Fisiere specifice
1. /etc/passwd
Userii sistemului se gasesc in fisierul /etc/passwd.
Structura acestuia este formata din campuri separate prin ":" (doua puncte) astfel:
user_name:parola:uid:gid_principal:comentariu:home_directory:shell_default
Exemplu
|
stud:x:500:500:User principal:/home/stud:/bin/bash
user1:x:501:501:user folosit pentru teste:/home/user1:/bin/bash
sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false
|
Daca in loc de parola in /etc/passwd este "x" parola se gaseste in fisierul /etc/shadow (hash-ul acesteia sau criptata). Comanda pwck verifica integritatea fisierului /etc/passwd
2. /etc/shadow
Structura fisierului /etc/shadow este urmatoarea:
username:password:last_change:min:max:warn:inactive:expire
username: userul din /etc/passwd. Reprezinta legatura intre fisierul /etc/passwd si /etc/shadow
password: forma criptata a parolei sau hash-ul acesteia
last_change: nr. de zile de la 1 Ian 1970 pana in ziua in care a avut loc ultima schimbare a parolei
min: nr minim de zile intre doua schimbari succesive
max: nr maxim de zile intre doua schimbari succesive
warn: nr. de zile dinaintea expirarii parolei in care userul este avertizat
inactive: nr de zile de la expirarea parolei si pana cand contul este dezactivat
expire: nr. de zile de la 1 Ian 1970 de cand contul este dezactivat
In fisierul /etc/login.defs se gasesc informatii care vor fi folosite default in momentul in care se creaza un user (lungimea minima a parolei, in cat timp expira contul etc).
3. /etc/group
Grupurile se gasesc in fisierul /etc/group
Structura acestuia este formata din campuri separate prin ":" (doua puncte) astfel:
group_name:parola:GUID:userii_din_acest_grup
Exemplu
|
programatori:x:100:dan,vali,george
root:x:0:root
|
Management conturi
Administrarea conturilor de utilizator presupune adaugarea de noi conturi, schimbarea parametrilor unui cont (parola, grupuri, etc), stergerea de conturi etc.
Exista 3 modalitati principale de a administra conturile utilizatorilor:
1.Editarea directa a fisierelor care contin informatii despre useri, grupuri si parole folosind editorul preferat cum ar fi VI.
Fiesierele care trebuie modificate sunt: /etc/passwd, /etc/shadow si /etc/group
Aceasta metoda trebuie evitata fiindca poate duce la erori si deci la instabilitate.
2.Admistrarea folosind unelte grafice
Fiecare distributie de Linux are propriile utilitare.
In Fedora in KDE si GNOME: System Settings -> Users and Groups
De multe ori, in special pe calculatoare cu rol de server mediul grafic nu este instalat sau nu ruleaza. In plus de cele mai multe ori administrarea se face remote prin ssh deci aceasta metoda nu ne este mereu la indemana.
3.Folosind comenzi de shell in consola.
a) Pentru adaugare/modificare/stergere useri: useradd, userdel, usermod
useradd OPTIONS USER -> adauga un utilizator
-c 'comment'
-d home directory
-g grupul principal
-G grup1, ... grupN
-s shell
-u uid
-m create home dir. Daca se foloseste optiunea -k skeleton_dir, fisierele si directoarele din scheleton_dir vor fi copiate in home, daca nu vor fi copiate cele din /etc/skel
-k skeleton_dir (doar impreuna cu -m)
Exemplu
|
useradd -c 'dan programator' -d /home/dan -m -g programatori -G users,office -s /bin/bash -u 7878 dan
|
userdel -r USER -> sterge un user si grupul principal corespunzator (daca nu mai exista useri in acel grup).
Optiunea -r se refera la faptul ca va fi sters si home directory.
passwd USER -> modifica parola utilizatorului user
usermod USER -> modifica datele unui user. Command usermod foloseste aceleasi optiuni ca si useradd
Exemplu
|
usermod -c 'dan contabilitate' -d /home/dan2 -m -g contabilitate -G users,office -s /bin/bash -u 80 dan
|
b) Pentru adaugare/stergere/modificare grupuri: groupadd, groupdel, groupmod
Exemplu
|
groupadd programatori
groupdel programatori
groupmod -n profesori programatori - schimba denumirea grupului programatori in profesori.
|
Unui grup i se poate seta o parola folosind comanda gpasswd.
Exemplu: gpasswd programatori
Aceasta este ceruta in momentul in care un utilizator doreste sa ruleze un shell (sa devina parte a unui grup pentru a avea permisiunile grupului respectiv) cu un alt GUID folosind comanda:
newgrp NOUL_GROUP.
Modificare owner/grup owner pentru un fisier sau director
Fiecare fisier sau director are un owner si un grup owner. Acestea fac parte din structura inodului unui fisier respectiv director. Default ownerul unui fisier este userul care-l creaza, iar grupul owner al fisierului este grupul principal al userului care creaza fisierul sau directorul.
Exemplu: Daca userul dan creaza un fisier numit a.txt, fisierul il va avea owner pe dan, iar grupul owner al fisierului va fi grupul principal din care face parte dan. Pentru a schimba ownerul si grupul owner al unui fiser/director se foloseste comandachown si chgrp. root este singurul user care poate modifica ownerul respectiv grupul owner pentru fisiere si directoare.
Exemplu
|
1. Schimba ownerul fisierului a.txt in paul
chown paul a.txt
2. Schimba grupul owner al directorului /home/programe in programatori
chgrp programatori /home/programe
3. Se schimba in mod recursiv atat ownerul cat si grupul owner al directorului /home/programe in dan respectivprogramatori. Modul recursiv se refera la schimbarea ownerului si grupului atat pentru director cat si pentru toate subdirectoarele si fisierele continute de acesta. Acest mod de folosire al comenzii chown face ca comanda chgrpsa fie folosita extrem de rar in practica.
chown -R paul.programatori /home/programe
|
Important
Atentie! Intre grupul owner al unui fisier si grupul principal sau grupurile secundare ale ownerului fisierului nu exista legatura. Un fiser poate sa-l aiba ca owner pe userul dan, ca grup owner sa apartina grupului programatori fara ca dan sa faca parte din grupul programatori
Dostları ilə paylaş: |