crontab: "El crontab temporal ya no es de tu propiedad."

crontab: "El crontab temporal ya no es de tu propiedad."

Volví de Linuxmint 18 Cinnamon de 64 bits a Linuxmint 17.3 Cinnamon de 64 bits y ya no puedo crear un trabajo cron. Tengo particiones raíz (/) y de inicio (/home/mi-nombre-de-usuario) separadas y dejé la partición de inicio intacta cuando hice la instalación 17.3.

Estaba teniendo todo tipo de dificultades para crear una tarea cron, así que instalé gnome-scheduler e intenté crear una tarea cron de esa manera. Recibí un cuadro de diálogo de advertencia titulado

"Advertencia: Directorio de trabajo de tareas ejecutadas"

y el contenido del mensaje es

"Nota sobre el directorio de trabajo de las tareas ejecutadas: las tareas recurrentes se ejecutarán desde el directorio de inicio".

Hice clic en Aceptar y el trabajo aparece en la terminal de la siguiente manera:

$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4

Mi fondo de pantalla no cambia cada minuto como debería. El script se ejecuta bien desde la línea de comando y no produce ningún resultado. Los permisos son 744 octales para el script. Todo esto funcionó bien en Mint 18, pero ejecuté el script solo una vez al día. Lo configuré para que se ejecute cada minuto sólo con fines de prueba.

Si pruebo el método normal de edición del trabajo cron, obtengo

$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab

Luego obtengo un nano buffer vacío en lugar de la plantilla crontab normal llena de líneas comentadas. Cuando intento escribir mi nano buffer en el archivo /tmp/crontab.lmuwIe/crontab, aparece este mensaje de error:

[Error al escribir /tmp/lmuwIe/crontab: Permiso denegado]

Finalmente,

$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb  9  2013 /usr/bin/crontab

¿Podré volver a crear un trabajo cron alguna vez?

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

@Gilles Bueno, he progresado mucho. Me deshice de todos los errores extraños reinstalando cron. Ahora todo funciona como debería cuando uso

$ crontab -e

exceptoque el script que he estado usando durante años no se ejecuta.

Pero se ejecuta otro script; así que estoy perdido.

Esto es lo que tengo ahora mismo:

$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt

(No incluí las 20 líneas y pico de comentarios que preceden a los trabajos cron).

El trabajo de fecha se ejecuta exactamente como debería, pero el trabajo wallpaper_changer.sh no hace nada. He usado esto durante años y ahora no funciona. El script funciona bien desde la línea de comando y solía funcionar bien desde cron.

$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun  2 14:30 /home/my-user-name/wallpaper_changer.sh

$ echo $DISPLAY
:0.0

¿Qué pasa con esto?

Respuesta1

Debe editar los permisos en el binario crontab y restablecerlos a sus valores cuando realiza una instalación nueva.

Permisos que NO FUNCIONAN:

ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

Acción, hazlo como root o usando sudo:

chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab

Permisos de TRABAJO:

ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

Tomados de una instalación nueva que funciona, los permisos de trabajo se establecen durante la instalación.

No tengo idea de por qué cambiaron más tarde.

Respuesta2

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

La propiedad de /var/spool/cron/crontabs/my-user-namees incorrecta. Deberías ser el dueño. Eso explicaría por qué cron no puede sobrescribir el archivo. Además, el archivo normalmente estaría en crontabun grupo, pero no creo que importe.

Puedes solucionar este problema ejecutando

sudo chown my-user-name /var/spool/cron/crontabs/my-user-name

No sé qué pudo haber causado esto y no veo cómo podría estar relacionado con una degradación del sistema. Los problemas subyacentes podrían causar otros problemas.

información relacionada