Come faccio ad aggiungermi di nuovo come utente sudo?


64

Oggi ho installato Ubuntu 11.10 e ho installato VirtualBox. Ciò mi ha richiesto di aggiungermi al gruppo vboxusers e poiché l'11.10 sembra non avere più un'app grafica per aggiungere utenti a un gruppo, ho eseguito il comando seguente:

sudo usermod -G vboxusers stephane

Questo è un problema. Ora vedo che cosa avrei dovuto correre invece è:

sudo usermod -aG vboxusers stephane

Il risultato finale è che non sono più nei gruppi in cui dovrei essere. Incluso qualsiasi gruppo sia richiesto per eseguire "sudo". Quando eseguo qualsiasi comando come sudo ora, ottengo quanto segue:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

C'è un modo per risolvere questo problema o devo reinstallare di nuovo da zero?

Risposte:


65
  1. Durante l'avvio, tieni premuto il tasto sinistro Shift e dovresti vedere il menu di GRUB.

  2. Seleziona la voce contenente ( modalità di ripristino ) e attendi.

  3. Ora dovresti presentarti un menu. Selezionare:

    remount    Remount / read/write and mount all other file systems 
    

    e attendere che i file system vengano montati con autorizzazioni di lettura / scrittura, quindi premere Enter.

    Se questa opzione non viene visualizzata o non funziona, puoi invece scegliere l' rootopzione e utilizzare il comando seguente per montare la partizione di sistema:

    mount -o remount /
    

    Puoi verificare qual è la tua partizione di sistema con fsckcomando o visualizzando /etc/mtab.

    Dopo aver eseguito correttamente il comando mount (ovvero nessun messaggio di errore), procedere direttamente al passaggio 5 di seguito.

  4. Dopo aver scelto l' remountopzione, il menu si apre di nuovo. Selezionare:

    root       Drop to root shell prompt
    
  5. Ora inserisci uno dei seguenti comandi per aggiungere nuovamente il tuo utente al admingruppo (per Ubuntu 11.10 e precedenti):

    adduser <USERNAME> admin
    

    o al sudogruppo (per Ubuntu 12.04 e versioni successive):

    adduser <USERNAME> sudo
    
  6. Riavvia e dovresti essere in grado di sudoriutilizzarlo.


3
Se non vedi il menu "rimonta", puoi prima selezionare "fsck", rimonterà il tuo filesystem in lettura / scrittura. Successivamente, puoi aggiungere il tuo utente in modalità root.
Jiejing Zhang,

1
Questo ha funzionato per me, tranne per il fatto che ho dovuto montare il filesystem usando il comando mount -o remount,rw /.
Passuf

Funziona perfettamente. Inoltre, sembra un grosso problema di sicurezza. Immagino che dovresti disabilitare questa funzione su macchine sensibili? - In modalità di ripristino, non sono mai in grado di riavviare. Devo sempre usare reboot -f.
Romain Vincent,

15

Se il login di root è abilitato sul tuo sistema, rilascia il terminale tramite Control+ Alt+ F1senza accedere a X. Accedi come root e quindi aggiungi l'utente desiderato al admingruppo (per Ubuntu 11.10 e precedenti):

adduser desired_user_name admin

Per Ubuntu 12.04 e versioni successive, aggiungi l'utente al sudogruppo:

adduser desired_user_name sudo

Se non hai abilitato il login di root, scegli la modalità di ripristino da Grub e quindi prova la shell di root.

Shell principale

Montare il file system come lettura-scrittura:

mount -o rw,remount /

Successivamente è possibile aggiungere nuovamente l'utente desiderato al admin(o sudo) gruppo.


Ma non riesco ad accedere a sudo dal mio utente!
Jamie Hutber,

7

Ho provato varie combinazioni dopo aver fatto la stessa cosa che l'opzione di menu rimonta non sembra essere in 12.10. Ho provato tutto il resto in questo post dalla radice. L'ultimo è stato

umount -a
mount -o -w /<path> /

Ciò ha comportato che il filesystem fosse ancora ro a causa di un'impostazione in fstab per l'avvio ro sull'errore del filesystem penso, con esso affermando che sembrava essere ro dopo mount.

Finalmente ci sono riuscito

mount -o rw,remount /

Anche se non sono sicuro di come questo sia diverso dal precedente set di comandi.

Dopo aver applicato questa variazione, l'aggiunta di un utente al gruppo admin(11.10 e ealrier) o sudo(12.04 e versioni successive) viene eseguita allo stesso modo:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later

2

Vecchia domanda ma è successo anche a me (Ubuntu 14.04).

Non sono stato in grado di accedere alla modalità di ripristino e ottenere l'accesso a una shell di root, come descrivono molte risposte qui e altrove: l'accesso alla shell di root da GRUB sembra essere protetto da password.

Quindi ho risolto il problema in questo modo:

  1. avviare su una chiavetta USB live
  2. apri una conchiglia
  3. accedere al file system HD Linux principale (è possibile trovare il punto di montaggio nella barra degli indirizzi di Esplora file GUI, in genere dopo CTRL-L). cddentro.
  4. modifica il file etc/group(ad esempio con nano etc/groupo altro)
  5. trova la riga "sudo". Dovrebbe appariresudo:x:27:admin,bob,alice
  6. aggiungiti alla sudoriga, separati da virgola

Ovviamente, questo implica che il file etc/sudoerscontiene ancora la linea

%sudo   ALL=(ALL:ALL) ALL

nel senso che tutti i membri del gruppo sudohanno il controllo totale. Prima controlla quello.

Ha funzionato senza problemi.


0

Ho fatto lo stesso errore aggiungendo il mio account a un gruppo (ho dimenticato -a). Avevo installato il mio sistema con il login di root bloccato e il mio account era l'unico sulla macchina.

La risposta accettata non mi ha aiutato. Durante l'avvio in modalità di ripristino, tutto ciò che ho ricevuto è stato un messaggio inutile

Impossibile aprire l'accesso alla console, l'account di root è bloccato. Vedi la pagina man sulogin (8) per maggiori dettagli
Premi ENTER per continuare

Dopo aver premuto INVIO, il sistema si è avviato normalmente: nessuna fortuna ottenere l'accesso come root per risolvere il problema. Lascio questa risposta nel caso in cui qualcuno finisca nelle mie scarpe a questo punto. Utilizzare quanto segue solo se non è possibile accedere alla modalità di ripristino tramite il menu di Grub .

Una procedura dettagliata per ottenere la shell di root:

  1. Avvia nel menu di Grub ed evidenzia (ma non premere Enter!) L'opzione di avvio normale (predefinita, non di ripristino!).
  2. Press e. Grub mostrerà un editor da riga di comando con più righe, ognuna delle quali può sembrare non familiare se non intimidatoria. Non preoccuparti, eventuali modifiche apportate non vengono salvate in modo permanente.
  3. Trova la riga che legge linux ... ro .... Questa è la riga di comando del kernel. Sostituire il rotoken con rw, per rendere il filesystem di root in lettura / scrittura, e aggiungere un altro parametro di riga di comando del kernel, init=/bin/sh. Questo indica al kernel di eseguire shinvece di /sbin/init. Alla fine, la linea dovrebbe apparire come linux ... rw init=/bin/sh .... Nota: puoi cavartela anche con il semplice grub>prompt. Sarò felice di spiegare come, passo dopo passo, se tutto il resto fallisce per te; lascia un commento a questa risposta.
  4. Dopo la modifica, premere F10per utilizzare i comandi dell'editor per avviare il sistema (o leggere le istruzioni su come avviare proprio sotto la finestra dell'editor, se Grub è compilato in modo diverso). Otterrai il prompt della shell di root, poiché il processo di init viene eseguito come PID 1 con l'identità di root.
  5. Apporta la modifica che desideri apportare, ad esempio usermod -a -Gadm,sudo YOURUSERID. Conferma id -a YOURUSERIDche hai ottenuto la tua iscrizione sudo. Nel caso in cui venga visualizzato un errore "comando non trovato", utilizzare /sbin/usermode /bin/id.
  6. A questo punto non è possibile arrestare o riavviare il sistema in modo pulito. reboot, halto poweroffnon funzionerà, e exitdalla shell provocherà un panico nel kernel, poiché il processo PID 1 non dovrebbe terminare. Quindi i prossimi due comandi che devi emettere sono:

    sync
    exec /sbin/init
    

    syncnel caso in cui qualcosa vada storto, salvare tutte le modifiche su disco e execsostituire la shell con il reale init(che può essere systemd, upstart o System V init, ma viene sempre chiamato /sbin/init). Molto probabilmente il sistema continuerà ad avviarsi normalmente (nessuna modalità di ripristino).

  7. Accedi e riavvia il sistema una volta, ad es. sudo reboot- avresti dovuto riavere il tuo privilegio sudo. Si consiglia un riavvio, poiché (anche se molto raramente) initpossono essere passati parametri aggiuntivi durante un avvio normale e ciò non è stato fatto. In caso di execguasto, è sufficiente ripristinare la macchina e lasciarlo avviare normalmente. Tutti i moderni filesystem di journaling come ext4, xfs e btrfs si ripristinano rapidamente (pochi secondi per un controllo del journal al massimo, se syncediti prima del reset), e sarai pronto.

Un po 'di sfondo

C'è stata una discussione sulla segnalazione di bug di Debian proprio su questo problema e, per quanto ho capito, è stata decisa una caratteristica e non un errore, che ritengo sia stato piuttosto un errore. Essendo stato in questo settore per 25 anni, non posso fare a meno di essere completamente in disaccordo con l'argomento di Michael Biebl nel messaggio n. 31 in quel thread:

Considera questo: hai un laptop con un account root bloccato. Per impostazione predefinita, il boot loader grub genera una voce di avvio per la modalità di salvataggio. Quindi, anche se si blocca il bios per non consentire l'avvio da CD-Rom o USB e si protegge la password con grub, qualcuno potrebbe ottenere facilmente l'accesso root se si lascia il computer incustodito per un momento.

L'obiezione corretta, IMO, se non abbastanza generale, è stata fatta nel messaggio # 70 da Felipe Sateler:

Per molti (la maggior parte?) Computer, l'accesso fisico significa perdita di sicurezza in termini di gioco, poiché puoi semplicemente smontare la scatola e ottenere il disco rigido.

Questo è vero soprattutto per il laptop, menzionato nell'argomento di Michael: se lo lasci incustodito per un momento, e qualcuno sta cercando i tuoi dati, il laptop semplicemente non sarà più visto. E per qualsiasi macchina, non "molti" o "la maggior parte", anche quelli imbullonati in 8 punti in un rack, non appena l'attaccante ottiene l'accesso fisico alla macchina, il gioco è davvero finito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.