Puede controlar el acceso al comando crontab mediante dos archivos en el directorio /etc/cron.d: cron.deny y cron.allow. Estos archivos permiten que sólo los usuarios especificados realicen tareas del comando crontab, como crear, editar, visualizar o eliminar sus propios archivos crontab.
Los archivos cron.deny y cron.allow constan de una lista de nombres de usuario (un nombre de usuario por línea).
Estos archivos de control de acceso funcionan de manera conjunta como se indica a continuación:
Si cron.allow existe, sólo los usuarios indicados en este archivo pueden crear, editar, visualizar o eliminar archivos crontab.
Si cron.allow no existe, todos los usuarios pueden ejecutar archivos crontab, excepto los usuarios indicados en cron.deny.
Si no existen cron.allow ni cron.deny, debe asumir el rol de usuario root para ejecutar el comando crontab.
Para editar o crear los archivos cron.deny y cron.allow, debe asumir el rol de usuario root.
El archivo cron.deny, creado durante la instalación del software Oracle Solaris, contiene los siguientes nombres de usuario:
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess
Ninguno de los nombres de usuario del archivo cron.deny predeterminado puede acceder al comando crontab. Puede editar este archivo para agregar otros usuarios a los que se les denegará el acceso al comando crontab.
Dado que no se proporciona ningún archivo cron.allow predeterminado, todos los usuarios, excepto los usuarios indicados en el archivo cron.deny, pueden acceder al comando crontab. Si crea un archivo cron.allow, sólo estos usuarios podrán acceder al comando crontab.
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .
# cat /etc/cron.d/cron.deny daemon bin nuucp listen nobody noaccess
Si no agrega root al archivo, el acceso root a los comandos crontab será denegado.
root username1 username2 username3 . . .
El siguiente ejemplo muestra un archivo cron.deny que impide que los nombres de usuario jones, temp y visitor accedan al comando crontab.
$ cat /etc/cron.d/cron.deny daemon bin smtp nuucp listen nobody noaccess jones temp visitor
El siguiente ejemplo muestra un archivo cron.allow. Los usuarios root, jones y smith son los únicos usuarios que pueden acceder al comando crontab.
$ cat /etc/cron.d/cron.allow root jones smith
Para verificar si un usuario específico puede acceder al comando crontab, utilice el comando crontab -l mientras está conectado en la cuenta de usuario.
$ crontab -l
Si el usuario puede acceder al comando crontab y ya ha creado un archivo crontab, se muestra el archivo. De lo contrario, si el usuario puede acceder al comando crontab, pero no existe ningún archivo crontab, se muestra un mensaje similar al siguiente:
crontab: can't open your crontab file
Este usuario aparece en el archivo cron.allow (si el archivo existe) o no aparece en el archivo cron.deny.
Si el usuario no puede acceder al comando crontab, aparece el siguiente mensaje, independientemente de que exista un archivo crontab anterior:
crontab: you are not authorized to use cron. Sorry.
Este mensaje significa que el usuario no aparece en el archivo cron.allow (si el archivo existe) o aparece en el archivo cron.deny.