(modifié le 11 janvier 2022 à 21:26)

Et oui le CTRL+Z ne permet pas d'annuler un chmod un peu trop violent dans un répertoire, ou pire à la racine d'un serveur GNU/Linux.

Et on ne va pas jeter la pierre : qui n'a jamais fait d'erreur avec la commande chmod ? Soit par manque de compréhension, soit par étourderie : chmod / 700 -R

Il existe une solution pour pouvoir restaurer les permissions, qu'il va falloir mettre en place AVANT de rencontrer le problème.

La solution : les ACLs

Christophe Casalegno détaille ici une solution peu connue qui permet de sauvegarder les ACLs.

Une fois positionné dans le dossier pour lequel vous souhaitez sauvegarder les permissions :

getfacl -R / > /tmp/backup.acl

puis de les restaurer :

setfacl --restore=/tmp/backup.acl

Cette méthode présente 2 avantages de taille :

  • l'opération se fait à chaud sans arrêt de la machine
  • on ne touche pas aux données de la machine (contrairement à une restauration)

Astuce avec vos sauvegardes

Si vous n'avez pas mis en place de script de sauvegarde de ces permissions vous pouvez aussi :

  • restaurer votre VM sans connecter le réseau
  • puis se connecter en console via l'hyperviseur (VMware, Nutanix, Proxmox, etc)
  • lancer la commande d'export des permissions
  • récupérer le fichier et l'injecter dans la VM de production.

3 astuces pour éviter les boulettes

Astuce 1 : l'ordre des arguments

Je vous conseille toujours de mettre les arguments dans cet ordre :

chmod 700 /var -R

Avec l'option de récursivité à la fin de la commande (en fin de ligne). C'est la dernière chose que vous voyez avant d'envoyer la commande avec ENTREE, vous vous forcez ainsi à relire pour être sûr de ne pas faire une bêtise (cette option est dangereuse, votre cerveau doit tiquer).

Astuce 2 : évitez le mode octal (xxx)

Je trouve le mode octal un peu violent et je lui préfère le mode alphanumérique qui va ajouter (+) ou retirer des droits (-) au lieu de les définir de façon autoritaire (cela reste possible avec =)

chmod -R a+rx blogmotion

La commande donne à tous les utilisateurs les droits en lecture et en exécution à tout ce que contient le dossier "blogmotion".

Astuce 3 : se relire AVANT d'envoyer la commande

Enfin : relisez toujours 2 fois les commandes importantes telles que chmod ou chown avant d'appuyer sur ENTREE.

Conclusion

Et voilà qui conclut ce post!

Il est vrai que les droits sont une partie importante de la compréhension des systèmes de fichiers, qu'il s'agisse de Windows ou de GNU/Linux.

Montez une VM pour pratiquer sur vous n'êtes pas à l'aise, cela vous évitera bien des problèmes avec votre production 🙂

 

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter