El problema
Un usuario sin privilegios no puede editar su archivo crontab usando el comando "crontab -e"
$ crontab -e no crontab for oracle - using an empty one /tmp/crontab.Lm34gsJV: Permission denied $
La solución
Esto puede ocurrir principalmente debido a un permiso incorrecto en el directorio /tmp. Cuando un usuario intenta editar el crontab usando el comando 'crontab -e', se crea un archivo crontab temporal en el directorio /tmp, que se sobrescribe en el archivo crontab real cuando el usuario guarda los cambios. Los permisos incorrectos del propietario del grupo (raíz) en / también pueden causar este error. Para resolver el problema, verifique a continuación 2 cosas en el servidor.
Verifique el permiso de /tmp
1. asegúrese de que el permiso del directorio /tmp sea “drwxrwxrwt. ”
# ls -ld /tmp/ drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/
Como puede ver en el resultado anterior, estos son permisos incorrectos.
2. Restaure los permisos correctos así:
# chmod 1777 /tmp
El directorio debe permitir permisos mundiales de lectura, escritura y ejecución. El bit "sticky" también está configurado para que solo el propietario de un archivo pueda eliminarlo; de lo contrario, cualquier usuario podría eliminar cualquier archivo arbitrario en el directorio.
3. Intente crear un nuevo archivo en /tmp/ para verificar:
# touch /tmp/test_file
Verificar los permisos de SELinux
1. También puede verificar si SELinux está habilitado en el sistema. SELinux en algunos casos, si se configura incorrectamente puede crear problemas. Para verificar si SELinux está habilitado:
# getenforce Enforcing
2. Desactivemos SELinux temporalmente para verificar si el problema se resuelve.
# setenforce 0
3. Verifique la configuración editando el crontab del usuario.
# crontab -e
4. Si funciona bien, es posible que desee volver a habilitar SELinux y usar "restorecon ” para restaurar el permiso correcto del directorio /tmp.
# setenforce 1 # restorecon -v /tmp