După 9 ani de la formarea ramurii 1.8.x a sudo, a fost anunțată lansarea unei noi versiuni semnificative a utilitarului folosit pentru a organiza execuția comenzilor în numele altor utilizatori , noua versiune fiind „sudo 1.9.0” și care marchează, de asemenea, o nouă ramură.
Sudo este cel mai esențial și utilizat utilitar în sistemele de operare de tip Unix, cum ar fi Linux, BSD sau Mac OS X, deoarece, așa cum am menționat, permite utilizatorilor să ruleze programe cu privilegiile de securitate ale unui alt utilizator (de obicei, utilizatorul root) în siguranță, devenind astfel temporar superutilizator.
În mod implicit, utilizatorul trebuie să se autentifice cu parola sa atunci când rulează sudo. După ce utilizatorul s-a autentificat și dacă fișierul de configurare /etc/sudoers îi permite utilizatorului să acceseze comanda necesară, sistemul o execută.
Există o opțiune pentru activarea parametrului NOPASSWD pentru a evita introducerea parolei utilizatorului la executarea comenzii. Fișierul de configurare /etc/sudoers specifică ce utilizatori pot executa ce comenzi în numele căror alți utilizatori.
Deoarece sudo este foarte strict cu formatul acestui fișier și orice erori ar putea provoca probleme grave, există utilitarul visudo; Această opțiune este utilizată pentru a verifica dacă fișierul / etc / sudoers nu este utilizat de la o altă sesiune a utilizatorului root, evitând astfel editarea multiplă cu posibila corupere a fișierului.
Principalele caracteristici noi ale Sudo 1.9.0
Această nouă versiune evidențiază munca depusă pentru a oferi sistemului procesul de fundal „ sudo_logsrvd ” , conceput pentru înregistrarea centralizată a jurnalelor altor sisteme . Prin utilizarea comenzii `sudo` cu opțiunea ` --enable-openssl` , datele sunt transmise printr-un canal de comunicație criptat (TLS).
Jurnalizarea este configurată folosind opțiunea log_servers din sudoers , iar pentru a dezactiva suportul pentru noul mecanism de trimitere a jurnalelor, au fost adăugate opțiunile „ --disable-log-server ” și „--disable-log-client”.
În plus, a fost adăugat un nou tip de plugin „audit” , care trimite mesaje despre apelurile reușite și nereușite, precum și despre orice erori care apar. De asemenea, a fost adăugat un nou tip de plugin care vă permite să conectați propriile controlere de autentificare care nu se bazează pe funcționalitatea standard. De exemplu, un controler pentru înregistrarea jurnalelor în format JSON este implementat ca plugin.
A fost adăugat și un nou tip de plugin „ aprobare ” , care efectuează verificări suplimentare după o verificare de autorizare bazată pe reguli de bază în sudoers. În configurație pot fi specificate mai multe pluginuri de acest tip, dar confirmarea operațiunii este emisă numai atunci când aceasta este aprobată de toate pluginurile listate în configurație.
În `sudo` și `sudo_logsrvd` , este creat un fișier jurnal suplimentar în format JSON, care reflectă informații despre toți parametrii comenzilor care rulează, inclusiv numele gazdei. Acest jurnal este utilizat de utilitarul `sudoreplay` , care vă permite să filtrați comenzile după numele gazdei.
Lista de argumente din linia de comandă transmisă prin variabila de mediu SUDO_COMMAND este acum trunchiată la 4096 de caractere.
Alte modificări notabile față de anunț includ:
- Comanda sudo -S tipărește acum toate cererile la ieșirea standard sau stderr, fără a accesa dispozitivul de control al terminalului.
- Pentru a testa interacțiunea cu serverul sau pentru a trimite jurnalele existente, este propus utilitarul sudo_sendlog;
- S-a adăugat posibilitatea de a dezvolta plugin-uri sudo în Python, care este activată în timpul compilării cu opțiunea «–Enable-python“.
- En pulovere, în loc de Cmnd_Aliases, Cmd_Aliases Acum este valabil și.
- S-au adăugat setări noi pam_ruser și pam_rhost pentru a activa / dezactiva configurarea numelui de utilizator și a setărilor gazdei la configurarea unei sesiuni prin PAM.
- Este posibil să specificați mai mult de un hash SHA-2 pe o linie de comandă separată prin virgulă. Hash-ul SHA-2 poate fi utilizat și în sudoere împreună cu cuvântul cheie „ALL” pentru a defini comenzi care pot fi executate numai atunci când hash-ul se potrivește.