web-dev-qa-db-fra.com

'Sudo' ne fonctionne pas après la modification des autorisations du répertoire '/ usr'

Récemment, j'ai dû modifier les autorisations de dossier du dossier /usr. Maintenant tout le Sudo ne fonctionne pas. Si j'essaie de mettre à jour mon système en utilisant cette commande:

Sudo apt-get update

Je reçois le message suivant:

Sudo: /usr/lib/Sudo/sudoers.so must be only be writable by owner
Sudo: fatal error, unable to load plugins

J'ai donc essayé de changer les permissions du dossier en ouvrant Nautilus en tant que root en utilisant cette commande

gksudo nautilus

Mais rien ne s'est passé. Nautilus n'a pas ouvert. Ceci est une urgence car l'ensemble de Sudo ne fonctionne pas. Lorsque j'ai essayé de rechercher la solution de Google, de nombreuses personnes ont suggéré une réinstallation. Je ne préfère pas la réinstallation. alors y a-t-il une autre solution?

5
Bharat

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 (comme 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 . Selon ce que vous avez fait à vos autorisations de fichiers, il est probable que vous puissiez toujours récupérer à l'aide de PolicyKit pour exécuter des commandes en tant que root.

La commande pkexec exécute toute commande (non graphique) sous la forme root (à condition que l'utilisateur qui l'invoque soit un administrateur du système). pkexec est capable d'exécuter des commandes graphiques (telles que nautilus) en tant que root, mais c'est assez simple, car 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 censé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 root, 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 must be only be writable by owner
_

Supprimez donc les autorisations d'écriture group et other (sans modifier les autorisations d'écriture owner) 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, voir man chmod .

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

Si vous avez des difficultés à faire travailler pkexec pour cela, n'hésitez pas à commenter ici, et j'essaierai de vous aider davantage. Mais vous devez savoir 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 fonctionnera dessus - et vous pourrez monter votre Ubuntu. partitionner et modifier les autorisations de cette façon.

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

7
Eliah Kagan

J'essayerais de démarrer en mode de récupération et de redéfinir les autorisations.

Redémarrer - choisissez le deuxième élément du menu pour passer en mode de récupération.

récemment, j'ai dû changer les autorisations de dossier du dossier/usr

Qu'est-ce qui vous a demandé de modifier les autorisations de l'ensemble du dossier/usr?

installer utilisateurs et groupes en utilisant this
aller à Gérer les groupes
et vous ajoutez au groupe Sudo

0
hingev