Il problema
Un utente non privilegiato non può modificare il proprio file crontab utilizzando il comando "crontab -e"
$ crontab -e no crontab for oracle - using an empty one /tmp/crontab.Lm34gsJV: Permission denied $
La soluzione
Ciò può accadere principalmente a causa di un'autorizzazione errata nella directory /tmp. Quando un utente tenta di modificare crontab utilizzando il comando 'crontab -e', viene creato un file crontab temporaneo nella directory /tmp, che viene sovrascritto sul file crontab effettivo quando l'utente salva le modifiche. Anche autorizzazioni errate del proprietario del gruppo (root) su / possono causare questo errore. Per risolvere il problema, controlla sotto 2 cose sul server.
Verifica il permesso di /tmp
1. assicurati che i permessi della directory /tmp siano "drwxrwxrwt. ”
# ls -ld /tmp/ drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/
Come puoi vedere nell'output sopra, si tratta di autorizzazioni errate.
2. Ripristina le autorizzazioni corrette in questo modo:
# chmod 1777 /tmp
La directory deve consentire autorizzazioni di lettura, scrittura ed esecuzione a livello mondiale. Anche il bit "sticky" è impostato in modo che solo il proprietario di un file possa eliminarlo; in caso contrario, qualsiasi utente potrebbe eliminare qualsiasi file arbitrario nella directory.
3. Prova a creare un nuovo file in /tmp/per verificare:
# touch /tmp/test_file
Verifica i permessi di SELinux
1. Potresti anche voler controllare che SELinux sia abilitato sul sistema. SELinux in alcuni casi, se impostato in modo errato può creare problemi. Per verificare se SELinux è abilitato:
# getenforce Enforcing
2. Disabilitiamo temporaneamente SELinux per verificare se il problema viene risolto.
# setenforce 0
3. Verifica le impostazioni modificando il crontab dell'utente.
# crontab -e
4. Se funziona correttamente, potresti voler riabilitare SELinux e usare “restorecon ” per ripristinare l'autorizzazione corretta della directory /tmp.
# setenforce 1 # restorecon -v /tmp