Question ardue de chmod par FTP

Discussion dans 'Administration d'un site Web' créé par tofm2, 20 Avril 2007.

Tags:
  1. tofm2
    tofm2 WRInaute passionné
    Inscrit:
    9 Avril 2005
    Messages:
    1 402
    J'aime reçus:
    0
    Bonsoir

    J'ai un site dont je voudrais changer les droits des fichiers et répertoires d'une façon un peu particulière.

    Je veux que tous les répertoires à partir de la racine soient en 0755
    et que tous les fichiers à partir de la racine soient en 0644

    si je me connecte en ftp par ligne de commande, chmod ne fait pas la différence entre fichiers et répertoires. Donc dans ce cas, chmod -Rf XXX n'est pas possible.

    J'ai aussi accès au répertoire du site par l'explorateur de KDE de mon ordinateur, avec KbearFTP mais idem, il ne fait pas la différence entre les deux...

    Comment faire ???
    est ce qu'avec un find et des pipes ? ça je saurais le faire sous le shell unix mais pas sous le shell ftp

    merci de votre aide
     
  2. biddybulle
    biddybulle WRInaute passionné
    Inscrit:
    30 Mai 2005
    Messages:
    1 439
    J'aime reçus:
    0
    et en programmant un shell ou en trouvant ptetre un tout prêt ?
     
  3. tofm2
    tofm2 WRInaute passionné
    Inscrit:
    9 Avril 2005
    Messages:
    1 402
    J'aime reçus:
    0
    que veux tu dire par 'programmer un shell' tu veux dire un fichier genre écrit en bash et fonctionnant sous shell FTP ?
     
  4. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    938
    J'aime reçus:
    0
    ou alors le faire en php, tiens trouvé sur php.net en placant ce script dans la racine des tes sites et en le modifiant un poil pour setter des droits différents selon si rép ou pas :

    Code:
    function chmod_R($path, $filemode) {
        if (!is_dir($path))
           return chmod($path, $filemode);
    
        $dh = opendir($path);
        while ($file = readdir($dh)) {
            if($file != '.' && $file != '..') {
                $fullpath = $path.'/'.$file;
                if(!is_dir($fullpath)) {
                  if (!chmod($fullpath, $filemode))
                     return FALSE;
                } else {
                  if (!chmod_R($fullpath, $filemode))
                     return FALSE;
                }
            }
        }
     
        closedir($dh);
       
        if(chmod($path, $filemode))
          return TRUE;
        else
          return FALSE;
    }
    ca doit le faire :)
     
  5. MirageDemonAsh
    MirageDemonAsh WRInaute occasionnel
    Inscrit:
    12 Février 2005
    Messages:
    339
    J'aime reçus:
    0
    Edit : Pas assez rapide :wink:

    Il faut commencer par tout mettre en 755 :

    chmod -R 755 ledossier/

    Ensuite agir par type de fichier (c'est tout ce que j'ai)

    chmod -R 644 ledossier/*.html

    chmod -R 644 ledossier/*/*.html

    chmod -R 644 ledossier/*/*/*.html

    chmod -R 644 ledossier/*/*/*/*.html

    Etc..

    chmod -R 644 ledossier/*.php

    chmod -R 644 ledossier/*/*.php

    chmod -R 644 ledossier/*/*/*.php

    chmod -R 644 ledossier/*/*/*/*.php

    Etc...

    Ou si on veut du global, alors on met tout en chmod 755 :

    chmod -R 755 ledossier/

    Et on fait pour les fichiers de tous les sous-dossiers uniquement (Ne pas lancer la commande pour les fichiers racines; donc surtout pas de chmod -R 644 ledossier/*.* car tous les dossiers vont repasser en mode 644 sinon ^^ )

    chmod -R 644 ledossier/*/*.*

    chmod -R 644 ledossier/*/*/*.*

    chmod -R 644 ledossier/*/*/*/*.*

    Etc...


    Y a peut-être plus simple, mais je connais pas.
     
Chargement...
Similar Threads - ardue chmod FTP Forum Date
Question au sujet des Chmods ! Développement d'un site Web ou d'une appli mobile 16 Avril 2011