Droits pour find sur des répertoires
Résolu
sbouli
Messages postés
208
Statut
Membre
-
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
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
-
hello
un répertoire doit avoir les droits r-x pour être lu (r) et traversé (x) -
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 -
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
exécute cette ligne dans ton php
id -a > /tmp/log1 -
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 -
J'ai trouvé grace à ce post :
http://forum.ubuntu-fr.org/viewtopic.php?id=201469
il fallait bien donner le droit à /usr/sbin/postconf pour www-data ...
Merci pour votre aide !!!!
Stéphane