115 votes

/usr/bin/sudo doit être possédé par uid 0 et avoir le bit setuid activé.

J'ai exécuté accidentellement la commande suivante

sudo chown [username] -hR /

Maintenant sudo su obtenir une erreur :

sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

Comment résoudre ce problème ?

195voto

Lachlan Points 1

Comme vous pourrez le lire sur cette réponse sur SO ce problème est no aussi difficile que les gens le font. Vous pouvez obtenir le sudo La commande fonctionne à nouveau sans réinstallation en suivant ces quelques étapes simples :

  1. Déconnectez-vous en tant qu'utilisateur actuel, puis reconnectez-vous en tant que root.
  2. Exécuter chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
  3. Déconnectez-vous en tant que root, puis reconnectez-vous en tant qu'utilisateur actuel.

Cela fait l'affaire et est beaucoup plus rapide et moins douloureux que l'"option nucléaire" recommandée dans d'autres réponses.

Si votre mot de passe root n'est pas défini, vous pouvez démarrer en Mode de récupération pour le régler.

Notez que cela résoudra l'erreur titulaire /usr/bin/sudo must be owned by uid 0 and have the setuid bit set mais si, comme l'OP, vous avez fait plus que foutre en l'air les permissions de l'ordinateur. /usr/bin/sudo une option plus "nucléaire" pourrait en fait être plus judicieuse.

49voto

Mufaka Points 54

Sauvegardez vos données et réinstallez.

Cela semble probablement extrême, mais ce n'est pas seulement sudo . Vous avez détruit la structure de permission de votre système de fichiers entier. Certaines des autres réponses peuvent être sudo mais ignorer l'ensemble du problème, c'est s'exposer à un désastre ultérieur.

Vous pouvez essayer de mettre en miroir les propriétaires d'une autre installation mais il y a des cas ( /var/ par exemple) qui dépendent fortement de ce que vous avez réellement installé. Si vous voulez avoir une idée de l'ampleur du problème, J'ai déjà eu l'occasion d'aider quelqu'un à résoudre ce genre de problème. . Le correctif est manuel, long et pourrait facilement laisser votre système non sécurisé ou cassé.

Fouiller dans ce désordre va prendre beaucoup plus de temps qu'une installation propre.


Il y a eu quelques visites en voiture de personnes qui ne comprennent pas la gravité de la situation. Pour eux, cela ressemble à un gros tas de travaux inutiles, le genre de choses qu'un plombier ou un mécanicien malhonnête dit pour vous soutirer un travail plus important.

Si vous avez seulement changé les permissions sur /usr/bin/sudo par tous les moyens, réparez ça. Mais cette question porte sur un changement total du système. Tous les fichiers (sauf ceux qui sont réservés à l'exécution) appartiennent maintenant à l'utilisateur. Tout ce que l'utilisateur exécute (par exemple les navigateurs, exploits de navigateur ) pourrait alors écraser les fichiers système, vous espionner, extraire des données. Cela doit être corrigé. Comme indiqué ci-dessus, c'est difficile. Le moyen le plus simple est une réinstallation.

Alors s'il vous plaît, ne soyez pas paresseux à ce sujet. Les permissions du système de fichiers vous aident à rester en sécurité, réparez-les.

20voto

Hridaynath Points 329
  1. Passez en mode de récupération en continuant d'appuyer sur Esc pendant le démarrage du système.

  2. sélectionnez l'option root dans la longue liste que vous pouvez voir après être entré dans le mode de récupération (c'est en fait root Shell)

  3. commande de type - mount -o remount / (Ou dans la récupération, vous pouvez cliquer sur l'option Grub. Cela m'a aidé à obtenir des autorisations de lecture-écriture sur le système de fichiers. Cela a essentiellement mis à jour le mode lecture/écriture sur le système de fichiers puisque la commande ne fonctionnait pas pour moi initialement).

    Il va remonter votre système de fichiers en mode lecture et écriture.

  4. commande - chown -R root:root /usr cette commande changera la propriété de "user" à root à nouveau récursivement

  5. Maintenant, j'ai encore des problèmes avec sudo donc j'ai de nouveau suivi les étapes 1,2,3 et exécuté chmod 4755 /usr/bin/sudo

Maintenant, je pense vraiment que la réinstallation aurait été une "option nucléaire".

8voto

J'ai eu le même problème sur mon droplet sur digital ocean.

sudo: /usr/bin/sudo doit être détenu par uid 0 et avoir le setuid bit activé. Voici les commandes que j'exécute et qui redémarrent après.

chown -R root:root /usr/bin/sudo
chmod -R a=rx,u+ws /usr/bin/sudo
chown -R root:root /usr/lib/sudo/sudoer.so
chmod -R a=rx,u+ws /usr/lib/sudo/sudoer.so

J'espère que cela vous aidera.

4voto

Anno2001 Points 141

Les méthodes ci-dessus n'ont pas fonctionné pour moi, car je n'ai pas pu me "reconnecter en tant que root" (mot de passe inconnu). Mais j'ai obtenu un Shell root en éditant

vi /etc/lightdm/lightdm.conf

autologin-user=root
greeter-show-manual-login=true

Après avoir redémarré, j'ai enfin pu lancer

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X