Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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éé ? sad

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 wink

#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

philippe034 a écrit :

- 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).

philippe034 a écrit :

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 smile

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 wink :

#!/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