Sur un système Ubuntu moderne (et de nombreuses autres distributions GNU/Linux), la réparation d'un fichier corrompu sudoers
est en fait assez facile, et ne nécessite pas de redémarrage, d'utilisation d'un CD live, ou d'accès physique à la machine.
Pour faire cela via SSH, connectez-vous à la machine et exécutez la commande pkexec visudo
. Si vous avez un accès physique à la machine, SSH n'est pas nécessaire ; il suffit d'ouvrir une fenêtre de Terminal et d'exécuter ce qui suit pkexec
comando.
En supposant que vous (ou un autre utilisateur) êtes autorisé à exécuter des programmes en tant que root
avec PolicyKit, vous pouvez entrer votre mot de passe, et ensuite il s'exécutera visudo
comme root
et vous pouvez réparer votre /etc/sudoers
.
Si vous avez besoin de modifier l'un des fichiers de configuration dans la section /etc/sudoers.d
(ce qui est peu fréquent dans cette situation, mais possible), utilisez pkexec visudo -f /etc/sudoers.d/_filename_
.
Si vous avez une situation connexe où vous devez exécuter des commandes d'administration système supplémentaires en tant que root pour résoudre le problème (également rare dans cette circonstance, mais courant dans d'autres), vous pouvez démarrer un Shell interactif root avec pkexec bash
. D'une manière générale, toute commande non graphique que vous exécutez avec la commande sudo
peut être exécuté avec pkexec
à la place.
(S'il y a plus d'un compte utilisateur sur le système autorisé à exécuter des programmes en tant que root
avec PolicyKit, alors pour n'importe laquelle de ces actions, il vous sera demandé de sélectionner celle que vous voulez utiliser, avant de vous demander votre mot de passe).
Si cela ne fonctionne pas - par exemple, si aucun utilisateur n'est autorisé à exécuter des programmes en tant que root via PolicyKit -, démarrez à partir d'un CD live Ubuntu (comme le CD que vous avez probablement utilisé pour installer Ubuntu) et montez le système de fichiers du système installé. Vous pouvez le faire en exécutant sudo parted -l
pour voir vos partitions - il n'y a probablement qu'une seule partition ext4, et c'est le système de fichiers racine.
Supposons que le système de fichiers racine du système Ubuntu installé soit sur /dev/sda1
. Ensuite, vous pouvez le monter avec sudo mount /dev/sda1 /mnt
. Ensuite, vous pouvez éditer le fichier sudoers du système installé avec sudo nano -w /mnt/etc/sudoers
. Ou, encore mieux, vous pouvez l'éditer avec
sudo visudo -f /mnt/etc/sudoers
(ce qui vous empêchera d'enregistrer un fichier sudoers avec une syntaxe incorrecte).