| Comandă | Descriere scurtă |
|---|---|
su | switch user - schimbă utilizatorul în sesiunea curentă |
sudo | rulează o comandă ca root |
whoami | afișează utilizatorul curent |
adduser | adaugă un utilizator |
deluser | șterge un utilizator |
chmod | schimbă permisiunile unui fișier/director |
chown | schimbă utilizatorul proprietar (owner) al unui fișier/director |
chgrp | schimbă grupul unui fișier/director |
passwd | modifică parola |
ssh | conectare la distanță |
scp | copiere la distanță |
Puteți urmări tutorialul video corespunzător laboratorului făcut de IT Assistant.
Pentru a solicita închiderea calculatorului din linia de comandă, putem folosi comanda:
halt
Rulată din contul student, vi se va spune că ar trebui să fiți root pentru a o putea rula.
root este un utilizator privilegiat. Doar el poate rula taskuri administrative. Practic, sistemul îi aparține lui.
Pentru a deveni un alt utilizator se poate folosi comanda su (switch user). Fără nici un parametru suplimentar, această comandă vă permite accesarea contului de root și vă cere parola acestui utilizator. Ar fi riscant ca toată lumea să cunoască această parolă. De aceea, se oferă posibilitatea de a obține drepturi administrative folosind parola proprie, prin intermediul comenzii sudo.
În acest caz, comanda va fi:
sudo su
student, NU a utilizatorului privilegiat.
Promptul se schimbă pentru a indica faptul că sunteți un utilizator privilegiat. Caracterul $ indică un utilizator neprivilegiat, caracterul # indică un utilizator privilegiat.
Pentru a afla în orice moment ca ce utilizator suntem autentificați, indiferent de ceea ce spune promptul putem folosi comanda:
whoami
Pentru a vă întoarce în shell-ul deținut de utilizatorul inițial, folosim:
exit
sudo su, părăsiți acest cont imediat ce ați terminat taskurile 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 utilizatorului, putem folosi parametrul - al comenzii su.
sudo su - pwd
Directorul curent este acum home-ul utilizatorului root, adică /root.
exit. Prin mediu se înțeleg: modul de afișare al promptului, alias-uri, directorul home și variabile specifice fiecărui utilizator
Pentru a crea un utilizator cu numele numeutilizator putem folosi comanda adduser:
adduser numeutilizator
Vi se va zice că trebuie să fiți root. Din motive de securitate, se recomandă să nu folosim contul de root mai mult decât minimul necesar.
Pentru comenzi simple, se recomandă folosirea formei sudo <comanda> cu semnificația: execută comanda <comanda> ca utilizator privilegiat.
sudo adduser numeutilizator
Comanda adduser, interactivă va cere stabilirea parolei noului utilizator. Ignorați ultimele câmpuri (informațiile pentru utilizatorul nou creat) apăsând tasta ENTER.
Pentru a vă loga ca utilizatarul nou creat, puteți folosi comanda su.
su - numeutilizator
Puteți șterge un utilizator folosind comanda deluser:
sudo deluser numeutilizator
Permisiunile controlează accesul utilizatorilor la fișierele și directoarele din sistem.
Permisiunile sunt împărțite în 3 grupe:
Fiecare grup este format din 3 caractere:
Pentru a modifica permsiunile folosim comanda chmod (change mode).
În formă literală, permisiunile se pot da sub forma [ugoa]{+-=}perm:
+ - adaugă permsiunile următoare la cele existente- - elimină drepturile următoare din cele existente= - setează permisiunile la valoarea dată în continuare
Pe un fișier test_perms, creat cu (și având permisiuni implicite):
touch test_perms ls -l test_perms
observăm că:
chmod a= test_perms ls -l test_perms
- s-au revocat toate permisiunile
chmod +r test_perms ls -l test_perms
- s-a dat drept de read pentru fiecare grup: user, group, others
chmod u+w test_perms ls -l test_perms
- s-a dat drept de write pentru owner
chmod u+x,o+w test_perms ls -l test_perms
- s-a dat drept de execuție pentru owner și de scriere pentru others.
Până acum, am manipulat drepturile unui utilizator la nivel de proprietar (owner) și restul lumii (others). În multe ocazii, vom dori să acordăm aceleași drepturi unui grup de utilizatori, diferit the restul utilizatorilor din sistem.
Pentru a adăuga un grup în sistem, vom folosi comanda:
sudo addgroup numegrup
Pentru a adăuga în grupul numegrup utilizatorul student, vom folosi:
sudo adduser student numegrup
Pentru a schimba grupul unui fișier, folosim chgrp:
sudo chgrp numegrup fisier
Comanda passwd este folosită pentru a schimba parola. Fără niciun parametru, va schimba parola utilizatorului curent. Cu parametru un nume de utilizator, va încerca schimbarea parolei acelui utilizator, solicitând parola actuală.
Rulată de către root, nu va solicita parola curentă.
sudo passwd numeutilizator
- va schimba parola lui numeutilizator, fără a solicita parola curenta.
Creați utilizatorii: obama, cameron și putin, folosind ca parole chiar numele de utilizator, adică obama, cameron și putin.
sudo su adduser obama adduser cameron adduser putin
Autentificați-vă ca utilizatorul obama și creați în home-ul acestuia un fișier launchcodes având conținutul “123456789”.
su - obama echo "124365879" > launchcodes
Implicit, acest fișier este accesibil și altor utilizatori.
Testați acest lucru, autentificându-vă ca putin și cameron.
su cameron cat /home/obama/launchcodes exit su putin cat /home/obama/launchcodes exit
Afișați permisiunile curente ale fișierului.
ls -l /home/obama/launchcodes
va afișa:
-rw-rw-r– 1 obama obama 0 Oct 21 17:47 launchcodes
Revocați dreptul de citire pentru alți utilizatori, în afară de obama.
chmod go-r launchcodes
Creați un grup nato și adăugați utilizatorii cameron și obama în el.
sudo su addgroup nato adduser cameron nato adduser obama nato
Ca utilizatorul obama, creați un fișier secrettreaty în home-ul acestuia.
Stabiliți grupul fișierului nou creat la nato.
su - obama touch secrettraty exit sudo chgrp nato /home/obama/secrettreaty
Modificați permisiunile astfel încât alți utilizatori (putin de exemplu, dar și alții) să nu poată citi fișierul, iar cei din grupul nato să îl poată citi și modifica.
su - obama chmod o=,g=rw secrettreaty exit
Afișați proprietarul, grupul și permisiunile fișierului secrettreaty.
ls -l /home/obama/secrettreaty
Logați-vă ca fiecare dintre utilizatorii obama și cameron utilizând su -. Folosiți pwd pentru a vedea în ce director este plasat utilizatorul în mod implicit: directorul home.
su - obama pwd exit su - cameron pwd exit
Fiind logați ca obama logați-vă ca cameron utilizând su. Navigați spre directorul home al utilizatorului curent, utilizând cd ~.
su obama su cameron pwd cd ~ pwd exit exit
Logați ca cameron navigați către home-ul lui obama utilizând cd ~obama.
su cameron cd ~obama pwd exit
Determinați directorul home pentru utilizatorul privilegiat (root), utilizând una din metodele din cadrul acestei secțiuni.
sudo su - pwd exit
De ce nu este / directorul căutat?
/ este rădăcina arborelui de fișiere. Directorul ~root este un director din arbore, și anume /root.
Dacă folosiți type ls veți observa că ls est e un alias pentru
ls --color=auto
(ceea ce îi spune să afișeze directoarele și fișierele speciale colorat).
alias. De asemenea puteți seta un nou alias, cu alias NUME_ALIAS=“COMANDA”
Utilizați alias pentru a face ca lal să fie un alias pentru ls -al.
alias lal="ls -al" lal
Se păstrează alias-ul și în alt terminal/tab?
Vizualizați fișierul de configurare bash din home-ul utilizatorului student (~/.bashrc) și adăugați definiția aliasului anterior definit, la sfârșitul fișierului.
.bashrc și se adaugă în el linia:
alias lal="ls -al"
Verificați că alias-ul se păstrează acum și în alt terminal.
Pentru configurările permanente trebuie întotdeauna modificat un fișier.
chmod permite specificarea drepturilor într-o formă numerică, mai comodă. Permisiunile unui fișier se exprimă ca un număr în baza 8 de 3 cifre. Pentru a face corespondența între numere și permisiuni, se realizează trecerea în baza 2 a fiecărei cifre în parte. Un bit 0 semnifica absența permisiunii respective, așa cum arată și figura:
Creați utilizatorii ana, gigel, chuck.
sudo adduser ana sudo adduser gigel sudo adduser chuck
Autentificați-vă ca utilizatorul ana.
În home, creați fișierele mere și pere conținând, respectiv, textele Ana are mere și Ana are pere.
su ana echo "Ana are mere" > ~/mere echo "Ana are pere" > ~/pere
Modificați permisiunea fișierului mere astfel încât gigel să nu-l poată citi dar să-l poată scrie, păstrând nemodificate celelalte permisiuni. Folosiți doar opțiunile numerice pentru chmod.
ls -l ~/mere chmod 642 ~/mere ls -l ~/mere
Modificați permisiunile fișierului pere astfel încât chuck să-l poată modifica și citi. Folosiți permisiuni numerice. Nu modificați alte permisiuni.
ls -l ~/pere chmod 646 ~/pere ls -l pere
Verificați permisiunile.
chuck sunt aceleași ca și pentru gigel. Nu puteți să separați cei doi utilizatori.
Schimbați owner-ul fișierului pere în gigel. Ce drepturi va avea acum ana asupra fișierului pere?
chown necesită privilegii de root. Folosiți sudo pentru a o rula.
sudo chown gigel pere ls -l pere
Ana va avea aceleași drepturi cu chuck - doar de scriere.
sudo (superuser do) este o metodă mai sigură şi mai flexibilă decât su pentru a delega autoritatea.
Pentru ca un utilizator să poată folosi sudo, trebuie să aibă permisiune explicită în fişierul de configurare /etc/sudoers. De asemenea, la folosirea sudo prima oară în sesiunea curentă, se cere o parolă. Aceasta este parola utilizatorului, nu a root. Astfel, nu partajăm parola root cu nimeni.
De asemenea, sudo poate fi configurat să permită doar anumite comenzi, să nu ceară o parolă, şi să funcţioneze peste reţea.
Configurați sudo astfel încât obama să-l poată folosi. Urmăriți pașii:
/etc/sudoers folosind comanda visudo (se recomandă folosirea visudo pentru a-l edita)
visudo este nano, rulați întâi comanda
sudo update-alternatives --config editor
și alegeți vim.basic pentru a seta vim ca editor.
sudo. obama în acest grup
Stergeți utilizatorul putin, fiind autentificat ca utilizator obama.
sudo adduser obama sudo su - obama sudo deluser putin
adduser nu este portabilă (nu se găsește, de exemplu pe Gentoo), este doar un wrapper peste useradd, usermod şi alte comenzi similare. Exemplul de mai jos arată tipurile celor două fișiere (student@uso:~$ semnifică promptul):
student@uso:~$ file $(which adduser) /usr/sbin/adduser: a /usr/bin/perl script text executable student@uso:~$ file $(which useradd) /usr/sbin/useradd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
(comanda file afișează tipul unui fișier, comanda which afișează locația executabilului ce reprezintă o comandă, notația $(cmd) înseamnă executarea comenzii cmd și înlocuirea șirului cu rezultatul acestei comenzi)
Adăugați utilizatorul thor având ca home directorul /home/asgaard/thor, membru al grupurilor admin, student, nato și thor.
sudo mkdir -p /home/asgaard/thor sudo addgroup nato sudo useradd -d /home/asgaard/thor -G admin,student,nato thor
Deoarece nu a fost configurată parola, logarea ca thor se va face prin intermediul contului root.
Deschideți Activities → VMware Player și apoi faceți double-click pe smalltalk. Așteptați până când pornește.
Nu dați comenzi pe mașina virtuală, următoarele comenzi se execută pe mașina locală (intel-workstation).
Deschideți 3 conexiuni prin ssh la mașina virtuală smalltalk pusă la dispoziție în laborator, sau pe care o descărcați de la adresa.
bjarne cu parola c++. Parola de root este uso. Hostname-ul este: smalltalk.local.
ssh bjarne@smalltalk.local
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.
w last last reboot uptime
Vă puteți folosi de comanda apropos pentru a găsi comenzile necesare rezolvării acestui exercițiu. De asemenea, suportul de curs poate fi de un real ajutor.
scp este asemănătoare cu cea a cp, atât că la destinație specificați și username + host.
Exemplu:
scp fisier_local user@host:/calea/pe/host
Consultați manualul comenzii scp pentru a copia directorul /etc/init.d în home-ul utilizatorului bjarne de pe mașina virtuală smalltalk din exercițiul anterior.
scp -r /etc/init.d bjarne@smalltalk.local: