web-dev-qa-db-fra.com

Comment se débarrasser - Sudo: /usr/lib/Sudo/sudoers.so doit uniquement être accessible en écriture pour le propriétaire Sudo: erreur fatale, impossible de charger les plugins

J'essaie de configurer Apache2 avec cgi (python).

Pour cela, je dois modifier les autorisations de certains dossiers et fichiers, mais je reçois des erreurs fatales Sudo chaque fois que j'essaie de modifier l'autorisation d'un fichier ou d'un dossier.

Par exemple:

1

j @ ubuntu:/etc/Apache2 $ ls

Apache2.conf envvars magie des sites compatibles mods-available

conf.d httpd.conf mods-available ports.conf activé par les sites

j @ ubuntu:/etc/Apache2 $ Sudo chmod 777 httpd.conf

Sudo: /usr/lib/Sudo/sudoers.so doit être uniquement accessible en écriture pour le propriétaire

Sudo: erreur fatale, impossible de charger des plugins

.................................................. .................................

2

j @ ubuntu:/usr/lib/cgi-bin $ Sudo /etc/init.d/Apache2 restart

Sudo: /usr/lib/Sudo/sudoers.so doit être uniquement accessible en écriture pour le propriétaire

Sudo: erreur fatale, impossible de charger des plugins

.................................................. .................................

3

j @ ubuntu:/usr/lib $ Sudo chmod -R 777/usr/lib/cgi-bin

Sudo: /usr/lib/Sudo/sudoers.so doit être uniquement accessible en écriture pour le propriétaire

Sudo: erreur fatale, impossible de charger des plugins

.................................................. .................................

Note:

j @ ubuntu:/etc/Apache2 $ ls -l /usr/lib/Sudo/sudoers.so

-rwxrwxrwx 1 racine racine 177452 31 janv. 2012 /usr/lib/Sudo/sudoers.so

2
jags

D'après les commentaires, il semble que tout ce qui est exécuté avec Sudo échouera pour cette raison. Cela fonctionne-t-il si vous utilisez pkexec à la place? Par exemple:

pkexec chmod go-w /usr/lib/Sudo/sudoers.so

Cela devrait supprimer les autorisations d'écriture de "groupe" et "autre" et laisser l'autorisation "utilisateur" (propriétaire) intacte.

Edit: Whoops, a écrit Sudo dans la commande par erreur. Correction maintenant.

2
Jez W

Il existe en fait deux mécanismes dans Ubuntu pour effectuer des tâches administratives. Sudo est l'un d'entre eux, et ses interfaces graphiques (telles que gksu et gksudo) ne fonctionneront pas tant que vous n'aurez pas résolu le problème des autorisations.

L'autre mécanisme est PolicyKit. En fonction de ce que vous avez fait à vos autorisations de fichiers, il est probable que vous puissiez toujours récupérer en utilisant PolicyKit pour exécuter des commandes en tant que root.

La commande pkexec lancera n'importe quelle commande (non graphique) en tant que root (à condition que l'utilisateur qui l'invoque soit un administrateur du système). pkexec est capable d'exécuter des commandes graphiques (comme nautilus) en tant que root, mais c'est assez banal, vous devez configurer des fichiers de configuration pour eux décrivant comment elles sont censées être exécutées et ce qu'elles sont supposées être autorisées à faire. . Par conséquent, il vaut mieux utiliser la ligne de commande pour résoudre ce problème ... au moins au point où Sudo fonctionne à nouveau. (Ensuite, vous pouvez exécuter gksu nautilus pour obtenir un navigateur de fichiers racine, si vous êtes plus à l'aise pour l'utiliser pour modifier les autorisations de fichiers de manière récursive.)

Je ne sais pas exactement ce que vous avez fait avec vos autorisations. Il m'est donc difficile de vous donner une commande pkexec spécifique à exécuter, afin de résoudre le problème. Mais vous pouvez rectifier le problème spécifique sur lequel Sudo se plaint actuellement. Ça dit:

Sudo: /usr/lib/Sudo/sudoers.so doit être uniquement accessible en écriture pour le propriétaire. Supprimez donc les autorisations de groupe et les autres autorisations d'écriture (sans modifier les autorisations d'écriture du propriétaire) pour ce fichier:

pkexec chmod go-w /usr/lib/Sudo/sudoers.so Ensuite, vous pouvez voir si Sudo fonctionne (en exécutant une commande inoffensive telle que Sudo ls).

Si vous devez effectuer d'autres opérations sur les autorisations de fichiers à partir de la ligne de commande avec chmod, consultez man chmod.

(Au fait, voici une autre situation connexe où il est pratique de connaître pkexec.)

Si vous avez du mal à faire fonctionner pkexec pour cela, n'hésitez pas à commenter ici, et j'essaierai de vous aider davantage. Mais sachez que même si cette méthode ne fonctionne pas, vous ne devriez pas avoir à réinstaller Ubuntu.

Au lieu de cela, vous pouvez résoudre le problème à partir d'un CD/DVD live Ubuntu ou d'un système Live USB, car le système live fonctionnera (Sudo y travaillera) et vous pourrez monter votre partition Ubuntu et modifier les autorisations de cette façon.

Ou comme troisième option (comme le suggère forestpiskie), vous pouvez utiliser le mode de récupération.

1
Matias Barcos