web-dev-qa-db-fra.com

Comment configurer cronjob avec un utilisateur non root?

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.

4
LazyCoder

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
8
sanath meti

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

3
Allan

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

0
Aurelio Vivas