Vous pouvez contrôler l'accès à la commande crontab au moyen de deux fichiers du répertoire /etc/cron.d : cron.deny et cron.allow. Ces fichiers permettent uniquement aux utilisateurs spécifiés d'exécuter les tâches de commande crontab telles que la création, la modification, l'affichage ou la suppression de leurs propres fichiers crontab.
Les fichiers cron.deny et cron.allow contiennent une liste de noms d'utilisateur, chaque ligne comportant un seul nom.
Ces fichiers de contrôle d'accès fonctionnent comme suit :
Si le fichier cron.allow existe, seuls les utilisateurs qui y figurent peuvent créer, modifier, afficher ou supprimer les fichiers crontab.
Si cron.allow n'existe pas, tous les utilisateurs peuvent soumettre des fichiers crontab, à l'exception de ceux qui figurent dans cron.deny.
Si ni cron.allow ni cron.deny n'existent, vous devez prendre le rôle root pour exécuter la commande crontab.
Vous devez prendre le rôle root pour pouvoir modifier ou créer les fichiers cron.deny et cron.allow.
Le fichier cron.deny, créé pendant l'installation du logiciel Oracle Solaris, contient les noms d'utilisateur suivants :
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
Aucun des noms d'utilisateur du fichier cron.deny par défaut ne peut accéder à la commande crontab. Vous pouvez modifier ce fichier afin d'ajouter d'autres noms d'utilisateur qui n'auront pas accès à la commande crontab.
Etant donné qu'aucun fichier cron.allow n'est fourni par défaut, tous les utilisateurs sauf ceux qui figurent dans le fichier cron.deny ont accès à la commande crontab. Si vous créez un fichier cron.allow, seuls ces utilisateurs peuvent accéder à la commande crontab.
Reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
Reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
Si vous n'ajoutez pas root au fichier, l'accès superutilisateur aux commandes crontab sera refusé.
root username1 username2 username3 . . .
L'exemple suivant illustre un fichier cron.deny qui empêche les noms d'utilisateur jones, temp et visitor d'accéder à la commande crontab.
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess jones temp visitor
L'exemple suivant montre un fichier cron.allow. Les utilisateurs root, dupont et dubois sont les seuls à pouvoir accéder à la commande crontab.
$ cat /etc/cron.d/cron.allow root jones smith
Pour vérifier si un utilisateur spécifique peut accéder à la commande crontab, utilisez la commande crontab -l lorsque vous êtes connecté au compte d'utilisateur.
$ crontab -l
Si l'utilisateur a accès à la commande crontab et a déjà créé un fichier crontab, celui-ci est affiché. Dans le cas contraire, si l'utilisateur peut accéder à la commande crontab, mais si aucun fichier crontab n'existe, un message similaire à celui ci-dessous s'affiche :
crontab: can't open your crontab file
Soit l'utilisateur est répertorié dans le fichier cron.allow (si ce fichier existe), soit il n'est pas répertorié dans le fichier cron.deny.
Si l'utilisateur ne peut pas accéder à la commande crontab, le message suivant s'affiche, qu'un fichier crontab antérieur existe ou non :
crontab: you are not authorized to use cron. Sorry.
Ce message signifie que l'utilisateur ne figure pas dans le fichier cron.allow (si ce fichier existe) ou qu'il figure dans le fichier cron.deny.