Kako popraviti "Uporabniškega imena ni v datoteki sudoers. Ta incident bo prijavljen" v Ubuntuju


V sistemih Unix/Linux je uporabniški račun root super uporabniški račun in ga je zato mogoče uporabiti za vse, kar je mogoče doseči v sistemu.

Vendar pa je to lahko na toliko načinov zelo nevarno - eden izmed njih je, da lahko korenski uporabnik vnese napačen ukaz in zlomi celoten sistem ali pa napadalec dobi dostop do skrbniškega računa uporabnika in prevzame nadzor nad celotnim sistemom in kdo ve, kaj je/ona lahko to stori.

Glede na to ozadje je v Ubuntuju in njegovih izvedenkah korenski uporabniški račun privzeto zaklenjen, redni uporabniki (sistemski skrbniki ali ne) pa lahko pridobijo super uporabniške privilegije samo z ukazom sudo .

In ena najslabših stvari, ki se lahko zgodi skrbniku sistema Ubuntu, je izguba pravic za uporabo ukaza sudo, ki se običajno imenuje\"zdrobljen sudo". To je lahko zelo uničujoče.

Zlomljeno sudo lahko povzroči kar koli od naslednjega:

  1. Uporabnika ne bi smeli odstraniti iz sudo ali skrbniške skupine.
  2. Datoteka/etc/sudoers je bila spremenjena, da uporabnikom v sudo ali skrbniški skupini prepreči, da bi z ukazom sudo povišali svoje privilegije na root.
  3. Dovoljenje za datoteko/etc/sudoers ni nastavljeno na 0440.

Za izvajanje ključnih nalog v vašem sistemu, na primer ogled ali spreminjanje pomembnih sistemskih datotek ali posodobitev sistema, potrebujete ukaz sudo za pridobitev super uporabniških pravic. Kaj pa, če vam uporaba sudo zavrne zaradi enega ali več zgoraj omenjenih razlogov.

Spodaj je slika, ki prikazuje primer, v katerem privzetemu uporabniku sistema ni dovoljeno zagnati ukaza sudo:

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

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

Kako popraviti zlomljeni ukaz sudo v Ubuntuju

Če na vašem računalniku zaženete samo Ubuntu, po vklopu nekaj sekund pritisnite tipko Shift , da odprete zagonski meni Grub. Po drugi strani pa, če uporabljate dvojni zagon (Ubuntu poleg sistema Windows ali Mac OS X), bi moral privzeto videti zagonski meni Grub.

S pomočjo puščice dol izberite\"Dodatne možnosti za Ubuntu" in pritisnite Enter.

Odprli boste spodnji vmesnik, izberite jedro z možnostjo\"način obnovitve", kot je prikazano spodaj, in pritisnite Enter za vstop v\"meni za obnovitev".

Spodaj je\"meni za obnovitev", ki označuje, da je korenski datotečni sistem nameščen samo za branje. Premaknite se na vrstico\"root Drop to root shell lump", nato pritisnite Enter.

Nato pritisnite Enter za vzdrževanje:

Na tej točki bi morali biti v pozivu korenske lupine. Kot smo že videli, je datotečni sistem nameščen kot samo za branje, zato je za izvajanje sprememb v sistemu, ki ga moramo ponovno namestiti, tako, da ga beremo/pišemo z zagonom spodnjega ukaza:

# mount -o rw,remount /

Ob predpostavki, da je bil uporabnik odstranjen iz skupine sudo, za dodajanje uporabnika nazaj v skupino sudo izdajte spodnji ukaz:

# adduser username sudo

Opomba: Ne pozabite uporabiti dejanskega uporabniškega imena v sistemu, v mojem primeru je to aaronkilik.

V nasprotnem primeru pod pogojem, da je bil uporabnik odstranjen iz skrbniške skupine, zaženite naslednji ukaz:

# adduser username admin

Ob predpostavki, da je bila datoteka /etc/sudoers spremenjena, da bi uporabnikom v sudo ali skrbniški skupini preprečila, da bi svoje privilegije povišala na super uporabnike, nato naredite varnostno kopijo datotek sudoers na naslednji način:

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

Nato odprite datoteko sudoers.

# visudo

in dodajte spodnjo vsebino:

#
# 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

Če domnevamo, da dovoljenje za datoteko/etc/sudoers ni nastavljeno na 0440, zaženite naslednji ukaz, da bo pravilno:

# chmod  0440  /etc/sudoers

Nenazadnje po zagonu vseh potrebnih ukazov vnesite ukaz exit , da se vrnete v\"meni za obnovitev":

# exit 

Z puščico desno izberite in pritisnite Enter:

Pritisnite , da nadaljujete z običajnim zaporedjem zagona:

Povzetek

Ta metoda bi morala dobro delovati, zlasti če gre za skrbniški uporabniški račun, kjer ni druge možnosti, kot da uporabite način obnovitve.

Če pa vam ne uspe, se poskusite obrniti na nas, tako da izrazite svoje izkušnje v spodnjem oddelku za povratne informacije. Ponudite lahko tudi kakršne koli predloge ali druge možne načine za rešitev zadevne težave ali pa popolnoma izboljšajte ta vodnik.