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 greg
es:
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-get
reinstalar 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 crontab
grupo 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