Hello,
Merci pour l'astuce!
Pour pouvoir l'utiliser plus facilement, j'ai créé des alias dans mon fichier .bash_aliases:
# Quick chmod
alias rdirmod='find -type d -print0 | xargs -0 chmod'
alias rfilemod='find -type f -print0 | xargs -0 chmod'
alias rmod1='find -type d -print0 | xargs -0 chmod 755 && find -type f -print0 | xargs -0 chmod 644'
alias rmod2='find -type d -print0 | xargs -0 chmod 700 && find -type f -print0 | xargs -0 chmod 600'
J'utilise les deux premiers en leur passant le détail des permissions en paramètre, par exemple:
rdirmod 755
Les deux derniers sont «pré-configurés» pour des permissions 755/644 (dossiers/fichiers) et 700/600.
Récupérer des fichiers sur une clef USB en FAT 32 et leur assigner les permissions qui vont bien va devenir beaucoup plus facile. 🙂
Une question pour finir: j'ai remarqué que lorsque j'exécutais une de ces commandes depuis un dossier, cela changeait les permissions des fichiers et dossiers contenus dans le dossier courant mais aussi celles du dossier courant lui-même.
Pour ne pas prendre en compte le dossier courant, il faudrait procéder ainsi, non?
find * -type d -print0 | xargs -0 chmod 750
find * -type f -print0 | xargs -0 chmod 640
Je viens de tester et ça a l'air d'être le cas. 🙂
Du coup je suppose que je peux corriger mes alias ainsi:
# Quick chmod
alias rdirmod='find * -type d -print0 | xargs -0 chmod'
alias rfilemod='find * -type f -print0 | xargs -0 chmod'
alias rmod1='find * -type d -print0 | xargs -0 chmod 755 && find * -type f -print0 | xargs -0 chmod 644'
alias rmod2='find * -type d -print0 | xargs -0 chmod 700 && find * -type f -print0 | xargs -0 chmod 600'