Linux : comment modifier la crontab d’un autre utilisateur ?
I. Présentation
Dans ce tutoriel, nous allons voir comment modifier la crontab d'un autre utilisateur sous Linux. En effet, il n'est pas rare d'utiliser un compte spécifique pour exécuter certaines tâches, et pas forcément le compte avec lequel on est connecté.
Cet article sera très court, car il s'agit plutôt d'un pense-bête quant à l'utilisation de cette commande très simple, mais qui parfois peut nous sortir de la tête (comme d'autres).
Pour ma part, je me trouve sous Debian 11, mais cela fonctionne pareil sur les autres versions et systèmes.
II. Procédure
Cette opération nécessite les droits de super-utilisateur ou d'utiliser "sudo". Pour ma part, je vais préfixer la commande par sudo car je ne suis pas connecté en tant que root. Dans l'idée, nous devons utiliser la commande crontab avec deux options : "-e" pour indiquer notre souhait d'éditer la crontab, puis "-u" pour spécifier l'utilisateur à qui supprimer la crontab.
Pour modifier la crontab de l'utilisateur "it-connect", on doit exécuter la commande suivante :
sudo crontab -e -u it-connect
Si vous oubliez de préciser "sudo" ou que vous n'êtes pas connecté en tant que root, la commande va renvoyer le message suivant :
must be privileged to use -u
Une fois que la crontab est ouverte, vous n'avez plus qu'à l'éditer et à sauvegarder vos modifications. Si vous avez besoin de la rouvrir par la suite, la commande reste la même.
Sachez qu'en regardant les logs du fichier "/var/log/syslog", vous pouvez voir quand a été modifiée la crontab :
sudo tail -f /var/log/syslog
Pour ma part, j'obtiens :
Nov 28 11:17:12 debian-11 crontab[210284]: (root) BEGIN EDIT (it-connect) Nov 28 11:17:17 debian-11 crontab[210284]: (root) END EDIT (it-connect)
C'est tout pour cette fois-ci.