Je n'utilisais Ubuntu 14.04 que récemment. Et d'une manière ou d'une autre, j'ai changé l'autorisation de /etc/sudoers
dossier. Ainsi, chaque fois que j'exécute une commande en utilisant sudo, j'obtiens ces erreurs :
sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
J'ai pu me connecter en tant qu'utilisateur et modifier les autorisations. Alors maintenant, quand je lance ls -l /etc/sudoers
commande que j'obtiens :
-r--r----- 1 root root 755 жов 14 2016 /etc/sudoers
Mais je n'ai pas pu faire de root un propriétaire. Et j'obtiens toujours les mêmes erreurs lorsque j'essaie d'utiliser sudo.
J'ai lu beaucoup de choses effrayantes sur ce problème. Alors pourriez-vous m'aider à résoudre ce problème ? Je vous serais très reconnaissant d'avoir des conseils.
Réponse acceptée :
Raccourci :
dpkg-reconfigure : Si seulement quelque chose ne va pas avec la permission de /etc/sudoers
fichier, avec un accès root, exécutez :dpkg-reconfigure sudo
. quelque chose comme pkexec dpkg-reconfigure sudo
devrait faire le travail.
visudo : Si dpkg-reconfigure
ne fonctionne pas pour vous, alors exécutez simplement pkexec visudo
, les sudoers
le fichier sera ouvert dans un éditeur, puis enregistrez et fermez simplement le fichier, visudo
corrigera l'autorisation pour vous.
Après tout, si vous avez modifié sudoers.d
également les autorisations de répertoire, puis exécutez :
pkexec chmod 755 /etc/sudoers.d
Si les fichiers sont là et que leurs autorisations sont comme il se doit mais que vous obtenez toujours ce message d'erreur, la seule possibilité qui me vient à l'esprit est que vous avez cassé d'autres autorisations et sudo
n'a pas accès à /etc/sudoers
. la supposition la plus possible est les autorisations de /etc/
.
Alors lancez :
pkexec chmod 755 /etc
Nous avons terminé, cependant si vous voulez une instruction détaillée pour restaurer les sudoers
cassés ou supprimés fichier avec des autorisations foirées, nous allons utiliser un autre moyen de réparer les choses.
Présentation
J'ai foiré mon /etc/sudoers
file pour obtenir une erreur similaire à la vôtre. Je me rapproche vraiment, alors j'ai complètement supprimé le mien et il est devenu exactement comme le vôtre.
Ce que j'ai fait pour résoudre le problème :
Mon compte root était verrouillé et il n'avait pas de mot de passe, il m'était donc impossible de faire ce que je voulais faire. cependant si votre compte root est actif et a un mot de passe, passez en utilisateur root avec su -
et sautez cette partie. sinon, suivez les instructions.
Avant d'aller plus loin, je dois mentionner que vous pouvez toujours utiliser un disque live pour faire un chroot
dans votre système, il y a beaucoup d'instructions sur le chroot utilisant un disque live, donc je ne vais pas m'embêter à donner à nouveau toutes ces instructions, à la place, je vais supposer que nous n'avons pas de disque live et que nous sommes allons utiliser ce que nous avons déjà, pour résoudre ce problème. Si vous êtes satisfait de cheroot
allez par là, ça ferait aussi l'affaire.
Obtenir un accès root
- Redémarrez votre système
- Lorsque grub apparaît, appuyez sur e pour le modifier
- A la fin de la ligne qui commence par linux, ajoutez
init=/bin/bash
- Appuyez sur CTRL +X
Vous allez maintenant être déposé dans un shell bash avec un accès root. remontez d'abord le système de fichiers avec un accès en écriture :
mount -o remount,rw /
Déverrouillez ensuite l'utilisateur root et définissez-lui un mot de passe :
passwd -u root
passwd root
Maintenant, si votre /etc/sudoers
existe toujours sur /etc
, déplacez-le ailleurs :
mv /etc/sudoers /etc/sudoers.broken
Parce que nous allons dire à notre gestionnaire de paquets que ce fichier est manquant, et il va le remplacer pour nous par un fichier correct, donc il ne devrait pas être là.
Nous avons presque terminé, redémarrez votre système. connectez-vous en tant qu'utilisateur normal, ouvrez un terminal puis essayez su -
pour passer en utilisateur root. Je n'ai pas pu le faire, donc ce que j'ai fait a été d'utiliser CTRL +ALT +F1 , pour aller dans tty1
, puis je me suis connecté en tant que root avec le nouveau mot de passe que nous venons de définir.
Faire revenir les sudo
Nous devrions simplement réinstaller le sudo
package, cependant la réinstallation ne ramène pas ce fichier, nous devrions dire au dpkg
pour corriger également les fichiers de configuration manquants, comme ceci :
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall sudo
N'oubliez pas qu'il vous demandera d'installer le /etc/sudoers
fichier, en insérant y
dis oui.
Si cela n'a pas fonctionné pour vous, procédez comme suit en tant que 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
Maintenant, il peut y avoir des différences entre les autorisations, exécutez dpkg-reconfigure sudo
réparer. si cela ne fonctionne pas, exécutez visudo
en tant qu'utilisateur root, les sudoers
le fichier sera ouvert dans un éditeur, puis enregistrez et fermez simplement le fichier, visudo
corrigera l'autorisation pour vous.
Si tout se passe bien, votre fichier sudoers sera de retour et vous pourrez utiliser sudo comme vous l'étiez auparavant.