Come risolvere " Il nome utente non è nel file sudoers. Questo incidente verrà segnalato " in Ubuntu


Nei sistemi Unix/Linux, l'account utente root è l'account superutente e può quindi essere utilizzato per fare qualsiasi cosa e tutto ciò che è possibile ottenere sul sistema.

Tuttavia, questo può essere molto pericoloso in molti modi: uno potrebbe essere che l'utente root potrebbe immettere un comando errato e interrompere l'intero sistema o che un utente malintenzionato possa accedere all'account utente root e prendere il controllo del intero sistema e chissà cosa può fare.

Sulla base di questo background, in Ubuntu e nelle sue derivate, l'account utente root è bloccato per impostazione predefinita, gli utenti regolari (amministratori di sistema o meno) possono ottenere solo privilegi di super utente usando il comando sudo .

E una delle cose peggiori che possono accadere ad un amministratore di sistema di Ubuntu sta perdendo i privilegi per usare il comando sudo , una situazione comunemente chiamata " broken sudo ". Questo può essere assolutamente devastante.

Un sudo non funzionante può essere causato da uno dei seguenti:

  1. A user should not have been removed from the sudo or admin group.
  2. The /etc/sudoers file was altered to prevent users in sudo or admin group from elevating their privileges to that of root using sudo command.
  3. The permission on /etc/sudoers file is not set to 0440.

Per eseguire attività cruciali sul tuo sistema come visualizzare o modificare file di sistema importanti o aggiornare il sistema, è necessario il comando sudo per ottenere i privilegi di super utente. Cosa succede se ti viene negato l'utilizzo di sudo a causa di uno o più dei motivi che abbiamo menzionato sopra.

Di seguito un'immagine che mostra un caso in cui all'utente di sistema predefinito viene impedito di eseguire il comando sudo :

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

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

Come correggere il comando rotto sudo in Ubuntu

Se sul tuo computer è in esecuzione solo Ubuntu , dopo averlo acceso, premi il tasto Maiusc per alcuni secondi per ottenere l'avvio Grub menu. D'altra parte, se stai eseguendo un dual-boot (Ubuntu accanto a Windows o Mac OS X ), dovresti vedere il menu di avvio di Grub per impostazione predefinita.

Utilizzando Freccia giù , seleziona " Opzioni avanzate per Ubuntu " e premi Invio .

Sarai nell'interfaccia sotto, seleziona il kernel con l'opzione " modalità di recupero " come sotto e premi Invio per avanzare al menu " Ripristino ”.

Di seguito è riportato il " menu di recupero ", che indica che il filesystem di root è montato in sola lettura. Passa alla riga " Passa alla sessione principale di Drop to root shell ", quindi premi Invio .

Successivamente, premi Invio per la manutenzione:

A questo punto, dovresti essere al prompt della shell root . Come abbiamo visto prima, il filesystem è montato in sola lettura, quindi, per apportare modifiche al sistema che dobbiamo rimontare è come letto/scrittura eseguendo il comando seguente:

# mount -o rw,remount /

Supponendo che un utente sia stato rimosso dal gruppo sudo, per aggiungere l'utente al gruppo sudo emettere il seguente comando:

# adduser username sudo

rosso

Oppure, a condizione che un utente sia stato rimosso dal gruppo admin, eseguire il seguente comando:

# adduser username admin

Partendo dal presupposto che il file /etc/sudoers è stato modificato per impedire agli utenti del gruppo sudo o admin di elevare i loro privilegi a quello di un super utente, quindi eseguire un backup dei file sudoers come segue:

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

Successivamente, apri il file sudoers .

# visudo

e aggiungi il contenuto di seguito:

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

Supponiamo che l'autorizzazione per il file /etc/sudoers non sia impostata su 0440 , quindi esegui il seguente comando per renderlo corretto:

# chmod  0440  /etc/sudoers

Ultimo ma non meno importante, dopo aver eseguito tutti i comandi necessari, digita il comando exit per tornare al menu Recovery :

# exit 

Utilizza il Freccia destra per selezionare & lt; Ok & gt; e premi Invio :

Premi & lt; Ok & gt; per continuare con la normale sequenza di avvio:

Sommario

Questo metodo dovrebbe funzionare bene soprattutto quando è coinvolto un account utente amministrativo, in cui non esiste altra opzione se non quella di utilizzare la modalità di ripristino.

Tuttavia, se non riesce a funzionare per te, prova a tornare da noi esprimendo la tua esperienza attraverso la sezione di feedback qui sotto. Puoi anche offrire suggerimenti o altri modi per risolvere il problema o migliorare completamente questa guida.