Comment désactiver temporairement une ou plusieurs tâches cron des utilisateurs? En particulier, je ne veux pas suspendre les droits cron de l'utilisateur - simplement ne pas licencier aucun de ses travaux.
Je suis sur les systèmes SLES 11 SP2 et SP3
-u user
commutateur de lacrontab
commande et mettre un#
caractère de commentaire devant les travaux à désactiver pour l'utilisateur donné?Réponses:
touch /var/spool/cron/crontabs/$username; chmod 0 /var/spool/cron/crontabs/$username
devrait faire l'affaire. Restaurez avecchmod 600
ettouch
(vous devez modifier le mtime du fichier pour que cron (tente de) le recharger).Sur au moins Debian et probablement avec Vixie cron en général, fait
chmod 400 /var/spool/cron/crontabs/$username
également l'affaire, car cette implémentation insiste sur le fait que les autorisations sont exactement 600. Cependant, cela ne dure que jusqu'à ce que l'utilisateur exécute lacrontab
commande.Si vous voulez un moyen robuste, je ne pense pas qu'il y ait quelque chose de mieux que de déplacer temporairement leur crontab ou de changer les autorisations, et de les ajouter temporairement
/etc/cron.deny
.la source
chmod
.touch $username
après lechmod
. Mais cela n'a pas aidé. (btw a compris votre point de vuecron.deny
)chgrp root /var/spool/cron/crontabs
Que diriez-vous de quelque chose comme ça pour désactiver un utilisateur crontab:
et pour réactiver:
Cela a l'avantage supplémentaire que vous pouvez l'exécuter en tant qu'utilisateur sans avoir besoin de root (supprimez simplement le paramètre -u).
la source
Si vous utilisez Debian, cela ne s'applique qu'à Debian AFAIK :
Vous pouvez le faire en ajoutant un point au nom du cronjob.
Le comportement est mentionné dans les documents officiels Debian:
https://www.debian.org/doc/debian-policy/#cron-job-file-names
la source
Si vous voulez simplement arrêter tous les
cron
travaux pendant un certain temps - par exemple, pendant la maintenance du système avec laquelle ils pourraient mal interagir - les commandes sont normalementet, pour reprendre
Je suppose que vous avez besoin des droits root ou wheel pour les exécuter; si nécessaire, exécutez-les via sudo ou (dernier recours) connectez-vous en tant que root.
Trop pour la question spécifique posée, mais offre un "guichet unique" et ne nécessite pas de jouer avec le système de fichiers ou des fichiers temporaires.
la source
Je suis d'accord, le chemin via systemctl est celui à prendre. Sur la framboise, les commandes des orteils seraient
la source
cron
service. L'OP voulait pouvoir choisir les crontabs des utilisateurs à désactiver.