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.allow
archivo vacío y ningún /etc/cron.deny
archivo 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 crontab
cuando cambio explícitamente a la cuenta del usuario?
Agregar el usuario a /etc/cron.allow
hace que ambos comandos funcionen bien.
crontab -e
(como curador de usuarios)?cron.allow
archivo vacío , tanto elroot
crontab -u vagrant -l
ycrontab -l
como elvagrant
resultado en unare not allowed to use this program
mensaje (que es diferente del mensaje que cita).Respuestas:
Verifiqué las fuentes de crontab y descubrí que si el usuario no puede abrir
/etc/cron.allow
(por ejemplo, despuéschmod 0 /etc/cron.allow
), crontab cree que el usuario puede usarlo (como sicron.allow
no 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.allow
y, tal vez, los registros de auditoría de SELinux / AppArmor.fuente
chmod -r /etc/cron.allow
hecho causa el comportamiento descrito en mi sistema Ubuntu 14.04/etc/cron.allow
permisos fueron600
, después de cambiarlo a644
ambosroot
ycurator
ver elnot allowed to use this program (crontab)
mensaje. Luego, después de agregarcurator
a/etc/cron.allow
ambos, podría usar el crontab del curador.