Documente Academic
Documente Profesional
Documente Cultură
Information Technology
4. Laboratory
Main Linux commands
Pentru a solicita închiderea calculatorului din linia de comandă, putem folosi comanda:
user@ubuntu:~$ halt
sau
user@ubuntu:~$ shutdown ‐h now
Rulată din contul dumneavoastră, imediat vi se va spune că ar trebui să fiți root pentru a o putea
rula. Utilizatorul de root este un utilizator privilegiat. Doar el poate rula task‐uri administrative,
are acces la toate comenzile, fișierele și serviciile. Practic, sistemul îi aparține lui în totalitate,
având acces la orice resursă existent în sistem. In Ubuntu, dar și în alte SO de tipul Linux înrudite
(de. ex. Raspbian ‐ Raspberry Pi OS), contul de root este invalidat în mod implicit astfel încat
nimeni să nu fie root. Pentru a verifica starea contului de root (sau a oricărui alt cont) utilizați
comanda:
user@ubuntu:~$ sudo passwd ‐S root
root L 05/25/2019 0 99999 7 ‐1
Comanda passwd este utilizată în mod normal la schimbarea parolei utilizatorului current sau
a oricărui alt utilizator. Dar aici, prin intermediul opțiunii -S (sau --status) se afișează informații
despre starea unui anumit cont. Rezultatul acestei comenzi are un număr de 7 campuri cu
următoarea semnificație:
Numele de login a utilizatorului;
1|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Starea parolei: L contul este blocat, NP contul nu are nici o parola, P dacă contul are o
parolă activă;
Data la care a fost schimbată ultima data parola;
“Vârsta” minimă a parolei;
“Vârsta” maximă a parolei;
Perioada de avertizare a exipirării parolei;
Perioada de inactivitate.
Observăm, din cele anterior prezentate, că userul root este invalidat. Deci, dacă am dori să
ne logăm ca un user de root, vom observa că acest lucru este imposibil:
user@ubuntu:~$ sudo login root
Ar fi riscant ca un utilizator să lucreze ca un user de root în mod constant – orice cal troian
sau orice alt tip de agresiune s‐ar propaga foarte ușor în sistem. De aceea, se oferă posibilitatea
de a obține drepturi administrative continue, folosind parola proprie (dar doar dacă sunt în acel
grup), prin intermediul comenzii sudo. În acest caz, comanda va fi:
user@ubuntu:~$ sudo su
[sudo] password for user:
root@ubuntu:/home/user#
Comanda su are semnificația de "substitute user" sau "switch user". Observați că ni se cere parola
utilizatorului current și nu a utilizatorului privilegiat root.
Promptul se schimbă pentru a indica faptul că sunteți un utilizator privilegiat. Caracterul $
indică un utilizator neprivilegiat, caracterul # indică un utilizator privilegiat. Dar, nu vă bazați
întodeauna pe ce indică promptul. Acesta poate fi configurat altfel prin intermediul variabilei PS1.
Pentru a afla în orice moment ca ce utilizator suntem autentificați, indiferent de ceea ce spune
promptul putem folosi comanda:
user@ubuntu:/home/user# whoami
Pentru a vă întoarce în shell‐ul deținut de utilizatorul inițial, folosim:
user@ubuntu:/home/user# exit
Se recomandă să nu folosiți contul privilegiat root decât atât cât este necesar. Dacă folosiți sudo
su, părăsiți acest cont imediat ce ați terminat task‐urile ce aveau nevoie de acest cont.
Atunci când schimbăm utilizatorul, pornim un alt shell ca noul utilizator. Dacă dorim să
încărcăm mediul specific al noului utilizator, putem folosi parametrul ‐ al comenzii su.
user@ubuntu:~$ sudo su –
user@ubuntu:~$ pwd
2|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Directorul curent este acum home‐ul utilizatorului root, adică /root. Acum mediul curent este
salvat și va fi restaurat după comanda exit. Prin mediu se înțeleg: modul de afișare al promptului,
alias‐uri, directorul home și variabile specifice fiecărui utilizator.
3|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
4|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Utilizând utilitarul putty realizați o conexiune din exterior (de ex. de la sistemul host de tip
windows) către mașina virtuală prin intermediul utilizatorului brancoveanu.
Dintr‐o altă fereastră de tip shell deschideți o conexiuni prin ssh la mașina virtuală (la ea
însăși) prin intermediul comenzii (adresa de IP de mai jos va fi cea a masinii virtuale Ubuntu):
user@ubuntu:~$ ssh brancoveanu@192.168.100.108
Acum prin intermediul următoarelor comenzi, aflați informații despre utilizatorii autentificați în
sistem în prezent, ultimele autentificări, ultima repornire și timpul cât a fost pornită (running)
mașina.
user@ubuntu:~$ w
user@ubuntu:~$ last
user@ubuntu:~$ last reboot
user@ubuntu:~$ uptime
De exemplu, analizând Figura 4.1 observați că sistemul virtual Ubuntu sau RPi are adresa de IP
192.168.100.108. În plus, avem utilizatorul user conectat de la tty7 (tty1…tty6 sunt interfețele
de tip consolă iar tty7 este interfața grafică), un utilizator brancoveanu conectat din interiorul
sistemului intr‐o fereastră de tip console prin intermediul utilitarului login și doi utilizatori
brancoveanu logați prin SSH. Unul dintre ei de la masina cu IP‐ul 192.168.100.104 (sistemul
Windows host), iar cel de al doilea de la masina cu IP‐ul 192.168.100.108 (deci, chiar sistemul
Ubuntu virtualizat).
Puteți folosi comanzile man și apropos pentru a găsi explicații detaliate pentru fiecare
comandă în parte.
4.4. Grupuri
Linux‐ul lucrează cu grupuri. Drepturile asupra oricărui fișier se dau sau revocă: (a) unui
anumit utilizator care este proprietarul (owner‐ul) fișierului, (b) unui anumit grup și (c) restul
lumii (others) – alții decât cele două cazuri prezentate anterior. Deci, în multe ocazii, vom dori să
acordăm anumite drepturi unui grup de utilizatori, diferit the restul utilizatorilor din sistem.
Pentru a adăuga un nou grup în sistem, vom folosi comanda:
user@ubuntu:~$ sudo addgroup <nume_grup>
Există mai multe opțiuni pentru a adăuga în grupul <nume_grup> utilizatorul brancoveanu.
De exemplu putem folosi:
user@ubuntu:~$ sudo adduser brancoveanu <nume_grup>
5|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
sau
user@ubuntu:~$ sudo gpasswd ‐a brancoveanu <nume_grup>
Pentru a șterge un user dintr‐un anumit grup utilizați comanda:
user@ubuntu:~$ sudo gpasswd ‐d brancoveanu <nume_grup>
6|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
Uneori tastarea comenzilor poate deveni o sarcină destul de repetitivă, sau dacă trebuie să
tastați comenzi lungi de mai multe ori este recomandat să aveți un alias pentru acele comenzi.
Dacă folosiți type ls veți observa că ls este un alias pentru ls --color=auto ‐ ceea ce îi
spune să afișeze directoarele și fișierele speciale în diferite culori.
Puteți lista aliasurile existente utilizând comanda alias. De asemenea puteți seta un nou
alias, cu ajutorul comenzii:
user@ubuntu:~$ alias NUME_ALIAS=<comanda>
Deci, pentru crearea unui alias, pentru o comandă, puteți specifica pur și simplu numele
aliasului și apoi atribuirea acestuia respectivei comenzi. Deci, utilizați alias pentru a face ca lal
să fie un alias pentru ls -al. Astfel în loc să tastați ls -la, puteți tasta lal și această secvență
va executa comanda asociată.
user@ubuntu:~$ alias lal=”ls ‐la”
user@ubuntu:~$ lal
Acum verificați dacă acest alias se păstrează în alt terminal/tab sau dacă se păstrează după
închiderea ferestrei actuale. Observați că aceste alias‐uri nu se vor salva după închiderea ferestrei
actuale, așa că va trebui să adaugați acest alias, pentru permanentizare, în fișierul .bashrc. Deci,
configurările realizate din linia de comandă sunt temporare și ele se pierd după un restart al
sistemului sau la pornirea altui terminal. Pentru configurarea sesiunii unui utilizator, exista niște
fisiere specifice de configurare, și anume un fisier global, numit /etc/bash.bashrc, și un fisier
specific fiecarui utilizator, numit $HOME/.bashrc (acestea sunt numele in cazul shell‐ului bash).
Aceste fisiere sunt executate ori de cite ori este lansat un proces shell interactiv.
Pentru a permanentiza acest alias, prezentat mai sus, vizualizați conținutul fișierului de
configurare bash din home‐ul utilizatorului (~/.bashrc) și adăugați definiția aliasului anterior
definit, la sfârșitul fișierului ‐ alias lal="ls -al".
7|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
4.7. Permisiuni
Noțiuni teoretice
Permisiunile controlează accesul utilizatorilor la fișierele și directoarele din sistem. Pornind
de la următoarele 2 imagini, obținute prin intermediul comezii ls –l, avem următoarele noțiuni
teoretice:
8|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
În timp ce executând:
user@ubuntu:~$ chmod u+w test_lab
user@ubuntu:~$ ls ‐l test_lab
s‐a dat drept de scriere (write) în fișier pentru owner – de regulă cel care l‐a creat.
În final, executând comenzile:
user@ubuntu:~$ chmod u+x,o+w test_lab
user@ubuntu:~$ ls ‐l test_lab
9|Page
Faculty of Electronics Telecommunication and EAOS
Information Technology
se observă că s‐a dat drept de execuție doar pentru owner și de scriere pentru toată lumea others.
10 | P a g e
Faculty of Electronics Telecommunication and EAOS
Information Technology
Un proces își poate termina execuția cu succes (status întors 0) sau cu eroare (status diferit
de 0). Într‐un terminal statusul cu care s‐a încheiat ultimul proces lansat se poate vedea cu
ajutorul comenzii:
user@ubuntu:~$ echo $?
În Linux există două programe true și false care întotdeauna se termină cu succes,
respectiv cu eroare:
user@ubuntu:~$ true
user@ubuntu:~$ echo $?
0
user@ubuntu:~$ false
user@ubuntu:~$ echo $?
1
Folosind operatorii && și ||, putem rula un al doilea proces doar dacă primul proces s‐a
încheiat cu succes, respectiv eroare. Operatorii se aseamănă foarte mult cu funțiile logice AND și
OR. De exemplu:
user@ubuntu:~$ true && echo “Succes!”
Succes!
user@ubuntu:~$ false && echo “Succes!”
11 | P a g e
Faculty of Electronics Telecommunication and EAOS
Information Technology
12 | P a g e