Je reçois des erreurs Sudo, comment puis-je corriger cette erreur?
Sudo: /etc/sudoers is mode 0777, should be 0440
Sudo: no valid sudoers sources found, quitting
Après ce post :
Un terminal noir devrait apparaître, à ce stade, vous pouvez exécuter cette commande (vous devez avoir les privilèges root):
chmod 0440 /etc/sudoers
Vous devrez installer Ubuntu sur un LiveCD, démarrer ce dernier, monter votre partition Ubuntu sur le disque dur (ouvrez un navigateur de fichiers, comme Nautilus, et cliquez sur votre partition Ubuntu; ou cliquez sur Lieux -> "Partition xxGB/Votre partition Ubuntu". ").
Ensuite, ouvrez un terminal dans la session LiveCD et tapez ces deux commandes:
cd /media/<name of permanent ubuntu partition>/etc
Sudo chmod 0440 sudoers
S'il y a des erreurs (comme indiqué ci-dessous), suivez l'invite d'erreur et ajustez chaque fichier en conséquence en utilisant l'une des deux étapes ci-dessus:
Sudo apt-get update Sudo: /etc/sudoers.d/README est en mode 0777, doit être 0440 Sudo:/var/lib/Sudo en écriture pour le non-propriétaire (040777), doit être en mode 0700 [Sudo] mot de passe pour
Corrigez en suivant avec:
chmod 0440 /etc/sudoers.d/README
chmod 0700 /var/lib/Sudo
Ces deux commandes doivent être utilisées de manière appropriée avec les étapes décrites ci-dessus. Ils modifieront les autorisations de fichier associées à ce fichier. 0440 donnera le propriétaire (racine) et le groupe autorisations de lecture et 0700 donnera au propriétaire (racine), les autorisations de lecture, d'écriture et d'exécution.
Sudo
est cassé dans cette situation, mais pkexec
(la ligne de commande Frontend to PolicyKit ) fonctionne toujours, vous pouvez donc le réparer en une seule commande. Aucun redémarrage n'est nécessaire.
pkexec chmod 0440 /etc/sudoers
Cela suppose que PolicyKit est installé. S'il s'agit d'un système de bureau (plutôt que d'un serveur sans interface graphique), c'est bien le cas.
Démarrez en mode de récupération, choisissez le shell racine et:
chmod 0440 /etc/sudoers
Ou si vous ne voulez pas redémarrer, vous pouvez utiliser cette alternative:
pkexec chmod 0440 /etc/sudoers
pkexec chmod 0440 /etc/sudoers.d/README
cela changera la permission. Essayez ça va marcher.
Dans Ubuntu, vous pouvez d'abord frapper Ctrl+Alt+T qui ouvre le terminal. Après cela, vous pouvez copier-coller la commande ci-dessous avec Ctrl+C et coller dans le terminal avec Ctrl+Shift+V.
pkexec chmod 0440 /etc/sudoers
Qu'avez-vous fait pour obtenir ces erreurs?
Si vous avez: Sudo chmod -R 777 /etc
, vous avez besoin d’un Live CD pour le réparer.
/etc
si vous avez mis /etc
sur une partition séparée). Cela peut être fait en utilisant un navigateur de fichiers comme Nautilus ou le menu Lieux .ls -l /media
. Il est peut-être nommé ubuntu
ou disk
. Dans les étapes suivantes, je supposerai ubuntu
.Dans le terminal, définissez des autorisations restrictives par défaut:
Sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
Sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
Ensuite, utilisez le Live CD comme point de référence pour la restauration des autorisations de fichiers. La commande ci-dessous modifiera les autorisations de fichier pour /etc/media/ubuntu
en utilisant le dossier /etc
du Live CD comme point de référence. Cela ne modifiera que les autorisations sur les fichiers (-type f
) et les répertoires (-type d
) sur le même système de fichiers (-xdev
). Toutes les erreurs sont écrites dans ~/errors.log
Des erreurs du type "fichier non trouvé" indiquent qu'un fichier du système est installé, mais introuvable sur le Live CD. La commande de l'étape 5 doit définir les autorisations appropriées, mais pour obtenir les meilleurs résultats, il est préférable de réinstaller les packages.
cd /media/ubuntu && Sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
~/errors.log
quelque part (comme http://paste.ubuntu.com/ ) afin que vous puissiez l'ajouter en commentaire à cette réponse si vous aviez des problèmes avec les applications.Pour moi, je devais ajouter une étape supplémentaire aux suggestions pkexec
, par this , j’ai eu la chance d’avoir 2 sessions ssh en cours lorsque j’ai commis la stupide erreur:
echo $$
pour obtenir le PIDpkttyagent --process PID_FROM_STEP2
au terminal 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers