crontab -e produce: /var/spool/cron/: mkstemp: Permiso denegado

crontab -e produce: /var/spool/cron/: mkstemp: Permiso denegado

Estoy intentando configurar una tarea cron con mi usuario. Ejecuto crontab -e, hago mis ediciones e intento guardar y salir. Recibo el siguiente mensaje de error /var/spool/cron/: mkstemp: Permission denied.

Salida relevante de ls -al /var/spool/cron/crontabs

drwxr-xr-x 2 root crontab 4096 Nov  4 10:09 .
drwxr-xr-x 5 root root    4096 Nov 19  2014 ..
-rw-rw-rw- 1 greg crontab   91 Nov  4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root

Puedo editar directamente el archivo greg y guardarlo, pero parece que todavía no puedo ejecutar el trabajo, incluso si reinicio cron después de actualizarlo. ¿Qué necesito hacer para solucionar este problema?

La salida de ls -lha $(which crontab)es:

-rwxr-sr-x 1 root crontab 36K Feb  8  2013 /usr/bin/crontab

La salida de groups greges:

greg : greg adm sudo crontab lpadmin sambashare

Respuesta1

Esto solucionará su problema inmediato:

chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs

Pero, si puede descargar paquetes, una forma más sólida de solucionar este problema es apt-getreinstalar el paquete apropiado:

root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron

después de asegurarse primero de que todos los cambios locales que haya realizado en /etc/init/cron.conf, /etc/default/cron, etc. se copien en algún lugar y luego se vuelvan a aplicar.

Respuesta2

La solución mencionada por Mark Plotnick no funcionó para mí, sin embargo, después de agregar mi usuario al crontabgrupo funcionó:

sudo adduser myname crontab

Deberá cerrar sesión y volver a iniciar sesión para que se aplique este cambio.

Respuesta3

En Ubuntu 22.04:

crontab ~/admin/scripts/crontab.txt

/var/spool/cron/: mkstemp: Permiso denegado

$ ls -lha $(which crontab)

-rwxr-sr-x 1 crontab raíz 39K 23 de marzo de 2022 /usr/bin/crontab

~$ ls -lha /var/spool/cron/crontabs

ls: no se puede abrir el directorio '/var/spool/cron/crontabs': permiso denegado

~$ sudo ls -lha /var/spool/cron/crontabs

total 8.0K

drwx-wx--T 2 root systemd-journal 4.0K 2 de marzo de 2023.

drwxr-xr-x 3 raíz raíz 4.0K 22 de julio 09:48 ..

Entonces necesitamos 2 grupos para que el usuario ejecute para obtener privilegios:

sudo usermod -a -G systemd-journal <user>
sudo usermod -a -G systemd-journal <user>

Cerrar sesión y volver a iniciar sesión con el usuario...

crontab ~/admin/scripts/crontab.txt

crontab -l

0 */1 * * * ~/admin/scripts/elasticsearch_flush.sh > /dev/null 2>&1

información relacionada