Domanda Come modificare un file '/ etc / sudoers' non valido?


Come posso modificare un file sudoers non valido? Getta sotto l'errore e non mi consente di modificarlo di nuovo per risolverlo.

Ecco cosa succede:

$ sudo visudo

>>> /etc/sudoers: syntax error near line 28 <<<
sudo: parse error in /etc/sudoers near line 28
sudo: no valid sudoers sources found, quitting

206
2017-10-30 19:15


origine


ottima domanda considerando questa pagina crea quell'errore help.ubuntu.com/community/RootSudoTimeout


risposte:


Su un moderno sistema Ubuntu (e su molte altre distribuzioni GNU / Linux), correggendo un file corrotto sudoers il file è in realtà abbastanza semplice e non richiede il riavvio, l'utilizzo di un CD live o l'accesso fisico alla macchina.

Per fare ciò tramite SSH, accedere alla macchina ed eseguire il comando pkexec visudo. Se si ha accesso fisico alla macchina, SSH non è necessario; basta aprire una finestra di Terminale ed eseguirla pkexec comando.

Supponendo che tu (o qualche altro utente) sia autorizzato a eseguire programmi come root con PolicyKit, è possibile inserire la password, quindi verrà eseguita visudo come roote puoi sistemare il tuo /etc/sudoers.

Se è necessario modificare uno dei file di configurazione in /etc/sudoers.d (che in raro in questa situazione, ma possibile), utilizzare pkexec visudo -f /etc/sudoers.d/nome del file.

Se si dispone di una situazione correlata in cui è necessario eseguire ulteriori comandi di amministrazione del sistema come root per risolvere il problema (anche raro in questa circostanza, ma comune in altri), è possibile avviare una shell di root interattiva con pkexec bash. In generale, qualsiasi comando non grafico con cui avresti eseguito sudo può essere eseguito con pkexec anziché.

(Se nel sistema è autorizzato più di un account utente a eseguire programmi come root con PolicyKit, quindi per ognuna di queste azioni, ti verrà chiesto di selezionare quale utilizzare, prima di chiedere la tua password.)


Se questo non funziona, ad esempio se non ci sono utenti autorizzati a eseguire programmi come root tramite PolicyKit, quindi avviare da un Live CD di Ubuntu (come il CD che probabilmente hai usato per installare Ubuntu) e montare il filesystem per il sistema installato. Puoi farlo correndo sudo parted -l per vedere le tue partizioni - probabilmente c'è solo una partizione ext4, e questo è il filesystem di root.

Supponiamo che il filesystem di root del sistema Ubuntu installato sia su / dev / sda1. Quindi potresti montarlo con sudo mount /dev/sda1 /mnt. Quindi è possibile modificare il file sudoers del sistema installato con sudo nano -w /mnt/etc/sudoers. O, ancora meglio, puoi modificarlo con

sudo visudo -f /mnt/etc/sudoers

(che impedirà di salvare un file sudoers con sintassi errata).


317
2017-10-30 19:45



pkexec / usr / sbin / visudo ha funzionato su debian 7 - marinara
Non potevano anche solo avviare la modalità di ripristino? - Seth♦
MUCCA SACRA! Molte grazie! Salvato il mio bacon. Aggiunto un file come suggerito nella directory etc / sudoers.d / USARE UN EDITOR DI TESTO REGOLARE (D-O-N-T__D-O__T-H-A-T !!!). Perso ogni possibilità di fare privilegi elevati, INCLUDERE, modificare il file incriminato. Questo ha aiutato a modificare il file. Però strano, ho dovuto prima modificare / etc / sudoers, poi ho trovato gli errori nell'altro file e l'ho aperto per me. EVEN WEIRDER, la direttiva nel file / etc / sudoers 'inlcudedir /etc/sudoers.d' è stata commentata e continua a includerla. - Dennis
@Dennis Un po 'confuso, #include direttive in sudoers i file sono trattati in modo speciale; Il principale # non fa in modo che il resto della linea venga interpretato come un commento, in quel caso. Come man sudoers dice: "Il cancelletto ('#') è usato per indicare un commento (a meno che non faccia parte di una direttiva #include o meno ..." Vedi anche visudo: #includedir sudoers.d (archiviato da lzone.de/blog). - Eliah Kagan
Il mio utente è sudoer ma ho ricevuto questo errore: Errore nell'esecuzione del comando come altro utente: Non autorizzato - SuB


Usa sempre visudo per modificare il file sudoers, non modificarlo direttamente. Ti impedirà di salvarlo su disco a meno che non lo convalidi.


44
2017-11-20 17:08



il senno di poi è 20/20 - code_monk
Non impedirà il disastro. È abbastanza facile negare validamente te stesso. - Joshua
Può essere usato da scritps? Se é cosi, come? - Lukas
Non ho installato visudo. Così ho fatto pkexec vim. Quindi mostra l'elenco degli utenti e chiede la password. Quando fornisco la password, genera un errore come "Errore nell'esecuzione del comando come un altro utente: Non autorizzato". Per favore aiuto - Shyamkkhadka


Digitare:

pkexec visudo

Quindi cambia l'ultima riga

#includedir /etc/sudoers

A:

#includedir /etc/sudoers.d

Dovrebbe risolvere il tuo problema.


20
2018-02-21 18:23



Ho notato che rimuovere il leader # a partire dal #includedir causa errori di sintassi, il # fa parte della direttiva, almeno su Ubuntu 12.10. - SAFX
Mi ha appena risparmiato un sacco di mal di testa. Grazie mille :) - Nitroware
Non ho installato visudo. Così ho fatto pkexec vim. Quindi mostra l'elenco degli utenti e chiede la password. Quando fornisco la password, genera un errore come "Errore nell'esecuzione del comando come un altro utente: Non autorizzato". Per favore aiuto - Shyamkkhadka


se qualcun altro come me non aveva pkexec installato, o non è stato in grado di eseguire vi, visudo, nano o qualsiasi altro editor per modificare il file sudoers si può essere sicuri con questo processo .. Sono stato salvato con questo:

  • riavvio
  • tieni premuto il tasto MAIUSC durante l'avvio per avere l'opzione per la modalità di ripristino (inseriscilo)
  • inserisci la riga di comando come root (seconda ultima opzione al mio menu di grub)
  • rimontare il dispositivo di avvio per rw e applicare exec right per l'utente e modificare il file

    mount -n -o remount,rw /
    chmod u+x /etc/sudoers
    nano /etc/sudoers
    

risolvi questo errore e sii felice :)


10
2017-10-20 21:40



Mentre la soluzione pkexec suggerita da @ eliah-kagan sembra essere più facile, questa è più universale. Sulla mia macchina si è scoperto che non è stato installato pkexec e ovviamente non è stato possibile installarlo perché sudo apt-get install pkexec in qualche modo non ha funzionato. - running.t


Non c'è niente di sbagliato #include sudoer.d rimuovere #include sudoer.d non farà alcuna differenza.

Ma assicurati di non avere errori di sintassi. Ho avuto lo stesso problema ma ho impiegato ore per risolverlo e ho capito che si tratta di errori di sintassi. Fare riferimento al manuale e farli bene.

Per esempio Dì il tuo nome utente è: dolly Ho usato seguendo che è sbagliato

 dolly ALL = (ALL) ALL NO PASSWD: ALL

la sintassi corretta è

dolly ALL = (ALL) ALL //give permission to everything, not good

o

dolly ALL=(ALL) NOPASSWD:/usr/bin/thurderbird //good, give specific permission

spero che questo ti aiuti


6
2017-07-02 23:15



Un approccio migliore che assicurarsi di non avere errori di sintassi è quello di utilizzare sempre visudo durante la modifica di questi file, che assicura che non si abbiano errori di sintassi per te, prima che modifichi il file. visudo non è solo per il montaggio /etc/sudoers- anche creerà e modificherà file in /etc/sudoers.d. Funzionerà anche con qualunque editor di testo desideri. Vedere la pagina di manuale per dettagli. - Eliah Kagan
Per quanto riguarda l'autorizzazione specifica, si ricorda che questo è utile solo per comandi / app molto semplici, perché qualsiasi app sufficientemente complessa (incluso thunderbird, che non dovrebbe mai essere eseguito come root in ogni caso) fornirà effettivamente all'utente l'accesso completo al sistema quando eseguito come root. Anche la funzionalità apparentemente semplice apre la porta all'accesso completo alla radice. Ad esempio, un utente che può eseguire un programma che può salvare un file in una posizione arbitraria come root può ottenere un accesso root (possono installare i propri /etc/sudoers, o se le limitazioni di sintassi lo impediscono, possono installarne di proprie /etc/crontab). - Eliah Kagan


Se hai incasinato il tuo file sudoers. Avrai bisogno di:

  • Riavvia in modalità di ripristino (hit escape durante l'avvio, scegli l'opzione della modalità di ripristino nella schermata di grub)
  • Scegli l'opzione "Abilita networking" (se non lo fai, il tuo filesystem sarà montato in sola lettura.
  • Scegli l'opzione 'Drop to root shell'
  • esegui visudo, correggi il tuo file
  • Riavvia con l'opzione grub normale

fonte :- http://mario.net.au/content/recover-etcsudoers-ubuntu-1204


5
2017-12-14 10:59



Ciao, rimuove l'iptables, i file del sistema esistente? - Shyamkkhadka


eseguire la modalità di ripristino, quindi digitare questo

chown -R root: root /etc/sudoers.d
chmod u = rwx, g = rx, o = rx /etc/sudoers.d/
chmod u = r, g = r, o = /etc/sudoers.d/*

solo il gruppo e la root dell'utente dovrebbero aver letto privelege


3
2017-11-20 17:11





Puoi modificare la tua voce di avvio anche in grub.

Riavvia semplicemente il tuo pc e aspetta che grub mostri. Quindi premere "e" sulla voce "Ubuntu" per modificarlo.

Cerca una riga con "linux =" o "kernel =" e aggiungi semplicemente un "singolo" alla fine di quella linea.

Quindi premere F10 per avviare questa voce di avvio modificata temporaneamente. Questo ti darà una shell (senza GUI) con i diritti di root e potrai modificare il file sudoers con s.th. come nano / etc / sudoers torna al suo stato precedente.

Quindi riavviare e fatto.


2
2018-01-13 04:41





Puoi anche accedere come root su a tty console con Ctrl+Fn (Fn da 1 a 6) ed eseguire visudo.


2
2018-03-09 07:12