Pb de chmod récursif

Je possède une - grosse - arborescence de fichier dont les droits on été abimés.
Je voudrais mettre des droits 777 sur tous les répertoires de l’arborescence et 666 sur tous les fichiers (fichiers de données, pas d’exécutables).

J’ai pensé faire un chmod -R 777 * en me disant que “qui peut le plus peut le moins” mais les droits en exécution sur les fichiers de données posent pb : Lors d’une connexion SAMBA, windows ne voit pas les fichiers qui possèdent l’attribut d’exécution.

Bref, Y a-t-il un moyen de faire le changement de toute l’arborescence (777 pour les répertoires et 666 pour les fichiers) en quelques commandes ?

Merci d’avance.

cherche dans le man de chmod, il y’a une option (sûrement -d) qui permet de n’appliquer les droits qu’aux répertoires.

J’ai bien cherché, relu tout le man … pas de -d à l’horizon… :cry:

par exemple avec un find

#chercher tous les dossiers de /data et leur passer un chmod 777
$find /data -type d -exec chmod 777 {\} \;
#chercher tous les fichiers de /data et leur passer un chmod 666
$find /data -type f -exec chmod 666 {\} \; 

ou alors

#on passe toute l'arborescence en chmod 666 recursif
$chmod -R 666 /data 
#et ensuite chercher tous les dossiers de /data et leur passer un chmod 777
$find /data -type d -exec chmod 777 {\} \;

Merci bcp, c’est exactement ce que je cherchais.

c’était pas une option -d, mais ça existe bien :

ne met l’attribu d’execution qu’aux dossiers, contrairement à +x

Bien vu, merci.