Questo articolo spiega come "correggere" sudo che non funziona su Linux, il che provoca questo messaggio quando si tenta di usarlo:"Il tuo nome utente non è nel file sudoers. Questo incidente è stato segnalato". su Debian (e distribuzioni Linux basate su Debian come Ubuntu). sudo consente agli amministratori di sistema di eseguire comandi come root (amministratore) o un altro utente.
Esempio da una nuova installazione Buster di Debian 10 (10.1) con sudo non funzionante:
$ sudo apt update
[sudo] password for logix:
logix is not in the sudoers file. This incident will be reported.
sudo non funziona per impostazione predefinita su un'installazione Fresh Debian perché il tuo nome utente non viene aggiunto automaticamente al gruppo sudo (funziona per impostazione predefinita su Ubuntu). Tuttavia, puoi anche vederlo se hai creato un nuovo utente ma hai dimenticato di aggiungerlo al gruppo sudo o se un altro utente sul tuo sistema ha rimosso il nome utente dal gruppo sudo.
Puoi controllare se l'utente attualmente connesso appartiene al gruppo sudo usando il groups
Comando. Se il groups
Il comando non restituisce sudo
Nelle distribuzioni Linux basate su Debian, questo nome utente non può eseguire i comandi sudo
. Esempio con output di un utente Debian che non è nel gruppo sudo:
$ groups
logix cdrom floppy audio dip video pugdev netdev scanner lpadmin
Ti potrebbe piacere:come installare l'ultimo Firefox (non ESR) su Debian 10 Buster (stabile) o Bullseye (test)
La soluzione a questo è aggiungere questo utente al gruppo sudo. Ma come si ottiene il root in questo caso, dal momento che come utente normale non è possibile modificare o aggiungere utenti? Usa su -
(o sudo su -
), quindi aggiungi l'utente al gruppo sudo.
Quindi per ottenere il root, aggiungi il tuo utente a quel sudo
Raggruppa, usa:
su -
usermod -aG sudo YOUR_USERNAME
exit
Dove:
-
su
cambia all'utente root mentre-
esegue una shell di accesso in modo che cose come/etc/profile
,.bashrc
, e così via vengono eseguiti (questo è il modo in cui comandi comeusermod
sarà nel tuo$PATH
quindi non è necessario inserire il percorso completo dell'eseguibile). Puoi anche usaresudo su -
Invece disu -
- Devi sostituire
YOUR_USERNAME
con il nome utente che desideri aggiungere al gruppo sudo. - Ho usato
usermode
per aggiungere un gruppo a un utente esistente poiché dovrebbe funzionare su qualsiasi distribuzione Linux.adduser
ouseradd
può essere utilizzato anche per (adduser USERNAME -G sudo
), ma potrebbero non funzionare su tutte le distribuzioni Linux. Sebbene questo articolo sia per Debian, volevo renderlo possibile anche su altre distribuzioni Linux (ho notato cheadduser
non funziona su Solus OS, ad esempio). -
exit
la shell di root esiste in modo che tu possa eseguire nuovamente i comandi come un utente normale.
Dopodiché, sudo continua a non funzionare! Devi disconnetterti da questo utente e poi riconnetterti e sudo funzionerà.
Questo risolve il "Nome utente non è nel file sudoers. Questo incidente è stato segnalato" sulla tua macchina Debian, ma potresti riscontrare un altro problema in alcuni casi:sudo non è installato per impostazione predefinita. Questo è il caso, ad esempio, di un'installazione Debian minima. In questo caso, vedrai un errore come questo quando proverai a eseguire un comando con sudo:
$ sudo apt update
bash: sudo: command not found
In questo caso, installa sudo
su Debian in questo modo:
su - #or 'sudo su -'
apt install sudo
exit
Alcuni altri articoli Debian che potrebbero piacerti:
- Come eseguire il downgrade dei pacchetti a una versione specifica utilizzando apt in Debian, Ubuntu o Linux Mint
- Come visualizzare una cronologia dei pacchetti installati, aggiornati o rimossi in Debian, Ubuntu o Linux Mint [dpkg]
- Come elencare tutti i pacchetti in un repository su Ubuntu, Debian o Linux Mint [APT]
- Come trovare il pacchetto che fornisce un file (installato o meno) su Ubuntu, Debian o Linux Mint