Controlar los usuarios que pueden programar tareas en Ubuntu Server 20.04 LTS
De forma predeterminada, en Ubuntu Server 20.04 LTS todos los usuarios pueden crear tareas programadas. No obstante, esta característica puede no ser adecuada en todos los contextos, por lo que el administrador tiene la posibilidad de quitarle esa facultad a cualquier usuario del sistema.
Para lograr ese propósito, pueden utilizarse dos archivos diferentes, llamados cron.allow y cron.deny, que se encuentran dentro del directorio /etc.
Cuando necesites usar los archivos cron.allow y cron.deny, puede que aún no existan de forma predeterminada en tu sistema, pero no te preocupes, puedes crearlos usando cualquier editor de textos.
En el caso de que no exista ninguno de los archivos, el comportamiento predeterminado de Ubuntu es permitir que todos los usuarios del sistema puedan crear tareas programadas.
La idea general es utilizar el archivo cron.allow para que solo puedan crear tareas programadas los usuarios relacionados dentro de él.
Así, por ejemplo, si incluimos el nombre de la cuenta usuario dentro del archivo cron.allow, comprobaremos que ahora no se podrán programar tareas para ningún otro usuario.
Para lograrlo, editamos el archivo:
sudo nano /etc/cron.allow
Cuando se abra el editor de textos, solo tenemos que escribir el nombre del usuario.
Cuando terminemos, salimos del editor pulsando las teclas ctrl + x y asegurándonos de guardar los cambios
Aunque aquí solemos utilizar el editor nano, también podríamos haber añadido el nombre del usuario al archivo con una orden tan sencilla como esta:
sudo echo usuario >> /etc/cron.allow
A partir de este momento, cuando tratemos de crear una tarea programada para cualquier otro usuario, obtendremos un error.
Sin embargo, no tendremos dificultades al crear una tarea programada para la cuenta usuario…
Y comprobamos que el editor se abre sin ningún problema.
La otra opción es permitir la creación de tareas programadas a todos los usuarios, salvo a un número reducido, que relacionaremos dentro del archivo cron.deny.
La forma más sencilla de comprobar su funcionamiento consiste en utilizar privilegios administrativos para crear el archivo /etc/cron.deny e incluir el nombre de un usuario.
Para lograrlo, podemos usar de nuevo el editor nano.
sudo nano /etc/cron.deny
Como cabe esperar, el sistema nos pide la contraseña de administración. La escribimos y pulsamos la tecla Intro.
… Y, como antes, solo tenemos que escribir el nombre de la cuenta.
Cuando terminemos, salimos del editor pulsando las teclas ctrl + x y asegurándonos de guardar los cambios
Cuando tratemos de crear una tarea programada desde la cuenta usuario, obtendremos un error como el de la imagen siguiente…
Se producirá el error incluso cuando tratemos de crear la tarea programada para el usuario usando privilegios de root.
Si aparece el mismo usuario en cron.allow y en cron.deny, el primero tiene preferencia, por lo que el usuario podrá usar el comando crontab con normalidad.
Por último, aclarar dos detalles:
-
Cuando necesitamos incluir varios nombres de cuentas en los archivos cron.allow o cron.deny, deberemos escribir cada nombre de cuenta en una línea distinta del archivo.
-
En lugar de una cuenta de usuario, podemos utilizar la palabra ALL para representarlas a todas.
Y esto es todo por el momento. Espero que te resulte útil.