Forum Linux.général Déploiement massif de fichiers crontab

Posté par  .
Étiquettes : aucune
-1
23
août
2008
Bonjour


Pour des besoins dans mon travail, je dois déployer un même fichier crontab sur plusieurs machines Unix.

les crontabs sont dans /var/spool/crontabs/mon_user_crontab

le hic c'est que ce fichier je ne peux le modifier qu'en faisant un crontab-e je peux pas le manipuler physiquement pour par exemple le déplacer, et remplacer par un nouveau fichier, pas les droits dessus, il appartient au user root et à mon groupe ?

Je ne suis pas root sur cette machine.

Y'a-t-il à votre avis un moyen de faire un déploiement massif en déposant le nouveau fichier crontab par ftp, plutôt que de me taper des crontab -e sur chacune des machines, ce qui est source d'erreur.


Moi je ne vois pas trop de solution
avez-vous des idées ?

Merci de m'avoir lu.

E.
  • # ssh/scp

    Posté par  (site web personnel) . Évalué à 0.

    Voici qques pistes:


    Pour copier le fichier:

    for machine in machine1 machine2 ; do
    scp /tmp/monfichier root@$machine
    done

    Cela pourait etre un script shell que tu recopie sur chaque machine
    puis l'execute en local en faisant:

    for machine in machine1 machine2 ; do
    ssh root@$machine /tmp/monscript
    done

    Système - Réseau - Sécurité Open Source

    • [^] # man crontab

      Posté par  (site web personnel) . Évalué à 2.

      echo 'ma ligne de crontab' | crontab -

      Système - Réseau - Sécurité Open Source

    • [^] # Re: ssh/scp

      Posté par  . Évalué à 1.

      Je n'ai pas du tout accès en root sur ces machines, je n'ai qu'un accès standard, simple utilisateur.
      • [^] # Re: ssh/scp

        Posté par  (site web personnel) . Évalué à 0.

        Cela ne change rien, remplace root par l'utilisateur de ton choix.

        scp /tmp/file user@machine:/le_rep_de_destination
        ça marche aussi dans l'autre sens

        Système - Réseau - Sécurité Open Source

  • # ssh + crontab

    Posté par  (site web personnel) . Évalué à 6.

    alors :

    * crontab - permet de prendre l'entrée standard, comme contenu de la crontab
    * | ssh host crontab - permet de prendre la sortie standard local pour l'envoyer en entrée standard distante sur la machine host

    en gros l'idée est :
    for host in 'h1 h2 h3 h4'; do
    cat crontab | ssh $host crontab -
    done


    apres, il te suffit de deployer des sur les machines h1, h2, h3 et h4 et surtout de spécifier dans ton authorized_keys et le sshd_config distants certaines contraintes pour securiser un peul l'ensemble en empechant d'offrir un shell à un attaquant.

    * tu as l'option command= pour ton authorized_keys qui permet de n'autoriser qu'un seul programme à fonctionner quand on lance ssh avec la clé correspondant ( par exemple un filtre de contenu avant de risquer d'ecrire un wget dans ta crontab avec un bete crontab - )

    * tu as l'option PermitRootLogin force-command-only qui si tu dois autoriser le login root par ssh, te permet de fournir qu'un shell restreint.
    • [^] # Re: ssh + crontab

      Posté par  . Évalué à 1.

      Ok merci je capte miuex la manip ;

      dans l'idée c'est ce qui me fallait

      merci d'avoir répondu.
      • [^] # Re: ssh + crontab

        Posté par  (site web personnel) . Évalué à 2.

        de rien.

        pense à regarder l'option command= elle pourra t'assurer un petit plus en cas d'attaque contre les clés, si tu sais coder un peu ;)
  • # le plus simple

    Posté par  . Évalué à 1.

    $crontab < manouvellecron.txt


    c'est précis efficace, et ça répond à ma question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.