/ usr / bin / sudo doit être la propriété de uid 0 et avoir le bit setuid défini [dupliquer]

55

J'ai couru suite à une commande accidentelle

sudo chown [username] -hR /

Maintenant, sudo su obtient une erreur:

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

Comment résoudre ce problème?

    
posée Pandya 22.04.2014 - 16:14
la source

8 réponses

18

Sauvegardez vos données et réinstallez-les.

Cela semble probablement extrême, mais ce n'est pas juste sudo . Vous avez détruit la structure d'autorisation de l'ensemble de votre système de fichiers. Certaines autres réponses peuvent fonctionner sudo , mais ignorer l'ensemble du problème invite à une catastrophe ultérieure.

Vous pouvez essayer de reproduire les propriétaires d’une autre installation, mais il existe des cas ( /var/ par exemple) qui dépendent fortement de ce que vous avez réellement installé. Si vous voulez avoir une idée du problème, j'ai vraiment essayé d'aider quelqu'un à résoudre ce type de problème avant . Le correctif est manuel, long et peut facilement rendre votre système incertain ou cassé.

Passer à travers ce gâchis prendra beaucoup plus de temps qu’une installation propre.

Il y a eu quelques incidents de la part de personnes qui ne comprennent pas le sérieux de la situation ici. Pour eux, cela ressemble à un gros tas de travail inutile, le genre de chose qu'un plombier ou un mécanicien malhonnête dit pour vous faire perdre votre emploi.

Si vous n'avez modifié que les autorisations sur /usr/bin/sudo , corrigez-les. Mais cette question concerne un changement total du système. tous les fichiers (sauf ceux d'exécution uniquement) appartiennent désormais à l'utilisateur. Tout ce que l'utilisateur exécute (par exemple les navigateurs, les exploits de navigateur ) pourrait alors écraser les fichiers système, vous espionner, extraire toutes les données. Cela doit être corrigé. Par dessus, c'est difficile. Le plus simple est une réinstallation.

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

    
réponse donnée Oli 22.04.2014 - 16:23
la source
114

Comme vous le verrez sur cette réponse sur SO , ce problème est non dur comme les gens le font. J'ai ré-installé la commande sudo sans réinstaller en suivant ces é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 qu'utilisateur 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. Pour ce faire, vous devez démarrer le mode de récupération d'Ubuntu.

    
réponse donnée user10962 24.05.2014 - 15:51
la source
9
  1. passez en mode de récupération en continuant à appuyer sur Esc lors du démarrage du système.

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

  3. tapez la commande - mount -o remount / (ou en récupération, vous pouvez cliquer sur l'option grub. Cela m'a aidé à obtenir des autorisations en lecture-écriture sur le système de fichiers. t travaille pour moi au départ)

    Il remontera votre système de fichiers en lecture et en écriture.

  4. commande - chown -R root:root /usr cette commande changera la propriété de "utilisateur" pour qu'elle soit récursive de manière récursive

  5. maintenant encore j'avais un problème avec la commande sudo , donc j'ai de nouveau suivi l'étape 1,2,3 et exécuté chmod 4755 usr/bin/sudo

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

    
réponse donnée Hridaynath 18.11.2015 - 07:05
la source
3

J'ai eu le même problème sur ma gouttelette sur l'océan numérique.

sudo: /usr/bin/sudo doit appartenir à uid 0 et avoir le bit setuid défini. Vous trouverez ci-dessous les commandes à exécuter et à redémarrer 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 ça aide.

    
réponse donnée Marvee Lou Manriquez Ventures 27.09.2016 - 05:09
la source
2

Malheureusement, si vous ne disposez pas d'une sauvegarde complète, la meilleure chose à faire à ce stade est de réinstaller.

Considérez que vous avez changé la propriété de tous les fichiers pour le même utilisateur, ce qui perturbe complètement le paradigme de sécurité de votre système.

Si vous effectuez une recherche sur ce site, il y a beaucoup de problèmes similaires avec chmod, comme par exemple Comment récupérer à partir de chmod -R a-wrx / command?

    
réponse donnée Rmano 22.04.2014 - 16:26
la source
2

Les méthodes ci-dessus ne fonctionnaient pas pour moi, car je ne pouvais pas me reconnecter en tant que root (mot de passe inconnu) Mais j'ai un shell root en éditant

vi /etc/lightdm/lightdm.conf

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

Après le redémarrage, j'ai finalement pu exécuter

chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
    
réponse donnée Anno2001 04.12.2014 - 14:40
la source
1

Je n'ai pas pu éditer le fichier lightdm.conf sous le système en cours d'exécution. J'ai corrigé des choses comme ça:

  1. démarrer Ubuntu live usb
  2. monter la partition racine pour accéder à /etc/lightdm/lightdm.conf sur l’installation
  3. sudo -H gedit /mnt/etc/lightdm/lightdm.conf et ajoutez les lignes suivantes de la réponse d'Anno2001

    autologin-user=root
    greeter-show-manual-login=true
    
  4. reboot

  5. Exécuter la commande:

    chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
    
  6. Modifier l'utilisateur par défaut dans /etc/lightdm/lightdm.conf (vous ne voulez pas vous authentifier automatiquement en tant que root, ce qui serait très peu sûr et dangereux)

  7. redémarre et mon système fonctionne à nouveau correctement.
réponse donnée DrackG 08.09.2015 - 23:19
la source
-2

J'ai changé / usr / lib / en propriétaire racine mais sudo ne s’exécute qu'avec une connexion root dans le terminal.

première étape: su root deuxième étape: cd / usr / lib troisième étape: chown -R racine: sudo racine

et c'est tout. Il vous suffit de noter que vous avez exécuté su root à chaque fois que vous souhaitez utiliser sudo.

    
réponse donnée Cyprian Maina 04.05.2016 - 16:07
la source

Lire d'autres questions sur les étiquettes