Stavo usando Ubuntu 14.04 solo di recente. E in qualche modo ho cambiato il permesso a /etc/sudoers
file. Quindi ogni volta che eseguo qualsiasi comando usando sudo ottengo questi errori:
sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Sono stato in grado di accedere come utente e modificare le autorizzazioni di nuovo. Quindi ora quando eseguo ls -l /etc/sudoers
comando che ottengo:
-r--r----- 1 root root 755 жов 14 2016 /etc/sudoers
Ma non sono stato in grado di fare il root come proprietario. E ricevo ancora gli stessi errori, quando provo a user sudo.
Ho letto molte cose spaventose su questo problema. Quindi potresti aiutarmi a risolvere questo problema? Sarei molto grato per un consiglio.
Risposta accettata:
Scorciatoia:
dpkg-riconfigura: Se solo qualcosa non va con il permesso di /etc/sudoers
file, con accesso root eseguito:dpkg-reconfigure sudo
. qualcosa come pkexec dpkg-reconfigure sudo
dovrebbe fare il lavoro.
visdo: Se dpkg-reconfigure
non funziona per te, quindi esegui semplicemente pkexec visudo
, i sudoers
il file verrà aperto in un editor, quindi salva e chiudi il file, visudo
risolverà l'autorizzazione per te.
Dopotutto, se hai cambiato sudoers.d
anche i permessi della directory, quindi esegui:
pkexec chmod 755 /etc/sudoers.d
Se i file sono presenti e le loro autorizzazioni sono come dovrebbero essere ma ricevi ancora questo messaggio di errore, l'unica possibilità che mi viene in mente è che tu abbia violato altre autorizzazioni e sudo
non ha accesso a /etc/sudoers
. l'ipotesi più possibile sono i permessi di /etc/
.
Quindi corri:
pkexec chmod 755 /etc
Abbiamo finito, tuttavia, se desideri istruzioni dettagliate per ripristinare sudoers
rotti o rimossi Segue un file con permessi incasinati, useremo un altro modo per sistemare le cose.
Introduzione
Ho incasinato il mio /etc/sudoers
file per ottenere un errore simile al tuo. Mi avvicino molto, quindi cancello completamente il mio ed è diventato esattamente come il tuo.
Cosa ho fatto per risolvere il problema:
Il mio account di root era bloccato e non aveva alcuna password, quindi era impossibile per me fare ciò che volevo. tuttavia, se il tuo account root è attivo e ha una password, passa all'utente root con su -
e salta questa parte. in caso contrario, segui le istruzioni.
Prima di andare oltre devo dire che puoi sempre usare un disco live per fare un chroot
nel tuo sistema, ci sono molte istruzioni su chroot usando un disco live, quindi non mi preoccuperò di dare di nuovo tutte quelle istruzioni, invece presumo che non abbiamo alcun disco live e lo siamo useremo ciò che già abbiamo per risolvere questo problema. Se sei soddisfatto di cheroot
vai da quella parte, anche questo farebbe il lavoro.
Ottenere l'accesso come root
- Riavvia il sistema
- Quando appare grub, premi e per modificarlo
- Alla fine della riga che inizia con linux, aggiungi
init=/bin/bash
- Premi CTRL +X
Ora verrai inserito in una shell bash con accesso root. prima rimontare il file system con accesso in scrittura:
mount -o remount,rw /
Quindi sblocca l'utente root e imposta una password su di esso:
passwd -u root
passwd root
Ora se il tuo /etc/sudoers
esiste ancora su /etc
, spostalo da qualche altra parte:
mv /etc/sudoers /etc/sudoers.broken
Perché diremo al nostro gestore di pacchetti che questo file è mancante e lo sostituirà per noi con uno corretto, quindi non dovrebbe essere lì.
Abbiamo quasi finito, riavvia il sistema. accedi come tuo normale utente, apri un terminale quindi prova su -
per passare all'utente root. Non sono stato in grado di farlo, quindi quello che ho fatto è stato usare CTRL +ALT +F1 , per accedere a tty1
, quindi ho effettuato l'accesso come root con la nuova password che abbiamo appena impostato.
Riporta i sudoer
Dovremmo semplicemente reinstallare sudo
pacchetto, tuttavia la reinstallazione non riporta questo file, dovremmo dire a dpkg
per correggere anche i file di configurazione mancanti, come questo:
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall sudo
Ricorda che ti chiederà di installare /etc/sudoers
file, inserendo y
dì di sì.
Se non ha funzionato per te, fai come segue come root:
mkdir /root/tmp
cd /root/tmp
apt-get download sudo
dpkg-deb -x sudo*.deb .
cp etc/sudoers /etc/sudoers
cd /root
rm -r tmp
Ora potrebbero esserci delle differenze tra i permessi, esegui dpkg-reconfigure sudo
per risolverlo. se non ha funzionato, esegui visudo
come utente root, sudoers
il file verrà aperto in un editor, quindi salva e chiudi il file, visudo
risolverà l'autorizzazione per te.
Se tutto va bene, il tuo file sudoers tornerà e potrai usare sudo come eri prima.