Droits pour find sur des répertoires

Résolu/Fermé
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 16 sept. 2008 à 18:50
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 - 17 sept. 2008 à 13:06
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

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
17 sept. 2008 à 10:43
hello
un répertoire doit avoir les droits r-x pour être lu (r) et traversé (x)
0
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
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
17 sept. 2008 à 11:26
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
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
17 sept. 2008 à 11:44
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
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
17 sept. 2008 à 12:15
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
17 sept. 2008 à 12:23
exécute cette ligne dans ton php
id -a > /tmp/log1
0
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
17 sept. 2008 à 12:31
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
sbouli Messages postés 200 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 14 août 2014 2
17 sept. 2008 à 13:06
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
0