El usuario x no puede usar este programa (crontab)

9

Ubuntu 14.04

No entiendo el comportamiento que estoy viendo al configurar crontab para una cuenta de servicio (sin inicio de sesión) (con nombre curator).

Cuando estoy conectado como root, esto es lo que obtengo:

# crontab -u curator -l
The user curator cannot use this program (crontab)

Pero, cuando cambio a la cuenta del usuario, funciona bien:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

Hay un /etc/cron.allowarchivo vacío y ningún /etc/cron.denyarchivo en el sistema. De acuerdo a man crontab:

Si el archivo /etc/cron.allow existe, entonces debe aparecer en la lista (un usuario por línea) para poder usar este comando. Si el archivo /etc/cron.allow no existe pero el archivo /etc/cron.deny sí existe, entonces no debe aparecer en el archivo /etc/cron.deny para usar este comando.

Entiendo el error cuando ejecuto el primer comando, pero ¿por qué me permite ejecutarlo crontabcuando cambio explícitamente a la cuenta del usuario?

Agregar el usuario a /etc/cron.allowhace que ambos comandos funcionen bien.

Adam Michalik
fuente
1
Simplemente dice que no hay crontab. ¿Qué sucederá si intentas crear una vía crontab -e(como curador de usuarios)?
Fiximan
1
No se puede reproducir este problema en la imagen vagabunda de trusty64; con un cron.allowarchivo vacío , tanto el root crontab -u vagrant -ly crontab -lcomo el vagrantresultado en un are not allowed to use this programmensaje (que es diferente del mensaje que cita).
thrig

Respuestas:

11

Verifiqué las fuentes de crontab y descubrí que si el usuario no puede abrir /etc/cron.allow(por ejemplo, después chmod 0 /etc/cron.allow), crontab cree que el usuario puede usarlo (como si cron.allowno existiera).

Pero root puede leer cualquier archivo, por lo que el código de comprobación de crontab funciona como se esperaba. Por lo tanto, le recomiendo que verifique los primeros permisos /etc/cron.allowy, tal vez, los registros de auditoría de SELinux / AppArmor.

Michael Zarubin
fuente
Esto parece ser: he verificado que de chmod -r /etc/cron.allowhecho causa el comportamiento descrito en mi sistema Ubuntu 14.04
steeldriver
¡Correcto! Mis /etc/cron.allowpermisos fueron 600, después de cambiarlo a 644ambos rooty curatorver el not allowed to use this program (crontab)mensaje. Luego, después de agregar curatora /etc/cron.allowambos, podría usar el crontab del curador.
Adam Michalik