Masalahnya
Pengguna yang tidak memiliki hak istimewa tidak dapat mengedit file crontab mereka menggunakan perintah “crontab -e”
$ crontab -e no crontab for oracle - using an empty one /tmp/crontab.Lm34gsJV: Permission denied $
Solusinya
Ini dapat terjadi terutama karena izin yang salah pada direktori /tmp. Ketika pengguna mencoba mengedit crontab menggunakan perintah 'crontab -e', file crontab sementara dibuat di direktori /tmp, yang ditimpa pada file crontab yang sebenarnya saat pengguna menyimpan perubahan. Izin pemilik grup (root) yang salah pada / juga dapat menyebabkan kesalahan ini. Untuk mengatasi masalah, periksa di bawah 2 hal di server.
Periksa izin /tmp
1. pastikan izin direktori /tmp adalah “drwxrwxrwt. ”
# ls -ld /tmp/ drwxr-xr-x. 13 root root 4096 May 14 10:48 /tmp/
Seperti yang Anda lihat pada output di atas, ini adalah izin yang salah.
2. Kembalikan izin yang benar seperti ini:
# chmod 1777 /tmp
Direktori harus mengizinkan dunia membaca, menulis, dan menjalankan izin. Bit "lengket" juga disetel sehingga hanya pemilik file yang dapat menghapusnya; jika tidak, setiap pengguna dapat menghapus file sembarang di direktori.
3. Coba buat file baru di /tmp/untuk memverifikasi:
# touch /tmp/test_file
Verifikasi Izin SELinux
1. Anda mungkin juga ingin memeriksa apakah SELinux diaktifkan pada sistem. SELinux dalam beberapa kasus, jika diatur secara tidak benar dapat menimbulkan masalah. Untuk memverifikasi apakah SELinux diaktifkan:
# getenforce Enforcing
2. Mari kita nonaktifkan SELinux sementara untuk memeriksa apakah masalah telah teratasi.
# setenforce 0
3. Verifikasi pengaturan dengan mengedit crontab pengguna.
# crontab -e
4. Jika berfungsi dengan baik, Anda mungkin ingin mengaktifkan kembali SELinux dan menggunakan “restorecon ” untuk mengembalikan izin yang benar dari direktori /tmp.
# setenforce 1 # restorecon -v /tmp