This is an old revision of the document!
În acest demo dorim să ne acomodăm cu cele mai importante comenzi utilizate atunci când lucrăm cu utilizatori și grupuri de utilizatori.
sudo apt-get install <numele comenzii>
pentru a le instala.
Exemplu: sudo apt-get install finger
.
În continuare, vom vedea cum putem afla informații despre utilizatori.
În sistem exista cel puțin doi utilizatori: utilizatorul cu care ne-am logat (student
) și utilizatorul privilegiat root
.
Pentru a afla informații despre un utilizator sau pentru a verifica dacă un anumit utilizator există, putem folosi comanda finger
.
student@uso:~$ finger student Login: student Name: Student User Directory: /home/student Shell: /bin/bash On since Sun Sep 16 15:07 (EEST) on :0 from :0 (messages off) No mail. No Plan. student@uso:~$ finger root Login: root Name: root Directory: /root Shell: /bin/bash Never logged in. No mail. No Plan.
În outputul comenzii observăm informații despre utilizatorul dat ca parametru: directorul home
, numele complet, shell-ul, etc.
O altă comandă utilă este id
. Cum și numele sugerează, ne dă id-ul utilizatorului (uid
) dar și id-urile grupurilor (gid
) din care face parte utilizatorul curent.
student@uso:~$ id uid=1000(student) gid=1000(student) groups=1000(student),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
Pentru a vedea cu ce utilizator suntem logați, putem folosi comanda whoami
.
student@uso:~$ whoami student
Să presupunem că pe un sistem avem 100 de utilizatori și vrem ca toți să aibă drepturile necesare instalării de noi pachete, dar să nu poată adăuga/șterge alți utilizatori. Pe lângă faptul că ar fi foarte foarte nesigur ca 100 de persoane să știe parola contului de root, ar trebui să ne bazăm pe faptul că ei nu vor face altceva decât să instaleze pachete. Soluția acestei probleme este comanda sudo
.
Această comandă permite execuția de comenzi de către utilizatori neprivilegiați cu drepturi de utilizatori privilegiați. Se poate configura ce utilizatori au drept să execute această comandă și ce comenzi pot rula ca utilizator privilegiat.
De exemplu, dacă dorim să instalăm pachetul cowsay
ca utilizatorul student
, vom primi o eroare de permisiune.
student@uso:~$ apt-get install cowsay E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
După cum observăm din eroarea afișată în output, nu avem drepturi să instalăm pachete.
Pentru a rezolva această problemă folosim comanda sudo
.
student@uso:~$ sudo apt-get install cowsay [sudo] password for student: student@uso:~$ cowsay "Meuh" ______ < Meuh > ------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
sudo
cere parola utilizatorului curent (în cazul nostru utilizatorul student
), nu pe cea a utilizatorului root
.
Pentru a schimba utilizatorul cu care suntem autentificați, folosim comanda su
(switch user). Comanda lansează o sesiune nouă de terminal în contextul noului utilizator, deci pentru a reveni la utilizatorul precedent este suficient să rulăm comanda exit
pentru a termina noua sesiune.
Înlănțuirea de comenzi de mai jos schimbă utilizatorul curent din student
în root
, verifică că acum utilizatorul logat este root
, închide sesiunea utilizatorului root
și revine la utilizatorul student
folosind comanda exit
.
Întrucât nu cunoaștem parola utilizatorului root
, putem folosi această comanda împreună cu comanda sudo
.
student@uso:~$ sudo su root [sudo] password for student: root@uso:/home/student# whoami root root@uso:/home/student# exit exit student@uso:~$
În continuare vom crea noi utilizatori, iar ulterior îi vom șterge. Pentru aceasta, vom folosi comenzile adduser și deluser .
useradd
și userdel
.
Dorim să creăm utilizatorul bogdan
. Mai întâi verificăm că acesta nu există, după care îl adăugăm.
student@uso:~$ finger bogdan
finger: bogdan: no such user.
student@uso:~$ sudo adduser bogdan Adding user `bogdan' ... Adding new group `bogdan' (1002) ... Adding new user `bogdan' (1002) with group `bogdan' ... Creating home directory `/home/bogdan' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for bogdan Enter the new value, or press ENTER for the default Full Name []: Bogdan Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
În outputul comenzii anterioare observăm mai multe informații utile la adăugarea unui nou utilizator:
/etc/skel
finger
.bogdan@uso:~$ finger bogdan Login: bogdan Name: Bogdan Directory: /home/bogdan Shell: /bin/bash Never logged in. No mail. No Plan.
După aceasta ne autentificăm ca utilizatorul bogdan
. Argumentul -
este folosit pentru comanda su
pentru a schimba directorul curent la home-ul noului utilizator.
student@uso:~$ su - bogdan Password: bogdan@uso:~$ pwd /home/bogdan bogdan@uso:~$ whoami bogdan
Dacă utilizatonul nu mai este necesar în sistem, îl ștergem folosind comanda deluser
.
student@uso:~$ sudo deluser bogdan Removing user `bogdan' ... Warning: group `bogdan' has no more members. Done. student@uso:~$ finger bogdan finger: bogdan: no such user.
Pentru a schimba parola utilizatorului curent folosim comanda passwd
, fără argumente. Înainte de introducerea unei parole noi, trebuie să validăm parola veche.
student@uso:~$ passwd Changing password for student. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Dacă dorim schimbarea parolei altui utilizator, îi putem oferi comenzii passwd
numele acestuia ca parametru.
root@uso:~# passwd student Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
În Linux există un fișier ce stochează informații despre toți utilizatorii din sistem.
Acest fișier este /etc/passwd
, este un fișier text și conține o listă cu utilizatorii din sistem și informații despre fiecare din ei, cum ar fi: user ID
, group ID
, home directory
, etc. Astfel, de fiecare dată când adăugăm un nou utilizator, se adaugă automat și o intrare în acest fișier.
Pentru mai multe detalii puteți accesa pagina de Wikipedia.
student@uso:~$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin ...
Exerciții
ana
, bogdan
și david
și să se afișeze informații utile despre aceștia (grupurile din care fac parte, directorul home, etc.).
-
pentru comanda su
:
student@uso:~$ su - ana Password: ana@uso:~$
La crearea unui utilizator, se crează în mod automat și un grup cu același nume. Dacă dorim să realizăm o organizare diferită a utilizatorilor, putem să creăm noi grupuri.
Pentru crearea unui grup se folosește comanda addgroup
, iar pentru ștergerea unui grup folosim delgroup
.
student@uso:~$ sudo addgroup studenti [sudo] password for student: Adding group `studenti' (GID 1003) ... Done.
Pentru a adăuga un utilizator în unul sau mai multe grupuri se foloseste comanda usermod
ca in exemplul de mai jos.
Comanda id
a fost apelată înainte și după adăugarea utilizatorului bogdan
în grupul studenti
pentru a verifica dacă adăugarea a funcționat.
student@uso:~$ id bogdan uid=1002(bogdan) gid=1002(bogdan) groups=1002(bogdan) student@uso:~$ sudo usermod bogdan -G studenti student@uso:~$ id bogdan uid=1002(bogdan) gid=1002(bogdan) groups=1002(bogdan),1003(studenti)
Exerciții
ana
și david
în grupul studenti
.dan
și elena
și grupul asistenti
și adăugați acești utilizatori în noul grup.asistenti
creat anterior și utilizatorii asociați.
deluser
și delgroup
urmate de numele utilizatorului, respectiv numele grupului.