GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Impossibile Stat /etc/sudoers:nessun file o directory di questo tipo?

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
Correlati:come personalizzare (aggiungere/rimuovere cartelle/directory) il menu "Luoghi" dell'applicazione "File" di Ubuntu 13.04?

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.


Ubuntu
  1. Errore nel file Sudoers? Ecco come puoi risolverlo.

  2. Risolto il problema con il file sudoers rotto – sudo:errore di analisi in /etc/sudoers vicino alla riga 21 [Ubuntu]

  3. unix:///var/run/supervisor.sock nessun file di questo tipo

  4. /dev/sdb:nessun file o directory di questo tipo (ma esiste /dev/sdb1 ecc.)

  5. Ha rotto il mio file /etc/sudoers su Amazon EC2

Comprendere la directory /etc/sysconfig

Comprendere la directory /etc/skel in Linux

Impossibile eseguire script bash anche come root?

Schema Regex per modificare il file /etc/sudoers

-bash:/usr/bin/virtualenvwrapper.sh:file o directory non presenti

cp:impossibile creare la directory:file o directory non presenti