Pages : 1
#1 Le 13/01/2008, à 15:38
- philippe034
cron.d et www-data
Bonjour,
Le répertoire /etc/cron.d est fait pour accueillir des fichiers crontab. J'aimerai pouvoir ajouter des fichiers dans ce répertoire depuis un script php appelé depuis un navigateur web, donc avec l'user www-data.
Si je créer un fichier dans ce répertoire (/etc/cron.d/) avec ce script, les tà¢ches ne sont pas executées, alors que si le fichier est créer manuellement en ouvrant le dossier /etc/cron.d/ en root, les tà¢ches sont bien executées.
Comment peut on faire pour créer des fichiers qui soient pris en compte dans /etc/cron.d/
Merci de votre aide, en espérant que j'ai été assez clair.
Philippe.
Personne n'a une idéé ?
Dernière modification par philippe034 (Le 13/01/2008, à 17:29)
Hors ligne
#2 Le 14/01/2008, à 12:08
- Aurel34
Re : cron.d et www-data
c'est bizarre en effet...
j'ai quelques questions pour toi:
- pourquoi tu n'utilises pas crontab ?
- ton fichier cron crée-t-il bien des fichiers en "root" ?
- ton fichier es-t-il bien lisible (rrr) ?
normalement cron charge les modifs toutes les minutes depuis /etc/crontab et cron.d, donc il devrait voir tes ajouts.
essaye aussi de décommenter la ligne "#cron..." dans "/etc/syslog.conf". Comme ça tu auras les évènements loggués dans "/var/log/cron.log", ça aide à débugguer. (tu as peut-être déjà des trucs dans /var/log/messages, mais c'est mieux d'avoir un log à part).
si tu ne trouves pas, postes le log en question sur ce thread et on verra
#3 Le 23/01/2008, à 13:10
- philippe034
Re : cron.d et www-data
Bonjour Aurel,
Désolé de ne pas avoir répondu avant.
- pourquoi tu n'utilises pas crontab ?
Le but est de faire une interface en html et php. Pour me faire un service un peu comme webcron.org.
- ton fichier cron crée-t-il bien des fichiers en "root" ?
Non justement, quand je les créer depuis un script php, le propriétaire et le groupe sont www-data
- ton fichier es-t-il bien lisible (rrr) ?
Comment ça ? En tout cas les droits sont en 777.
Merci de ton aide.
Aure, est ce que cela veut dire que tu es dans le 34 ?, moi je suis dans le 34.
Philippe.
Hors ligne
#4 Le 31/01/2008, à 18:08
- philippe034
Re : cron.d et www-data
Personne n'a d'idée ?
Ce sujet n'intéresse personne ?
Philippe
Hors ligne
#5 Le 21/02/2008, à 20:46
- philippe034
Re : cron.d et www-data
Depuis le temps je n'ai toujours pas trouvé.
Quelqu'un aurait-il une idée ?
merci d'avance.
Philippe.
Hors ligne
#6 Le 21/02/2008, à 21:18
- stopher
Re : cron.d et www-data
Une petite piste peut etre ?
http://php.developpez.com/sources/?page=securite#cron
Ou un pseudo crontab :
http://matthieu.developpez.com/execution_periodique/#L4
Dernière modification par stopher (Le 21/02/2008, à 21:38)
Hors ligne
#7 Le 22/02/2008, à 10:22
- Aurel34
Re : cron.d et www-data
- pourquoi tu n'utilises pas crontab ?
Le but est de faire une interface en html et php. Pour me faire un service un peu comme webcron.org.
je pensais à: tu récupères la sortie de "crontab -l" pour lister les services et tu fais "crontab fichier" pour installer une nouvelle crontab. Comme ça tout est géré au niveau user (ici user=www-data).
Non justement, quand je les créer depuis un script php, le propriétaire et le groupe sont www-data
fais le test suivant: en root tu crées ton fichier cron (celui qui marche) et ut fais:
chown www-data:www-data monfichiercron
si ça plante tu sauras d'où ça vient
Dernière modification par Aurel34 (Le 22/02/2008, à 10:23)
Hors ligne
#8 Le 22/02/2008, à 10:58
- wblitz
Re : cron.d et www-data
une autre solution est d'écrire temporairement tes fichiers cron dans un répertoire accessible par apache. ensuite, dans ton code php, tu appelles system() sur un script qui déplace les fichiers dans /etc/cron.d
pour que les fichiers aient les bons droits, tu utilises "sudo <ma commande>" dans la fonction system() (ou une autre) de php. il faut donc au préalable modifier le fichier sudoers pour donner les droits à www-data d'exécuter le script qui déplace les fichiers en tant que root.
le script (attention, je l'ai simplifié au maximum pour juste illustrer mon propos :
#!/bin/bash
mv /mon/pool/de/fichier/cron/$1 /etc/cron.d
rm /mon/pool/de/fichier/cron/$1
pour les droits sudo (avec la commande visduo en root) :
www-data ALL=NOPASSWD:<chemin complet vers le script>
dans le code php :
<?php
// creation préalable du fichier 'testcron'
system("sudo /chemin/vers/le/script testcron");
?>
là les fichiers finaux auront les bons droits
Dernière modification par wblitz (Le 22/02/2008, à 11:00)
"Un optimiste, c'est un homme qui plante deux glands et qui s'achète un hamac" - Jean de Lattre de Tassigny
Pensez à mettre [RÉSOLU] dans le sujet de vos posts une fois qu'ils le sont...
quelques docs
Hors ligne
Pages : 1