Cum să remediați „Numele de utilizator nu este în fișierul sudoers. Acest incident va fi raportat” în Ubuntu


În sistemele Unix/Linux, contul de utilizator root este contul de super utilizator și, prin urmare, poate fi folosit pentru a face orice și tot ce se poate realiza pe sistem.

Cu toate acestea, acest lucru poate fi foarte periculos în multe feluri – unul ar putea fi ca utilizatorul root să introducă o comandă greșită și să spargă întregul sistem sau un atacator să obțină acces la contul de utilizator root și să preia controlul asupra întregul sistem și cine știe ce poate face el/ea.

Pe baza acestui context, în Ubuntu și derivatele sale, contul de utilizator root este blocat în mod implicit, utilizatorii obișnuiți (administratori de sistem sau nu) pot obține privilegii de super-utilizator numai folosind comanda sudo.

Și unul dintre cele mai rele lucruri care i se pot întâmpla unui administrator de sistem Ubuntu este pierderea privilegiilor de a folosi comanda sudo, o situație denumită în mod obișnuit „sudo spart”. poate fi absolut devastatoare.

Un sudo rupt poate fi cauzat de oricare dintre următoarele:

  1. Un utilizator nu ar fi trebuit să fie eliminat din grupul sudo sau admin.
  2. Fișierul /etc/sudoers a fost modificat pentru a împiedica utilizatorii din grupul sudo sau admin să-și ridice privilegiile la cele ale root folosind comanda sudo.
  3. Permisiunea pentru fișierul /etc/sudoers nu este setată la 0440.

Pentru a efectua sarcini cruciale pe sistemul dvs., cum ar fi vizualizarea sau modificarea fișierelor de sistem importante sau actualizarea sistemului, aveți nevoie de comanda sudo pentru a obține privilegii de super utilizator. Ce se întâmplă dacă vi se refuză utilizarea sudo din cauza unuia sau mai multor motive pe care le-am menționat mai sus.

Mai jos este o imagine care arată un caz în care utilizatorul implicit de sistem este împiedicat să ruleze comanda sudo:

 ~ $ sudo visudo
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file.   This incident will be reported.

 ~ $ sudo apt install vim
[ sudo ] password for aaronkilik:
aaronkilik is not in the sudoers file.   This incident will be reported.

Cum să remediați comanda sudo ruptă în Ubuntu

Dacă se întâmplă să rulați numai Ubuntu pe computer, după ce îl porniți, apăsați tasta Shift timp de câteva secunde pentru a porni Grub meniul. Pe de altă parte, dacă rulați o pornire dublă (Ubuntu alături de Windows sau Mac OS X), atunci ar trebui să vedeți meniul de pornire Grub în mod implicit.

Folosind Săgeata în jos, selectați „Opțiuni avansate pentru Ubuntu” și apăsați pe Enter.

Veți fi în interfața de mai jos, selectați nucleul cu opțiunea „modul de recuperare” ca mai jos și apăsați pe Enter pentru a avansa la „meniul „Recuperare”. puternic>”.

Mai jos este „Meniul Recuperare”, care indică faptul că sistemul de fișiere rădăcină este montat ca doar pentru citire. Treceți la linia „Promptul rădăcină Drop to root shell”, apoi apăsați pe Enter.

Apoi, apăsați pe Enter pentru întreținere:

În acest moment, ar trebui să vă aflați la promptul shell-ului rădăcină. După cum am văzut mai devreme, sistemul de fișiere este montat doar pentru citire, prin urmare, pentru a face modificări sistemului pe care trebuie să-l remontam este la fel de citire/scriere, rulând comanda de mai jos:

# mount -o rw,remount /

Rezolvarea cazului #1 - Adăugați utilizator la grupul sudo sau admin

Presupunând că un utilizator a fost eliminat din grupul sudo, pentru a adăuga utilizatorul înapoi la grupul sudo, emiteți comanda de mai jos:

# adduser username sudo

Notă: nu uitați să utilizați numele de utilizator real pe sistem, în cazul meu, acesta este aaronkilik.

Sau, cu condiția ca un utilizator să fi fost eliminat din grupul de administrare, rulați următoarea comandă:

# adduser username admin

Rezolvarea cazului #2 – Acordarea de privilegii sudo utilizatorilor

Presupunând că fișierul /etc/sudoers a fost modificat pentru a împiedica utilizatorii din grupul sudo sau admin să-și ridice privilegiile la cele de super utilizator, apoi faceți o copie de rezervă a fișierelor sudoers după cum urmează:

# cp /etc/sudoers /etc/sudoers.orginal

Ulterior, deschideți fișierul sudoers.

# visudo

și adăugați conținutul de mai jos:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbi$

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Rezolvarea cazului #3 - Setarea permisiunii corecte pe fișierul sudoers

Presupunând că permisiunea pentru fișierul /etc/sudoers nu este setată la 0440, apoi executați următoarea comandă pentru a o corecta:

# chmod  0440  /etc/sudoers

Nu în ultimul rând, după ce rulați toate comenzile necesare, tastați comanda exit pentru a reveni la „meniul Recuperare”:

# exit 

Folosiți Săgeata la dreapta pentru a selecta și apăsați pe Enter:

Apăsați pentru a continua cu secvența normală de pornire:

rezumat

Această metodă ar trebui să funcționeze foarte bine, mai ales când este vorba de un cont de utilizator administrativ, unde nu există altă opțiune decât să folosești modul de recuperare.

Cu toate acestea, dacă nu funcționează pentru dvs., încercați să reveniți la noi exprimându-vă experiența prin secțiunea de feedback de mai jos. De asemenea, puteți oferi orice sugestii sau alte modalități posibile de a rezolva problema în cauză sau de a îmbunătăți acest ghid cu totul.