Controlar los usuarios que pueden programar tareas en Ubuntu Server 18.04 LTS

Publicado por P. Ruiz en

De forma predeterminada, en Ubuntu Server 18.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.

La idea general es utilizar el archivo cron.deny para permitir la creación de tareas programadas a todos los usuarios, salvo un número reducido, que relacionamos dentro de este archivo.

La otra opción es impedir la creación de tareas programadas a todos los usuarios, salvo a un número reducido, que relacionaremos dentro del archivo cron.allow.

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, como hacemos habitualmente, 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.

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-001

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

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-002

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.

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-003

También podemos probar a la inversa: 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

Escribimos la orden y pulsamos la tecla Intro.

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-004

… 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

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-005

Cuando tratemos de crear una tarea programada para cualquier otro usuario, obtendremos un error.

… aunque ahora no habíamos prohibido la programación de tareas a ese usuario en particular.

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-006

Sin embargo, no tendremos dificultades al crear una tarea programada para la cuenta usuario

Repetimos el comando para el único usuario habilitado.

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-007

Y comprobamos que el editor se abre sin ningún problema.

Solo tendremos que escribir la tarea y guardar los cambios

Controlar-los-usuarios-que-pueden-programar-tareas-en-Ubuntu-Server-1804-LTS-008

Por último, aclarar dos detalles:

  1. 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.

  2. 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.