Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:laborator-03:users [2020/10/27 09:16]
liza_elena.babu [Schimbarea parolei (passwd)]
— (current)
Line 1: Line 1:
-===== Utilizatori ===== 
- 
-Î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. 
- 
-<note tip> 
-Să nu uităm de [[uso:​resurse:​cheatsheet|cheatsheetul]] pe care îl putem folosi ca să ne reamintim cele mai frecvente comenzi. 
-</​note>​ 
- 
-<note warning> 
-S-ar putea ca unele comenzi să nu fie instalate, folosiți ''​sudo apt-get install <numele comenzii>''​ pentru a le instala. 
-Exemplu: ''​sudo apt-get install finger''​. 
-</​note>​ 
- 
-==== Utilizatori privilegiați si neprivilegiați (id, finger, whoami) ==== 
- 
-Î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''​. 
- 
-<code bash> 
-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. 
-</​code>​ 
- 
-Î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. 
- 
-<code bash> 
-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) 
-</​code>​ 
- 
-Pentru a vedea cu ce utilizator suntem logați, putem folosi comanda ''​whoami''​. 
-<code bash> 
-student@uso:​~$ whoami 
-student 
-</​code>​ 
- 
-==== Rularea comenzilor ca utilizator privilegiat (sudo) ==== 
- 
-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. 
- 
-<code bash> 
-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? 
-</​code>​ 
- 
-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''​. 
- 
-<code bash> 
-student@uso:​~$ sudo apt-get install cowsay 
-[sudo] password for student: 
-student@uso:​~$ cowsay "​Meuh"​ 
- ​______ 
-< Meuh > 
- ​------ 
-        \   ^__^ 
-         ​\ ​ (oo)\_______ 
-            (__)\       )\/\ 
-                ||----w | 
-                ||     || 
- 
- 
-</​code>​ 
- 
-<note important>​ 
-Comanda ''​sudo''​ cere parola utilizatorului curent (în cazul nostru utilizatorul ''​student''​),​ nu pe cea a utilizatorului ''​root''​. 
-</​note>​ 
- 
-==== Schimbarea utilizatorului curent (su) ==== 
- 
-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''​. 
- 
-<code bash> 
-student@uso:​~$ sudo su root 
-[sudo] password for student: 
-root@uso:/​home/​student#​ whoami 
-root 
-root@uso:/​home/​student#​ exit 
-exit 
-student@uso:​~$ 
-</​code>​ 
- 
-<note important>​ 
-De observat că atunci când schimbăm utilizatorul,​ nu se schimbă și directorul curent în directorul home al noului utilizator. 
-</​note>​ 
- 
-==== Gestiunea utilizatorilor (adduser/​deluser) ==== 
- 
-În continuare vom crea noi utilizatori,​ iar ulterior îi vom șterge. Pentru aceasta, vom folosi comenzile **adduser** și **deluser** . 
- 
-<note important>​ 
-Cele două comenzi sunt de fapt niște scripturi //wrapper// scrise în [[https://​www.perl.org|Perl]] prezente, în general, numai pe distribuții bazate pe [[http://​www.debian.org|Debian]] (cum ar fi Ubuntu). Comenzile pe care le apelează ele în spate sunt ''​useradd''​ și ''​userdel''​. 
-</​note>​ 
- 
-Dorim să creăm utilizatorul ''​bogdan''​. Mai întâi verificăm că acesta nu există, după care îl adăugăm. 
- 
-<code bash> 
-student@uso:​~$ finger bogdan 
-finger: bogdan: no such user. 
-</​code>​ 
- 
-<code bash> 
-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 
-</​code>​ 
- 
-În outputul comenzii anterioare observăm mai multe informații utile la adăugarea unui nou utilizator: 
-  * se creează un nou grup cu același nume 
-  * se creează home-ul utilizatorului 
-  * directorul home va copia structura de fișiere și directoare din directorul ''/​etc/​skel''​ 
-  * se cere o parolă și alte informații care sunt afișate la apelul comenzii ''​finger''​. 
- 
-<code bash> 
-bogdan@uso:​~$ finger bogdan 
-Login: bogdan ​                          Name: Bogdan 
-Directory: /​home/​bogdan ​                ​Shell:​ /bin/bash 
-Never logged in. 
-No mail. 
-No Plan. 
-</​code>​ 
- 
-După aceasta ne autentificăm ca utilizatorul ''​bogdan''​. Argumentul ''​-''​ este folosit pentru comanda ''​su''​ pentru a schimba directorul curent la home-ul noului utilizator. 
- 
-<code bash> 
-student@uso:​~$ su - bogdan 
-Password: 
-bogdan@uso:​~$ pwd 
-/​home/​bogdan 
-bogdan@uso:​~$ whoami 
-bogdan 
-</​code>​ 
- 
-Dacă utilizatonul nu mai este necesar în sistem, îl ștergem folosind comanda ''​deluser''​. 
- 
-<code bash> 
-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. 
-</​code>​ 
- 
-==== Schimbarea parolei (passwd) ==== 
- 
-Pentru a schimba parola utilizatorului curent folosim comanda ''​passwd'',​ fără argumente. Înainte de introducerea unei parole noi, trebuie să validăm parola veche. 
- 
-<code bash> 
-student@uso:​~$ passwd 
-Changing password for student. 
-(current) UNIX password: 
-Enter new UNIX password: 
-Retype new UNIX password: 
-passwd: password updated successfully 
-</​code>​ 
- 
-Dacă dorim schimbarea parolei altui utilizator, îi putem oferi comenzii ''​passwd''​ numele acestuia ca parametru. 
- 
-<code bash> 
-root@uso:~# passwd student 
-Enter new UNIX password: 
-Retype new UNIX password: 
-passwd: password updated successfully 
-</​code>​ 
- 
-==== Gestiunea utilizatorilor ==== 
- 
-Î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 [[https://​en.wikipedia.org/​wiki/​Passwd|Wikipedia]]. 
- 
-<code bash> 
-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 
-... 
-</​code>​ 
- 
-** Exerciții ** 
-  - Să se creeze utilizatorii:​ ''​ana'',​ ''​bogdan''​ și ''​david''​ și să se afișeze informații utile despre aceștia (grupurile din care fac parte, directorul home, etc.). 
- 
-<​note>​ 
-Când schimbăm utilizatorul curent, nu se modifică și directorul curent. Pentru a ne ajunge direct în home-ul noului utilizator, folosim argumentul ''​-''​ pentru comanda ''​su'':​ 
- 
-<code bash> 
-student@uso:​~$ su - ana 
-Password: ​ 
-ana@uso:~$ 
-</​code>​ 
-</​note>​ 
- 
-==== Gestiunea grupurilor de utilizatori ==== 
- 
-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''​. 
- 
-<code bash> 
-student@uso:​~$ sudo addgroup studenti 
-[sudo] password for student: ​ 
-Adding group `studenti'​ (GID 1003) ... 
-Done. 
-</​code>​ 
- 
-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. 
- 
-<code bash> 
-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) 
-</​code>​ 
- 
-**Exerciții** 
- 
-  - Adăugați și utilizatorii ''​ana''​ și ''​david''​ în grupul ''​studenti''​. 
-  - Creați utilizatorii ''​dan''​ și ''​elena''​ și grupul ''​asistenti''​ și adăugați acești utilizatori în noul grup. 
-  - Ștergeți grupul ''​asistenti''​ creat anterior și utilizatorii asociați. 
- 
-<note info> 
-Pentru ștergere folosiți comenzile ''​deluser''​ și ''​delgroup''​ urmate de numele utilizatorului,​ respectiv numele grupului. 
-</​note>​ 
  
uso/laboratoare/laborator-03/users.1603783012.txt.gz · Last modified: 2020/10/27 09:16 by liza_elena.babu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0