Droits pour find sur des répertoires

Résolu
sbouli Messages postés 208 Statut Membre -  
sbouli Messages postés 208 Statut Membre -
Bonjour,

Encore un petit problème avec les droits, je tente de lancer un script depuis php (donc avec le user www-data ou un truc du genre) et ce script compte le nombre de fichier dans différents répertoire de postfix ... (ça devrait permettre de visualiser les queues).
Ce fichier fonctionne nickel en sudo, pas en normal même si j'ai mis les droits en lecture à tout le spool de postfix ....

D_POSTFIX=$(postconf queue_directory | awk -F"= " '/queue_directory/ {print $2}')

for long in incoming active deferred defer hold
do
echo ${long}=`find "${D_POSTFIX}/${long}" -type f | wc -l`
done

Quels droits dois-je donner à mes rep ? ou dois-je plutot changer l'utilisateur d'apache (ce qui me parait risqué) ?

Merci d'avance.

Stéphane

7 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    un répertoire doit avoir les droits r-x pour être lu (r) et traversé (x)
    0
  2. Manu
     
    Bonjour,

    En général, les problèmes de droits concernent les droits à ne pas donner plutôt que les droits à donner.

    Si je m'en tenais à ce que vous avez exprimé, je répondrais de mettre tous les répertoires à 0777 et vous n'aurez pas de problème pour le find.... Sauf que cela ouvre d'autres accès que vous ne voulez pas, et comme vous ne les avez pas indiqués, on ne peut pas vous répondre de manière optimale.

    Manu
    0
  3. sbouli Messages postés 208 Statut Membre 2
     
    ben en fait ce sont les répertoires de spool de postfix, je ne sais pas trop quelle faille ça peut faire d'ouvrir trop de droits ... je reste juste prudent.

    question complémentaire, comment changer les droits des répertoires et sous-répertoire pour leur donner le x mais sans le donner aux fichiers, comme le ferait la commande :

    sudo chmod a+x /var/spool/postfix -R

    Stéphane
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      mettre tout 0777 est une bêtise
      mettre les droits x uniquement sur les répertoires: find /var/spool/postfix -type d -exec chmod a+x {} \;
      0
  4. sbouli Messages postés 208 Statut Membre 2
     
    le problème se corse (ajaccio), j'ai mis les droits x sur les répertoires. si j'execute le script bash en su www-data, ça marche nickel. Si j'execute depuis la page php, le script se lance mais le résultat est à 0, donc le script se lance bien mais le parcours des répertoires n'a pas lieu ... or lors de l'execution en www-data sa fonctionne ....

    Quel utilisateur est pris pour les exec de php ??

    [edit] un petit tour dans les log apaches m'apprend :

    /root/schedule/queuex.sh: line 14: postconf: command not found

    conclusion, il ne parvient pas à lancer la commande postconf qui lui donne le répertoire du spool alors qu'il y arrive en su www-data ....

    pour rappel voici mon code :
    //ya des commentaires avant ...
    D_POSTFIX=$(postconf queue_directory | awk -F"= " '/queue_directory/ {print $2}') 
    
    #for long in incoming active deferred defer hold
    for long in active deferred
    do
    echo ${long}=`find ${D_POSTFIX}/${long} -type f | wc -l`
    done
    
    


    Si vous avez une idée ....

    Stéphane
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    exécute cette ligne dans ton php
    id -a > /tmp/log1
    0
  7. sbouli Messages postés 208 Statut Membre 2
     
    pas bête !!
    résultat :

    uid=33(www-data) gid=33(www-data) groups=33(www-data)

    mais c'est bien le postconf qui ne s'execute pas depuis le script via php ...

    [edit] si j'appel directement "postconf -d" depuis php j'ai l'erreur
    sh: postconf: command not found

    idem si c'est dans un script bash

    pourtant l'utilisateur peut lancer la commande ... (en su www-data)

    les commandes disponible à php sont-elles limitées ? par quel moyen ?

    Stéphane
    0