Cette erreur se produit chaque fois que j'essaie de travailler avec sudo
. J'ai changé les permissions de /var/
dossier vers 777
et je pense que cela provoque l'erreur. S'il vous plaît, aidez-moi à récupérer un sudo
fonctionnel et /var
.
Meilleure réponse
Vous avez un très gros problème, mais pas vraiment pour les raisons indiquées ici.
Modification des autorisations sur l'ensemble de /var
fera en sorte qu'il est probable que vous ne les récupérerez pas tous correctement, car vous ne saurez pas quelles autorisations chaque le fichier doit avoir . Vous pourriez avoir des problèmes plus tard. Selon les circonstances, vos problèmes peuvent être liés à la sécurité.
Par conséquent, vous voudrez peut-être envisager de réinstaller Ubuntu. Alternativement, vous pouvez essayer d'obtenir les autorisations des fichiers dans un autre système similaire et ininterrompu. Les autorisations sont généralement les mêmes. Habituellement. Un problème plus grave est qu'il est probable que votre système ait des fichiers dans /var
qui ne sont pas présents sur l'autre, donc probablement pas tous les autorisations seront corrigées.
Exécuter des tâches administratives sur un système de bureau sans un sudo
fonctionnel est généralement trivialement facile, cependant.
Il est facile de modifier les autorisations lorsque vous savez ce qu'elles doivent être et nécessite rarement de démarrer en mode de récupération ou à partir d'un CD live. En effet, bien que cela ne soit pas largement connu, les versions de bureau d'Ubuntu (et la plupart des autres systèmes d'exploitation GNU/Linux de nos jours) ont deux moyens mis en place pour effectuer des tâches administratives :
sudo
, qui ne fonctionnera pas car il nécessite les autorisations dans/var
pour être correct.- PolicyKit, qui a tendance à être plus tolérant vis-à-vis des mauvaises autorisations et qui fonctionne généralement toujours.
Alors que nous avons tendance à penser à sudo
comme la façon dont vous effectuez des actions en tant que root
sur Ubuntu, en fait PolicyKit est le moyen par lequel la plupart des utilitaires graphiques, mais pas tous, deviennent root
. (C'est comme ça depuis quelques années maintenant.)
En fait, l'exécution manuelle d'un programme graphique avec PolicyKit est parfois une entreprise importante car les applications graphiques doivent avoir des fichiers de configuration spéciaux pour que PolicyKit soit prêt à les exécuter. Mais les applications terminales ne pas - il est tout aussi facile d'exécuter une commande textuelle avec PolicyKit qu'avec sudo
.
Pour ce faire, tapez pkexec
où vous auriez autrement tapé sudo
. (Ils ne prennent pas toutes les mêmes options de ligne de commande, mais la syntaxe la plus courante pour sudo
est sudo command
, et pkexec
fonctionne parfaitement à sa place.)
Donc, parce que sudo
est cassé, vous ne pouvez pas exécuter :
sudo chmod 0755 /mnt/var/lib/sudo
sudo chmod 0700 /mnt/var/lib/sudo/<username>
Mais vous pouvez exécuter :
pkexec chmod 0755 /mnt/var/lib/sudo
pkexec chmod 0700 /mnt/var/lib/sudo/<username>
C'est un bon début, et cela fera probablement sudo
travaille encore. (Cela ne va pas réparer tous les autres fichiers dans /var
, cependant.)
Situations connexes (mais, dans la plupart des cas, non identiques) où pkexec
est utile :
‣ Comment modifier un fichier /etc/sudoers invalide ? Cela génère une erreur et cela ne me permet pas de modifier à nouveau pour le corriger répertoire usr'
‣ Comment réparer sudo après "chmod -R 777 /usr/bin" ?, erreur sudo, est le mode 0777, devrait être 0440,
Comment réparer "sudo :/etc/sudoers est le mode 0640, devrait être 0440 ?"
‣ L'installation de ZFS a modifié mon fichier sudoers
‣ Le mot de passe ne fonctionne pas pour sudo ("échec d'authentification")
‣ Pourquoi rien ne fonctionne après avoir modifié au hasard certaines autorisations de fichiers ?
‣ modification de l'autorisation /etc dans oneiric (ubuntu11.10) en utilisant "sudo chmod 665 /etc" ne peut pas utiliser sudo maintenant
‣ Comment exécuter des commandes sudo spécifiques sans mot de passe ? (juste si quelque chose ne va pas)
‣ Impossible d'écrire /etc/sudoers à partir du live CD d'Ubuntu (juste si quelque chose ne va pas)