Differences

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

Link to this comparison view

uso:cursuri:curs-04 [2017/02/23 16:20]
razvan.deaconescu
uso:cursuri:curs-04 [2022/10/25 01:18] (current)
sergiu.weisz
Line 1: Line 1:
-====== Curs 04 - Procese ​și utilizatori =======+====== Curs 04 - Rețelistică ​și Internet ​======
  
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-04/curs-04-handout.pdf | Slide-uri curs]] +  ​* [[https://​docs.google.com/​presentation/​d/​1QHsMSnvUSJ_9oFodgKCiwqDBxIpHhmxq/​edit?​usp=sharing&​ouid=108131427433094834232&​rtpof=true&​sd=true| Slide-uri curs]] 
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-04/curs-04-handout-4on1-notes.pdf | Handout 4on1 and notes space]] +  * **Suport de curs** 
-  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-04/curs-04-handout-8on1.pdf | Handout 8on1]] +    * [[https://​github.com/​systems-cs-pub-ro/​carte-uso/​releases | Utilizarea sistemelor de operare]] 
-  * **Cuvinte cheie**: ​proces''​PID''​''​Task Manager''​''​ps''​''​init''​ierarhie de procese''​pstree''​''​top''​creare procesterminare processemnal, ''​kill'', ​utilizator''​UID'',​ parolă, privilegiat, ''​root'',​ ''​sudo''​, ''​su'',​ grup de utilizatori+        * Secțiunea 11 - Rețelistică și Internet 
 + 
 +<​HTML>​ 
 +  <​center>​ 
 +    <iframe src="​https://​docs.google.com/​presentation/​d/​e/​2PACX-1vQjetisYkWQ5Sp39D7AOgXc6lZVWwlhepwDSkY1fJ-m9DzUq2C_7UAYUpiwCzSGsg/​embed?​start=false&​loop=false&​delayms=3000"​ frameborder="​0"​ width="​480"​ height="​389"​ allowfullscreen="​true"​ mozallowfullscreen="​true"​ webkitallowfullscreen="​true"></​iframe>​ 
 +  </​center>​ 
 +</​HTML>​ 
 + 
 +/* 
 + 
 +====== Curs 03 - Dezvoltarea programelor ======= 
 + 
 +  ​* [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-03/curs-03-handout.pdf | Slide-uri curs]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-03/curs-03-handout-4on1-notes.pdf | Handout 4on1 and notes space]] 
 +  * [[http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-03/curs-03-handout-8on1.pdf | Handout 8on1]] 
 +  * **Cuvinte cheie**: ​cod sursă (//source code//)cod mașină (//machine code//)//coding style//editorIDEpachet softwarefișier executabilfișier obiectcompilarelinkinglimbajul C, ''​gcc'', ​modularizaresistem de build, ''​make'',​ ''​Makefile''​
   * **Suport de curs**   * **Suport de curs**
     * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC | Introducere în sisteme de operare]]     * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC | Introducere în sisteme de operare]]
-      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA111 | Capitolul ​5 - Procese]] +      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA319 | Capitolul ​11]] 
-      * Secțiunea 3.+      * [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA469 | Capitolul 14]]
-      * Secțiunea 4.+
-      * Secțiunea 10.2.3 +
-      * Secțiunea 10.2.4 +
-      * Secțiunea 10.3.3 (paragraful ,,​sudo''​)+
  
 <​HTML>​ <​HTML>​
   <​center>​   <​center>​
-    <iframe src="​https://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-04/curs-04-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​+    <iframe src="​https://​docs.google.com/​viewer?​url=http://​elf.cs.pub.ro/​uso/​res/​cursuri/​curs-03/curs-03-handout.pdf&​embedded=true"​ width="​600"​ height="​480"​ style="​border:​ none;">​
     </​iframe>​     </​iframe>​
   </​center>​   </​center>​
 </​HTML>​ </​HTML>​
 +
 +
 +====== Demo =======
 +
 +Cuvantul utilizator defineste in primul rand persoana fizica care dorește să acceseze resursele și funcționalitățile unui sistem de calcul. Din punct de vedere al sistemului de operare însă, utilizatorul presupune existența unui cont de utilizator prin intermediul căruia sunt accesate resursele puse acestuia la dispozitie în sistem (de exemplu fișierele) si care poate crea procese. ​
 +
 +Clasificare:​
 +  *Utilizatori de sistem – permit crearea de procese si detin resurse precum fisiere
 +  *Utilizatori de aplicatii – permit accesul la resursele gestionate de aplicatii si nu de sistemul de operare
 +
 +Un prompt BASH default arată utilizatorul care s-a logat pe sesiunea shell curentă. În acest caz, utilizatorul este student.
 +<​code>​
 +student@uso:​~$
 +</​code>​
 +
 +Informațiile despre utilizatori sunt stocate in fișierul ''/​etc/​passwd''​
 +<​code>​
 +student@uso:​~$ cat /etc/passwd
 +root:​x:​0:​0:​root:/​root:/​bin/​bash
 +mihai:​x:​1001:​1001:/​home/​mihai:/​bin/​bash
 +maria:​x:​1002:​1002:/​home/​maria:/​bin/​bash
 +</​code>​
 +
 +Fiecare utilizator este identificat în mod unic în funcție de UID (User Identifier). De asemenea, un utilizator ​ are atribuit si un director ''​home''​. Pentru a accesa directorul home, folosim caracterul ''​~'',​ acesta substituind calea către directorul home al utilizatorului curent:
 +<​code>​
 +student@uso:​~$ cd ~
 +student@uso:​~$ pwd
 +/​home/​student
 +</​code>​
 + 
 +Observăm că directorul home al utilizatorului student este ''/​home/​student''​. Utilizatorul ''​root''​ (utilizatorul privilegiat in Unix) are UID-ul 0 si home-ul in ''/​root''​.
 + 
 +Pentru ușurința în realizarea unor configurații in sistem, utilizatorii pot fi organizați în grupuri. Un grup poate contine mai multi utilizatori,​ iar un utilizator poate face parte din mai multe grupuri. Fiecare grup folosește un identificator unic numit GID (Group Identifier). GID-ul 0 este rezervat grupului utilizatorului root.
 + 
 +Fisierul ''/​etc/​group''​ conține informatii despre toate grupurile din sistem.
 +
 +Mai jos este un demo unde vor fi prezentate comenzile menționate în curs, alături de exemple de folosire a acestora.
 +
 +==== Comanda su ====
 +
 +Comanda su (substitute user) este folosita pentru a schimba utilizatorul current.
 +<​code>​student@uso:​~$ su mihai
 +Password:
 +mihai@uso:/​home/​student$
 +</​code>​
 +
 +De cele mai multe ori, comanda su este folosita alaturi de sudo (substitute usor do) pentru a accesa un shell cu drepturi privilegiate. Daca dupa utilitarul su nu se da un nume de utilizator atunci se va considera ca se doreste accesarea utilizatorului root.
 +<​code>​student@uso:​~$ sudo su
 +[sudo] password for student:
 +root@uso:/​home/​student#​
 +</​code>​
 +
 +Se mai poate folosi si comanda ''​sudo bash''​ pentru a obtine un astfel de shell.
 +Aceasta comanda va schimba directorul current în home-ul root-ului. ​        
 +<​code>​student@uso:​~$ sudo bash
 +[sudo] password for student:
 +root@uso:~#
 +</​code>​
 + 
 +<​note>​Utilizatorul care executa comanda cu sudo trebuie sa aiba drept de sudo. Altfel se va obtine urmatorul rezultat.</​note>​
 +<​code>​mihai@uso:​~$ sudo su
 +[sudo] password for mihai:
 +mihai is not in the sudoers file.  This incident will be reported.
 +mihai@uso:​~$
 +</​code>​
 +
 +==== Comenzile id și finger ====
 +
 +Comenzile id si finger se folosesc pentru a afla informatii despre un anumit utilizator.
 +<​code>​student@uso:​~$ id mihai
 +uid=1001(mihai) gid=1001(mihai) groups=1001(mihai)
 +student@uso:​~$ finger mihai
 +Login: mihai      Name: Mihai Popescu
 +Directory: /​home/​mihai Shell:​ /bin/bash
 +Office: 101
 +Never logged in.
 +No mail.
 +No Plan.
 +</​code>​
 +
 +==== Comenzile w, who și pinky ====
 +
 +Aceste comenzi ofera informatii despre userii logati in sistem.
 +<​code>​student@uso:​~/​Documents$ w
 + ​12:​18:​08 up 2 days, 18:​27, ​ 3 users, ​ load average: 0,26, 0,19, 0,08
 +USER TTY      FROM         ​ LOGIN@ ​  ​IDLE ​  ​JCPU ​  PCPU WHAT
 +student ​ :0       :​0 ​          ​ 11:​57 ​  ?​xdm? ​  ​7:​05 ​  0.01s /​usr/​lib/​gdm3/​gdm-x-session --run-script
 +maria tty2 ​    ​- ​           12:​18 8.00s ​ 0.05s  0.05s -bash
 +mihai :​1 ​      :​1 ​          ​ 12:​15 ​  ?​xdm? ​  ​7:​05 ​  0.01s /​usr/​lib/​gdm3/​gdm-x-session --run-script
 +student@uso:​~/​Documents$ who
 +student ​ :0           ​2020-10-13 11:57 (:0)
 +maria tty2 ​        ​2020-10-13 12:18
 +mihai :​1 ​          ​2020-10-13 12:15 (:1)
 +</​code>​
 +Comanda pinky poate produce si un output asemanator cu finger.
 +<​code>​
 +student@uso:​~$ pinky -l student
 +Login name: student ​                 In real life:  Student User
 +Directory: /​home/​student         Shell: ​ /bin/bash
 +</​code>​
 +
 +==== Comanda whoami ====
 +
 +Comanda whoami afiseaza username-ul utilizatorului current.
 +<​code>​
 +student@uso:​~$ whoami
 +student
 +student@uso:​~$
 +</​code>​
 +
 +==== Comenzile users și groups ====
 +
 +Comanda users afiseaza userii logati in system.
 +<​code>​
 +mihai@uso:/​home/​student$ users
 +student
 +mihai@uso:/​home/​student$
 +</​code>​
 +Comanda groups afiseaza grupurile din care face parte un utilizator dat ca parametru comenzii. Daca nu se da niciun utilizator, atunci se va lua utilizatorul current.
 +<​code>​
 +student@uso:​~$ groups
 +student adm cdrom sudo dip plugdev lpadmin sambashare
 +student@uso:​~$ groups root
 +root : root
 +student@uso:​~$ groups student
 +student : student adm cdrom sudo dip plugdev lpadmin sambashare
 +student@uso:​~$ groups mihai
 +mihai : mihai
 +</​code>​
 +
 +==== Comanda passwd ====
 +
 +Comanda passwd este folosita pentru a schimba parola unui utilizator.
 +Un utilizator neprivilegiat trebuie sa foloseasca sudo pentru a  schimba parola altui utilizator.
 +<​code>​
 +student@uso:​~$ sudo passwd mihai
 +Enter new UNIX password:
 +Retype new UNIX password:
 +passwd: password updated successfully
 +mihai@uso:/​home/​student$ passwd mihai
 +Changing password for mihai.
 +(current) UNIX password:
 +Enter new UNIX password:
 +Retype new UNIX password:
 +passwd: password updated successfully
 +</​code>​
 +
 +
 +==== Comenzile useradd și adduser ====
 +
 +Ambele comenzi sunt folosite pentru a adauga un user in sistem. Comanda adduser se foloseste de useradd, dar este mai user friendly.
 +<​code>​
 +student@uso:​~$ sudo useradd marcela
 +student@uso:​~$ id marcela
 +uid=1003(marcela) gid=1003(marcela) groups=1003(marcela)
 +student@uso:​~$ sudo adduser marcela
 +Adding user `marcela'​ ...
 +Adding new group `marcela'​ (1003) ...
 +Adding new user `marcela'​ (1003) with group `marcela'​ ...
 +Creating home directory `/​home/​marcela'​ ...
 +Copying files from `/​etc/​skel'​ ...
 +Enter new UNIX password:
 +Retype new UNIX password:
 +passwd: password updated successfully
 +Changing the user information for marcela
 +Enter the new value, or press ENTER for the default
 +    Full Name []:
 +    Room Number []:
 +    Work Phone []:
 +    Home Phone []:
 +    Other []:
 +Is the information correct? [Y/n]
 +student@uso:​~$
 +</​code>​
 +
 +==== Comenzile userdel si deluser ====
 +
 +Ambele comenzi sunt folosite pentru a sterge un utilizator. Comanda deluser este considerate mai interactive.
 +<​code>​
 +student@uso:​~$ sudo deluser marcela
 +Removing user `marcela'​ ...
 +Warning: group `marcela'​ has no more members.
 +Done.
 +student@uso:​~$ finger marcela
 +finger: marcela: no such user.
 +student@uso:​~$ sudo userdel marcela
 +student@uso:​~$ finger marcela
 +finger: marcela: no such user.
 +</​code>​
 +
 +==== Comenzile groupadd, addgroup, groupdel si delgroup ====
 +
 +Groupadd si addgroup se folosesc pentru a adauga noi grupuri in system. Nu este o mare diferenta intre aceste comenzi, addgroup fiind doar mai user friendly.
 +<​code>​
 +student@uso:​~$ sudo groupadd colegi1
 +student@uso:​~$ sudo addgroup colegi2
 +Adding group `colegi2'​ (GID 1004) ...
 +Done.
 +student@uso:​~$ cat /etc/group | grep colegi
 +colegi1:​x:​1003:​
 +colegi2:​x:​1004:​
 +student@uso:​~$ sudo delgroup colegi1
 +Removing group `colegi1'​ ...
 +Done.
 +student@uso:​~$ sudo groupdel colegi2
 +student@uso:​~$
 +</​code>​
 +Groupdel si delgroup se folosesc pentru a sterge grupuri din sistem. La fel ca la comenzile anterioare, rezultatul lor nu difera foarte mult, delgroup fiind mai interactive si acceptand mai multe optiuni.
 +
 +
 +==== Comenzile usermod si groupmod ====
 +
 +Comanda usermod este folosita pentru a modifica un cont de utilizator. In functie de optiunile date acestei comenzi, putem schimba mai multe lucruri la un cont de utilizator.
 +Spre exemplu, putem schimba home directory-ul unui user.
 +<​code>​
 +student@uso:​~$ finger marcela
 +Login: marcela ​                               Name:
 +Directory: /​home/​marcela ​         Shell: /bin/bash
 +Never logged in.
 +No mail.
 +No Plan.
 +student@uso:​~$ sudo usermod -d /​home/​marcela_dir marcela
 +student@uso:​~$ finger marcela
 +Login: marcela ​                               Name:
 +Directory: /​home/​marcela_dir ​      ​ Shell:​ /bin/bash
 +Never logged in.
 +No mail.
 +No Plan.
 +student@uso:​~$
 +</​code>​
 +Pentru a adauga un user la un grup se procedeaza in felul urmator:
 +<​code>​
 +student@uso:​~$ groups marcela
 +marcela : marcela
 +student@uso:​~$ sudo addgroup studenti
 +Adding group `studenti'​ (GID 1004) ...
 +Done.
 +student@uso:​~$ sudo usermod -a -G studenti marcela
 +student@uso:​~$ groups marcela
 +marcela : marcela studenti
 +student@uso:​~$
 +</​code>​
 +Comanda groupmod este folosita pentru a modifica un grup din system.
 +De exemplu, putem modifica numele unui grup:
 +<​code>​
 +student@uso:​~$ sudo groupmod -n absolventi studenti
 +student@uso:​~$ cat /etc/group | grep absolventi
 +absolventi:​x:​1004:​marcela
 +student@uso:​~$
 +</​code>​
 +
 +==== Comanda chsh ====
 +
 +Comanda chsh este folosita pentru a schimba shell-ul de login al utilizatorului.
 +<​code>​
 +student@uso:​~$ finger marcela | grep Shell
 +Directory: /​home/​marcela ​         Shell: /bin/bash
 +student@uso:​~$ sudo chsh marcela
 +Changing the login shell for marcela
 +Enter the new value, or press ENTER for the default
 +    Login Shell [/​bin/​bash]:​ /bin/sh
 +student@uso:​~$ finger marcela | grep Shell
 +Directory: /​home/​marcela ​         Shell: /bin/sh
 +</​code>​
 +
 +==== Comanda chfn ====
 +
 +Comanda chfn ofera posibilitatea de a schimba informatii legate de contul de utilizator.
 +<​code>​
 +student@uso:​~$ sudo chfn marcela
 +Changing the user information for marcela
 +Enter the new value, or press ENTER for the default
 +    Full Name []: Marcela Popescu
 +    Room Number []: 120
 +    Work Phone []: 074234324
 +    Home Phone []: 025543455
 +    Other []: info
 +student@uso:​~$ finger marcela
 +Login: marcela ​                     Name: Marcela Popescu
 +Directory: /​home/​marcela ​         Shell: /bin/bash
 +Office: 120, 074234324 ​                   Home Phone: 025543455
 +Never logged in.
 +No mail.
 +No Plan.
 +student@uso:​~$
 +</​code>​
 +
 +==== Comanda chpasswd ====
 +
 +Comanda chpasswd este folosita pentru a schimba parolele mai multor useri in cadrul unei singure comenzi. Odata ce este rulata comanda, pe urmatoarele linii trebuie sa completam informatiile sub forma user:​parola. Pentru a salva parolele se tasteaza combinatia CTRL+D.
 +<​code> ​
 +student@uso:​~$ sudo chpasswd
 +marcela:​1234
 +mihai:4321
 +maria:mihai
 +student@uso:​~$
 +</​code>​
 +
 +==== Comanda chown ====
 +
 +Comanda chown este folosita pentru a schimba utilizatorul care este owner pentru un fisier.
 +<​code>​
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-- 1 dode dode 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chown student terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-- 1 student dode 0 oct 14 13:17 terminus
 +</​code>​
 +Se poate observa mai sus ca am schimbat utilizatorul care este owner din dode in student.
 +
 +==== Comanda chgrp ====
 +
 +Comanda chgrp se foloseste pentru a schimba grupul unui fisier.
 +<​code>​
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-- 1 dode dode 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chgrp student terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-- 1 dode student 0 oct 14 13:17 terminus
 +</​code>​
 +Mai sus am schimbat grupul care este owner din dode in student.
 +
 +==== Comanda chmod ====
 +
 +Comanda chmod este folosita pentru a schimba permisiunile pe care le detine un user sau un grup pentru un fisier.
 +In urmatorul exemplu se executa o serie de operatii folosind comanda chmod, rezultatul lor putand fi observat cu comanda ls -l folosita impreuna cu grep.
 +<​code>​
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-x 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod o-x terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rw-rw-r-- 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod u+x terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rwxrw-r-- 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod g+x terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rwxrwxr-- 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod o+x terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rwxrwxr-x 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod o+w terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rwxrwxrwx 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod g-w terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-rwxr-xrwx 1 dode student 0 oct 14 13:17 terminus
 +student@uso:/​home/​dode$ sudo chmod a-w terminus
 +student@uso:/​home/​dode$ ls -l | grep terminus
 +-r-xr-xr-x 1 dode student 0 oct 14 13:17 terminus
 +</​code>​
 +*/
uso/cursuri/curs-04.1487859637.txt.gz · Last modified: 2017/02/23 16:20 by razvan.deaconescu
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