Commande "chmod -R 777

Résolu
Bonjour,

J'ai lancé dans le terminal la commande suivante: chmod -R 777 /usr/share/libreoffice/share, afin de me donner les droits administrateurs pour y installer un nouveau thème pour libre office.

Résultat des courses, je n'ai pas obtenu les droits nécessaires pour y installer mon thème et en plus chaque fois que j'ouvre le terminal et que j'essaie de faire un sudo j'ai ce message

sudo: /usr/bin/sudo doit être la propriété du uid 0 et avoir le bit setuid mis

Malheureusement je suis incapable de revenir en arrière

Connaissez-vous une commande qui me permettrait de revenir en arrière

Merci d'avance

--
Sécuriser, sauver, tenir, protéger, maîtriser.
95% des problèmes informatiques se situent entre le clavier et la chaise

14 réponses

Résumé de la discussion

Modifier récursivement les permissions sur des répertoires système avec chmod -R 777 pour installer un thème peut bloquer sudo et rendre le système instable. Pour réparer, les conseils préconisent d'utiliser un live USB pour accéder à la partition racine et restaurer les droits corrects de sudo, en remettant /usr/bin/sudo à root:root et le bit setuid. En parallèle, d'autres conseils rappellent qu'il faut éviter toute modification des droits des fichiers système et privilégier des solutions non invasives, ou une réinstallation si l'intégrité est altérée. D'autres précisent enfin qu'il faut limiter les modifications à l'espace utilisateur et éviter les outils qui exportent des permissions sur des répertoires système, afin d'éviter des risques similaires à l'avenir.

Bobot (l’IA à votre service)
  1. Bonsoir tous le monde,

    Enfin de retour ...

    Je viens de repasser le script que tu m'as fait et j'aimerai si c'est possible une petite précision

    #!/bin/sh
    laSource=/usr;

    find $laSource -name "*" -exec sh -c '\
    Mon nom utilisateur; \
    laDest=/tmp/mount; \
    badUtilisateur=ubuntu; \
    fileUser=$(stat -c "%U" "$0"); \
    fileGroup=$(stat -c "%G" "$0"); \
    filePerm=$(stat -c "%a" "$0"); \
    if [ $fileUser=$badUtilisateur ]; then fileUser=$utilisateur; fi; \
    if [ $fileGroup=$badUtilisateur ]; then fileGroup=$utilisateur; fi; \
    if [ -f "$laDest$0" ]||[ -d "$laDest$0/" ]; then \
    chown -v "$fileUser:$fileGroup" "$laDest$0" && chmod -v $filePerm "$laDest$0"; \
    fi;
    ' {} \;

    Ou j'ai marqué en gras ok pour mon nom mais j'ai surligné je laisse tel quel ou je change

    Merci encore de ta disponibilité
    0
    1. Bonsoir Bonsoir;

      laisse tel quel :

      #!/bin/sh
      
      #On choisi le répértoire  sur lequel on veut réparer les permissions
      laSource=/usr;
      
      #On execute la commande find, qui va récursivement lister les fichiers / dossier du répértoire 'laSource' et pour chaque fichiers / dossiers va executer grace au exec les commandes qui suivent.
      find $laSource -name "*" -exec sh -c '\
      #On défini l'utilisateur unix du systeme vérolé, ici, exileur.
      utilisateur=exileur; \
      #On défini le point de montage du systeme vérolé
      laDest=/tmp/mount; \
      #On défini l'utilisateur du liveCD / du systeme qui fonctionne
      badUtilisateur=ubuntu; \
      #On récupére le proprio, le groupe et la permission du fichier sur lequel le find est en train de bosser
      fileUser=$(stat -c "%U" "$0"); \
      fileGroup=$(stat -c "%G" "$0"); \
      filePerm=$(stat -c "%a" "$0"); \
      
      #On vérifie que le proprio de ce fichier n'est pas l'utilisateur du systeme qui fonctionne, si c'est le cas, on met notre utilisateur unix du syteme vérolé a la place ; de même pour le groupe.
      if [ $fileUser=$badUtilisateur ]; then fileUser=$utilisateur; fi; \
      if [ $fileGroup=$badUtilisateur ]; then fileGroup=$utilisateur; fi; \
      #On vérifie que le fichier ou le dossier existe sur le systeme vérolé
      if [ -f "$laDest$0" ]||[ -d "$laDest$0/" ]; then \
      # SI c'est le cas, on change l'utilisateur/groupe et la permission
      chown -v "$fileUser:$fileGroup" "$laDest$0" && chmod -v $filePerm "$laDest$0"; \
      fi;
      ' {} \;
      


      Les commandes chown et chmod sont en verbose. Ce qui va te permettre de savoir sur quel fichier on a ou pas modifier le proprio, le groupe ou la permission.

      C'est plus clair ? :)
      copie pas ce code avec les commentaires, le code est pas formaté et ça va s'arréter au premier retour a la ligne.

      execute le script en sauvegardant les logs :

      sudo sh lenom.sh |tee repair_perm.log

      En cas de bug/problme c'est toujours usefull des logs :)

      A plus tard
      0
    2. @ExileurC'est reparti :-)
      0
    3. @Lulu69En faisant mes conneries, j'ai vraiment attaqué mon système jusqu'à la moelle car l'OS est vraiment instable :-(
      0
    4. @Lulu69C'est terminé mais je ne peux pas ressortir les log avec la commande "cat repair_perm.log |grep 77* "
      0
    5. Tu as bien récupéré le fichier de log depuis le liveCD avant de redemarer ?
      fais juste un :

      cat repair_perm.log
      
      0