Auteur :
• 5 octobre 2010
closeCet article a été publié il y a 6 ans 2 mois 7 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Juste une petite info au passage. Dernièrement j’ai travaillé avec les droits des fichier d’un site web fonctionnant sous ubuntu-server 10.0.4.1.  En voulant rétablir l’état initial, je voulais donc changer les droit des fichier pour 755 et les droits des fichiers pour 644.

Bien sur, je pouvais dans un terminal faire un:

chmod -R 644 /var/www/profnoel

et ensuite retravailler chaque dossiers individuellement. Mais , bof…

J’ai donc trouvé cette petite astuce:

Pour agir uniquement sur les fichiers

find /var/www/profnoel -type f -exec chmod 644 {} \;

Pour agir sur les dossiers

find /var/www/profnoel -type d -exec chmod 755 {} \;

C’est la façon de faire ou bien il y a plus simple ?

Be Sociable, Share!
Catégorie: Du code | Tags : , ,
Vous pouvez suivre toutes les réponses à à ce billet via le flux RSS 2.0. Les commentaires et la notification par ping sont désactivés.

5 réponses

  1. 1
    Épictète 
    Firefox 3.6.10 Ubuntu 10.10

    Bonjour, personnellement j’utilise l’équivalent :

    find /home/philippe -type f -print0 | xargs --null chmod 644
    find /home/philippe -type d -print0 | xargs --null chmod 755

    On peut lire dans le remarquable « Linux précis et concis » de Daniel J. Barrett (il n’est pas de ma famille !) chez O’Reilly (et je ne bosse pas chez eux !) :

    find produit une liste de fichiers envoyée sur la sortie standard et s’associe donc particulièrement bien avec xargs qui lit une liste de fichiers sur l’entrée standard et leur applique une commande (référez vous à man xargs). Si, par exemple, vous recherchez dans l’arborescence de votre répertoire courant des fichiers contenant le mot « myxomatose » :
    $ find . -print0 | xargs -0 grep myxomatose

    -print0 Analogue à -print mais, au lieu de séparer les lignes du résultat par un retour chariot, le caractère séparateur utilisé est le caractère ASCII 0. Cette option est conseillée si vous souhaitez envoyer le résultat de find vers un autre programme au moyen d’un pipe, et que la liste des noms de fichiers que vous produisez peut contenir des espaces. Bien entendu, le programme qui reçoit le résultat au travers du pipe doit pouvoir lire et parser ces lignes séparées par des caractères 0. C’est le cas, par exemple, de xargs -0.

    Cordialement.

  2. 2
    Épictète 
    Firefox 3.6.10 Ubuntu 10.10

    Attention, apparemment le site convertit automatiquement le double tiret – – en un tiret long — donc devant null il faut bien mettre un double tiret !

    Une précision : d’après Ubuntu Linux Toolbox de chez Wiley (quand je vous disais que je ne bossais pas chez O’Reilly !) la commande xargs est plus efficace qu’exec car elle transmet en bloc plusieurs données à une seule instance de la 2ème commande (ici chmod) là où exec fait exécuter la 2ème commande pour chaque donnée produite par la 1ère (suis-je assez clair ?… hum ? bof…).

  3. 3
    Éric Noël 
    Firefox 3.6.10 Ubuntu 10.10

    Merci de ces informations utiles, j’ai modifié votre premier message afin qu’il soit correctement affiché.

  4. 4
    Épictète 
    Firefox 3.6.10 Ubuntu 10.10

    Ça évitera les erreurs de terminal, merci Éric !

  5. 5
    Gargouille 
    Unknown Ubuntu 10.10

    En fait la commande chmod fait déjà la distinction entre dossier et fichier avec l’instruction X. L’opération souhaité peut se faire simplement avec

    chmod u=Xrw,go=Xr -R /var/www/profnoel