Erreur: crontab: doit être suid pour fonctionner correctement
Je veux définir cronjob dans le conteneur docker avec un utilisateur non root. Est-il possible de définir un cron sans utiliser Sudo et sans installer cron? J'utilise Alpine Docker Container.
Oui, vous pouvez exécuter son propre cron dans un utilisateur spécifique sans Sudo, car chaque utilisateur aura le fichier crontab, pas besoin de l'installer explicitement. pour exécuter crontab de n'importe quel utilisateur, utilisez -u
option, veuillez noter que l'utilisateur doit avoir le privilège d'utiliser -
$ crontab -u <username> -e
/etc/crontab
est l'ensemble du système crontab
.
Le format de /etc/crontab
est comme ça:
# m h dom mon dow user command
* * * * * someuser echo 'foo'
tandis que crontab -e
est par utilisateur, il convient de mentionner sans argument -u que la commande crontab va à la crontab des utilisateurs actuels. Tu peux faire crontab -e -u <username>
pour modifier un utilisateur spécifique crontab
.
Remarquez dans un par user crontab
il n'y a pas 'user'
champ.
# m h dom mon dow command
* * * * * echo 'foo'
Un aspect des crontabs qui peut prêter à confusion est que root a également son propre crontab. par exemple. crontab -e -u root
ne modifiera pas /etc/crontab
Voir Configuration de cron pour plus d'informations: https://www.freebsd.org/doc/handbook/configtuning-cron.html
Dans la plupart des distributions Linux, les crontabs par utilisateur sont généralement stockées dans: /var/spool/cron/crontabs/<username>
Je le résous en ajoutant le nom de l'utilisateur dont nous avons besoin pour exécuter les tâches cron dans le fichier /etc/cron.allow. Si ce fichier n'existe pas, vous devez le créer. Plus de détails sur le fichier cron.allow