Il s'agit souvent d'une exigence dans les environnements de production pour désactiver les utilisateurs non root pour créer une entrée crontab. Il y a trois façons d'y parvenir :
1. Désactivez ssh de l'utilisateur non root sur le système, l'utilisateur non root ne pourra plus du tout utiliser le shell. Reportez-vous à ce message pour la procédure.
2. Ajoutez l'utilisateur dans le fichier /etc/cron.deny , chaque utilisateur par ligne (méthode typique qui n'affecte que les utilisateurs de la liste) :
# cat /etc/cron.deny johny
Remarque : Assurez-vous qu'il n'y a pas de conflit entre le fichier /etc/cron.allow et /etc/cron.deny.
Vérifiez l'utilisateur refusé en créant une entrée crontab :
$ crontab -e You (johny) are not allowed to use this program (crontab) See crontab(1) for more information
3. Abandonnez l'autorisation d'exécution de la commande crontab (approche agressive qui affecte tous les utilisateurs non root) :
Autorisations par défaut :
# ls -lrt /usr/bin/crontab -rwsr-xr-x 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Modifier l'autorisation (supprimer le bit setuid) :
# chmod 700 /usr/bin/crontab # ls -lrt /usr/bin/crontab -rwx------ 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Remarque :Assurez-vous d'avoir le fichier de sauvegarde avant de modifier son autorisation de fichier.
Après la mise à niveau du package, cette modification sera annulée par défaut.
Autorisation par défaut :
# stat /usr/bin/crontab File: ‘/usr/bin/crontab’ Size: 57552 Blocks: 120 IO Block: 4096 regular file Device: fd00h/64768d Inode: 10751442 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-12 17:03:10.112443944 +0530 Modify: 2015-04-21 19:38:05.000000000 +0530 Change: 2016-03-14 14:03:30.347276747 +0530 Birth: -
Vérifiez l'utilisateur refusé en créant une entrée crontab :
$ crontab -e bash: /usr/bin/crontab: Permission denied