Cum să revizuiți utilizarea comenzilor sudo pe Linux

Publicat: 2022-08-24
Laptop Linux afișează un prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Comanda sudo oferă unui utilizator superutilizator sau root puteri. Fără îndoială, le-ați dat discursul „cu o mare putere vine o mare responsabilitate”. Iată cum să verificați dacă au ascultat sau nu.

Comanda sudo

Comanda sudo înseamnă „substitute user do”. Permite unei persoane autorizate să execute o comandă ca și cum ar fi un alt utilizator. Poate prelua parametrii liniei de comandă, dintre care unul este numele utilizatorului pe care doriți să executați comanda. Cel mai comun mod în care este folosit sudo este să omiteți opțiunile liniei de comandă și să utilizați acțiunea implicită. Aceasta execută eficient comanda ca utilizator root.

Pentru a utiliza sudo în acest mod necesită o permisiune specială. Numai cei privilegiați pot folosi sudo . Când instalați o distribuție Linux modernă, vi se solicită să configurați o parolă de root pe care o puteți utiliza cu sudo . Permisiunea de a face acest lucru este acordată utilizatorului obișnuit pe care îl creați în timpul instalării. Aceasta este modalitatea preferată de a gestiona accesul la capacitățile utilizatorului root. Vechea modalitate era să creați un utilizator root și să vă conectați ca acesta pentru a vă administra sistemul.

Acesta a fost un scenariu periculos. A fost ușor să uiți sau să fii prea leneș să te deconectezi și să te reîncepi ca utilizator obișnuit atunci când nu mai aveai nevoie de privilegii de root. Orice greșeală pe care le-ați făcut în fereastra terminalului ca root ar fi executată, oricât de drastică ar fi. Lucrurile care ar fi blocate de shell dacă un utilizator obișnuit ar încerca să le facă ar rula fără îndoială atunci când root le-ar solicita. Utilizarea contului root în locul unui cont obișnuit reprezintă, de asemenea, un risc de securitate.

Cum să controlezi accesul sudo pe Linux
LEGATE Cum să controlezi accesul sudo pe Linux

Folosirea sudo concentrează mintea. Intri în aceleași ape periculoase, dar alegi în mod conștient să faci asta și sperăm că ai mare grijă. Îți invoci statutul de superutilizator doar atunci când trebuie să faci ceva care are nevoie de ele.

Dacă deschideți accesul root pentru alți utilizatori, doriți să știți că aceștia au la fel de multă grijă cu ei ca și dvs. Nu vrei ca ei să execute comenzi în mod imprudent sau speculativ. Sănătatea și bunăstarea instalării dvs. Linux depind de utilizatorii privilegiați care se comportă respectuos și responsabil.

Iată câteva modalități de a monitoriza utilizarea rădăcină a acestora.

Fișierul auth.log

Unele distribuții mențin un jurnal de autentificare, într-un fișier numit „auth.log”. Odată cu apariția și adoptarea rapidă a systemd , necesitatea fișierului „auth.log” a fost eliminată. systemd-journal consolidează jurnalele de sistem într-un format binar nou, iar journalctl oferă o modalitate de a examina sau de a interoga jurnalele.

Dacă aveți un fișier „auth.log” pe computerul dvs. Linux, acesta va fi probabil în directorul „/var/log/”, deși pe unele distribuții numele și calea fișierului sunt „/var/log/audit/audit”. .Buturuga."

Puteți deschide fișierul în less așa. Nu uitați să ajustați calea și numele fișierului pentru a se potrivi cu distribuția dvs. și fiți pregătiți în cazul în care Linuxul dvs. nici măcar nu creează un fișier de autentificare.

Această comandă a funcționat pe Ubuntu 22.04.

 mai puțin /var/log/auth.log 

Privind fișierul /var/log/auth.log cu mai puțin

Fișierul jurnal este deschis și puteți parcurge fișierul sau puteți utiliza facilitățile de căutare încorporate în less pentru a căuta „sudo”.

Conținutul fișierului /var/log/auth.log este afișat în mai puțin

Chiar și folosind facilitățile de căutare ale less , poate dura ceva timp pentru a localiza intrările sudo care vă interesează.

Să presupunem că vrem să vedem pentru ce a folosit sudo un utilizator numit mary . Putem căuta în fișierul de jurnal cu grep linii cu „sudo” în ele, apoi redirecționăm ieșirea prin grep și căutăm linii cu „mary” în ele.

Observați sudo înainte de grep și înainte de numele fișierului jurnal.

 sudo grep sudo /var/log/auth.log | grep "mary" 

Folosind grep pentru a filtra intrările care menționează mary și sudo

Acest lucru ne oferă linii care au „sudo” și „mary” în ele.

Putem vedea că utilizatorul mary a primit privilegii sudo la 15:25, iar la 15:27 ea deschide fișierul fstab într-un editor. Acesta este tipul de activitate care merită cu siguranță o scufundare mai profundă, începând cu un chat cu utilizatorul.

Folosind journalctl

Metoda preferată pentru distribuțiile Linux bazate pe systmd este utilizarea comenzii journalctl pentru a revizui jurnalele de sistem.

Dacă transmitem numele unui program către journalctl , acesta va căuta în fișierele jurnal intrări care conțin referințe la acel program. Deoarece sudo este un binar situat la „/usr/bin/sudo”, îl putem transmite lui journactl . Opțiunea -e (sfârșitul paginatorului) îi spune journalctl să deschidă paginatorul de fișiere implicit. De obicei, acest lucru va fi less . Afișajul este derulat automat în partea de jos pentru a afișa cele mai recente intrări.

 sudo journalctl -e /usr/bin/sudo 

Folosind journalctl pentru a căuta intrări care menționează sudo

Intrările de jurnal care prezintă sudo sunt listate în mai puțin.

journalctl afișează intrări care conțin sudo în vizualizatorul de fișiere mai puțin

Utilizați tasta „Săgeată dreapta” pentru a derula la dreapta pentru a vedea comanda care a fost folosită cu fiecare dintre invocările sudo . (Sau întindeți fereastra terminalului astfel încât să fie mai lată.)

Derulați în lateral pentru a vedea comenzile care au fost folosite cu sudo

Și deoarece rezultatul este afișat în less , puteți căuta text, cum ar fi numele comenzilor, numele utilizatorilor și marcajele de timp.

LEGATE: Cum să utilizați journalctl pentru a citi jurnalele de sistem Linux

Utilizarea utilitarului GNOME Logs

Mediile desktop grafice includ de obicei un mijloc de revizuire a jurnalelor. Ne vom uita la utilitarul jurnalele GNOME. Pentru a accesa utilitarul jurnal, apăsați tasta „Super” din stânga „barei de spațiu”.

Tastați „jurnale” în câmpul de căutare. Apare pictograma „Jurnale”.

Faceți clic pe pictogramă pentru a lansa aplicația „Jurnale”.

Aplicația GNOME Logs

Făcând clic pe categoriile din bara laterală, mesajele din jurnal se vor filtra după tipul de mesaj. Pentru a face selecții mai detaliate, faceți clic pe categoria „Toate” din bara laterală, apoi faceți clic pe pictograma lupă din bara de instrumente. Introduceți un text de căutare. Vom căuta „sudo”.

Căutarea intrărilor care conțin sudo în aplicația GNOME Logs

Lista de evenimente este filtrată pentru a afișa numai acele evenimente care se referă la comanda sudo . Un mic bloc gri la sfârșitul fiecărei linii conține numărul de intrări din acea sesiune de eveniment. Faceți clic pe o linie pentru a o extinde.

Blocul gri care conține numărul de intrări dintr-o sesiune sudo

Am dat clic pe linia de sus pentru a vedea detaliile celor 24 de intrări din acea sesiune.

Detaliile evenimentelor afișate într-o vizualizare extinsă

Cu un mic defilare, putem vedea aceleași evenimente pe care le-am văzut când am folosit comanda journalctl . Sesiunea de editare inexplicabilă a utilizatorului mary în fișierul fstab este rapid găsită. Am fi putut căuta „mary”, dar aceasta ar include alte intrări decât utilizarea ei a sudo .

Nu toată lumea are nevoie de acces root

Acolo unde există o cerință reală și sensibilă, acordarea de privilegii sudo altor utilizatori poate avea sens. De asemenea, este logic să verificăm utilizarea - sau abuzul - de aceste puteri, mai ales imediat după ce le-au fost acordate.