5 votes

Comment restaurer les permissions chown par défaut sur un répertoire / fichier ?

J'utilise Ubuntu 13.04 x86_64.

Je voulais posséder tout le matériel dans mon répertoire personnel. J'ai donc exécuté ces deux commandes.

sudo chown -RcH rootkea ~  
sudo chown -RcL rootkea ~

Maintenant, à cause de ces liens symboliques liés à d'autres fichiers dans le système de fichiers, j'ai accidentellement possédé des fichiers qui résident en dehors de mon répertoire personnel.
Les conséquences immédiates que j'ai constatées sont les suivantes :

  1. sudo ne fonctionne pas

    $ sudo  
    sudo: effective uid is not 0, is sudo installed setuid root?
  2. Le système est devenu si lent. Il se bloque lorsque je clique sur "shutdown / reboot". À chaque fois, je dois éteindre manuellement la machine.

  3. crée un fichier journal /var/log/cups/error_log de taille indéfinie qui consomme le dernier octet de mon disque dur (après un temps considérable). La dernière fois, il s'agissait de 17,8 Go !
    Le contenu du fichier n'était que ces deux lignes répétées à l'infini :

    E [24/May/2013:02:27:52 +0530] File "/usr/lib/cups/notifier/dbus" has insecure permissions (0100755/uid=1000/gid=0).  
    W [24/May/2013:02:27:52 +0530] Notifier for subscription 531 (dbus://) went away, retrying!

Donc clairement cups Le programme est aussi foutu.

Maintenant, je n'ai aucune idée du nombre d'autres programmes qui sont devenus inutilisables.

Existe-t-il un moyen d'annuler les effets des deux commandes mentionnées ci-dessus ?
Comment puis-je restaurer les paramètres de permission par défaut pour l'ensemble du système de fichiers ?

4voto

Eliah Kagan Points 111731

Comme gertvdijk suggère (par référence à cette question ), la réinstallation est presque toujours la meilleure et la plus simple façon de résoudre ce problème (et la seule façon dont vous pouvez être sûr qu'elle le résoudra complètement), surtout si vous ne savez pas exactement où les autorisations ont été modifiées ou à partir de quoi elles ont été modifiées.

Cette méthode qui privé a suggéré pourrait fonctionner, et vous pourriez considérer que cela vaut la peine d'essayer. Cependant, il existe des variations d'une version à l'autre en ce qui concerne l'emplacement des fichiers et des dossiers, ainsi que leur propriété et leurs autorisations. De plus, avec toute solution autre que la réinstallation, vous ne saurez jamais s'il existe des fichiers ou des dossiers avec de mauvaises permissions, qui pourraient à un moment donné dans le futur causer des problèmes.

Vous pouvez généralement régler - ou du moins progresser - sur le problème de sudo ne fonctionne pas (c'est-à-dire le problème 1, tel que vous l'avez énuméré) en réparant son propriétaire :

pkexec chown root:root /usr/bin/sudo

Dans une situation comme la vôtre, c'est principalement utile comme mesure de commodité pour faciliter l'exécution des tâches administratives que vous devez effectuer avant la réinstallation. (Ou avant d'essayer d'appliquer une solution plus compliquée.) Une sauvegarde est certainement nécessaire maintenant, si vos sauvegardes de fichiers importants (par exemple, des documents) ne sont pas complètement à jour.

Enfin, veuillez noter que c'est seulement propriété et non permissions qui ont été modifiés. Vous pouvez donc essayer de changer récursivement la propriété des répertoires en faveur de root. Cependant, cela n'a pas beaucoup de chances de résoudre le problème, car.. :

  • il n'est pas clair si vous savez exactement quels répertoires ont été modifiés.
  • certains fichiers ne doivent pas appartenir à root parce qu'ils doivent être accessibles à des parties moins privilégiées du système ; définir leur propriété ou leurs permissions de manière trop restrictive pourrait casser le système.
  • certains fichiers peuvent présenter des failles de sécurité s'ils appartiennent à l'utilisateur root. A exécutable setuid s'exécute toujours en tant que l'utilisateur qui le possède. Votre système peut contenir des exécutables setuid qui sont destinés à toujours s'exécuter en tant qu'utilisateurs. non -privileged user ; les faire fonctionner en tant que root pourrait être mauvais. Ou quelqu'un peut avoir - intentionnellement ou non - créé un fichier setuid (sans avoir les permissions pour le rendre propriété de root). Si vous le rendez propriété de root, il s'exécutera en tant que root, peu importe qui l'exécute. Cela peut être très mauvais.

Donc, si c'est un système de production, vous devriez juste réinstaller.

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