J'ai entré chmod -R 777 /usr/bin
et maintenant Sudo ne fonctionne pas.
Il dit Sudo must be setuid root
.
Certains conseils en ligne ont dit d’exécuter chown root:root /usr/bin/Sudo chmod 4755 /usr/bin/Sudo
.
Lorsque vous entrez chown root:root /usr/bin/Sudo
, une erreur opened in readonly mode
s'affiche.
Nonobstant le statut accepté, je suis maintenant convaincu cette réponse est fausse. (J'espère l'améliorer bientôt, après avoir consulté l'OP sur l'acceptation.) Je pense me souvenir que d'autres ont dit que cela fonctionnait, mais je pense que leurs problèmes étaient au moins légèrement différents. La méthode décrite ici reste utile dans certaines situations où
chmod -R 777 /usr/bin
est interrompu par Ctrl+C ou sinon ne complète pas. Mais une fois que cela se produit,pkexec
EST ÉGALEMENT DÉFINI ET IL NE FONCTIONNERA PAS MIEUX QUESudo
, comme Damien Roche et Oli l'ont fait remarquer à juste titre.
PolicyKit est installé sur un système de bureau Ubuntu. Ainsi, pkexec
peut être utilisé pour réparer un exécutable Sudo
ou un fichier sudoers
brisé. Vous n'avez pas besoin de démarrer en mode de récupération et vous n'avez pas besoin de démarrer à partir d'un CD live. Vous n'avez même pas besoin de redémarrer.
Dans ce cas, exécutez les commandes suivantes:
pkexec chown root:root /usr/bin/Sudo
pkexec chmod 4755 /usr/bin/Sudo
Voir cette question pour plus d'informations.
Même lors de l'exécution à partir du live CD/Pendrive, vous devez préfixer votre commande chmod
avec Sudo
. Donc, vos étapes seront comme suit:
Sudo chmod 0755 <path>
pour ajuster les permissionsComment déterminer où votre disque est monté: à partir d'une fenêtre de terminal, exécutez mount
(sans argument). Cela listera tous les périphériques montés. Recherchez la liste type
(vous pouvez ignorer tout ce qui n’est pas utilisé avec un "système de fichiers réel" (votre disque utilise probablement ext3 ou ext4 - vous pouvez certainement ignorer des choses comme proc, sysfs, etc.). Si quelque chose semble prometteur (ressemblant à /dev/sda1 on /media/sda1 type ext3
), vérifiez son contenu à l'aide de ls /media/sda1
pour voir si c'est le cas.
S'il n'est pas monté, vous pouvez vérifier avec les entrées /dev
où se trouve le disque (en utilisant ls /dev/ |grep '/dev/sd
pour rechercher les périphériques disponibles; votre disque devrait ressembler à /dev/sdaX
, /dev/sdbX
ou similaire, X étant un nombre). Comparez cela avec la liste des périphériques montés. Si ce n'est pas le cas, essayez de le monter et vérifiez son contenu (comme indiqué ci-dessus). Pour le monter, créez d'abord un point de montage, par exemple. Sudo mkdir /mnt/mydisk
, puis essayez de monter le périphérique à l'aide de mount /dev/sda1 /mnt/mydisk
et vérifiez son contenu à l'aide de ls /mnt/mydisk
.
Une fois que vous avez le bon disque, vous pouvez modifier les autorisations sur votre répertoire utilisateur: Sudo chmod 0755 /mnt/mydisk/usr
.
Vous pouvez maintenant rencontrer des problèmes si vous avez initialement exécuté la commande chmod
en utilisant le paramètre -R
. Dans ce cas, vous pouvez soit essayer de corriger chaque entrée manuellement, soit vous pouvez tout de suite procéder à une nouvelle installation ...
Je n'ai pas beaucoup de connaissances. Mais ces étapes ont résolu mon problème même sans redémarrer ma machine. Suivez ces étapes:
su root
<enter root password>
cd /usr
chmod -R 755 *
Pour tenter de définir des autorisations pour mes scripts locaux, j'ai violé l'autorisation Sudo et changé de propriétaire par erreur. J'ai pu redéfinir la propriété de Sudo en root en procédant comme suit:
Étape 1: Basculez vers le mode de récupération d'ubuntu . Si vous ne connaissez pas le processus, vous pouvez indiquer une réponse ici: https://askubuntu.com/a/172346/223901
Étape 2: Une fois en mode de récupération, sélectionnez root - Abandonnez-le à l'invite du shell racine
Étape 3: Faites les commandes suivantes
mount -o remount,rw /
chown root:root /usr/bin/Sudo
chmod 4755 /usr/bin/Sudo
reboot
Attendez que votre système démarre normalement et vous verrez la propriété de Sudo revenir à la racine.
Je pense que Mat a raison, vous devez être root pour ajouter le bit à/usr/bin, mais bien sûr, Sudo est cassé. Si vous avez un mot de passe root, vous pouvez l'utiliser pour vous connecter en tant que root, puis corrigez les autorisations à l'aide de la commande ci-dessus. Si vous ne le faites pas cependant (et moi non plus), il serait probablement préférable de:
La racine étant toujours le numéro d'utilisateur 0, la racine de n'importe quel système peut apporter les modifications autorisées à la racine sur d'autres systèmes de fichiers.