Masalah
crontab -l perintah gagal dengan kesalahan berikut.
# crontab -l You (user) are not allowed to access to (crontab) because of pam configuration.
Anda akan melihat log di bawah ini di file log cron /var/log/cron :
Sep 19 11:01:01 geeklab crond[125479]: (user) PAM ERROR (Permission denied) Sep 19 11:01:01 geeklab crond[125479]: (user) FAILED to authorize user with PAM (Permission denied) Sep 19 11:01:26 geeklab crontab[125631]: (user) PAM ERROR (Permission denied)
File log /var/log/secure akan memiliki kesalahan di bawah ini :
Sep 19 11:01:26 geeklab crontab: pam_access(crond:account): access denied for user `root' from `cron' Sep 19 11:01:26 geeklab crontab: pam_unix(crond:account): expired password for user root (password aged)
Solusi
Mungkin ada 2 alasan untuk kesalahan ini :
1. Kata sandi kedaluwarsa untuk pengguna
2. pengguna tidak diizinkan mengakses cron di /etc/security/access.conf berkas.
Periksa kata sandi pengguna yang kedaluwarsa
1. Pertama-tama, periksa kedaluwarsa kata sandi untuk pengguna menggunakan chage perintah.
# chage -l user Last password change : Jul 19, 2017 Password expires : Sep 02, 2017 ### password has expired Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 45 Number of days of warning before password expires : 7
Dari output diatas dapat kita katakan bahwa password telah expired pada tanggal 2 September 2017. Perintah crontab akan gagal jika dijalankan sebagai user yang passwordnya sudah kadaluarsa. PAM tidak akan mengizinkan untuk menjalankan cronjob sebagai pengguna jika kata sandi pengguna tersebut kedaluwarsa.
2. Jika kata sandi kedaluwarsa, kata sandi baru perlu disetel untuk pengguna agar pengguna dapat menjalankan cronjobs. Untuk mengatur kata sandi bagi pengguna, jalankan perintah berikut sebagai root:
# passwd user
3. Anda juga dapat mengatur kata sandi agar tidak pernah kedaluwarsa untuk pengguna tertentu jika diizinkan di lingkungan Anda.
CentOS / RHEL :Cara mengkonfigurasi akun pengguna agar tidak pernah kedaluwarsaIzinkan pengguna mengakses sumber daya cron di file /etc/security/access.conf
1. Masalah lainnya adalah pengguna tidak diizinkan untuk menggunakan sumber daya cron di /etc/security/access.conf mengajukan. Dalam hal ini Anda dapat mengizinkan akses cron pengguna dengan menambahkan baris di bawah ini pada file /etc/security/access.conf. Biasanya baris ini di-hash secara default.
# vi /etc/security/access.conf # User "root" should be allowed to get access via cron .. tty5 tty6. + : user : cron crond :0 tty1 tty2 tty3 tty4 tty5 tty6
2. Periksa juga entri di mana pengguna ditolak aksesnya untuk menggunakan cron. Anda harus menghapus entri tersebut dari file /etc/security/access.conf. Contoh entri untuk menolak akses cron ke pengguna dapat dilihat di bawah ini :
# vi /etc/security/access.conf # Deny all other users access by any means. -: ALL : ALL
atau
# vi /etc/security/access.conf # deny user "user" access to cron - : user : cron crond :0
Verifikasi
Jika Anda telah menerapkan salah satu solusi yang dijelaskan di atas, Anda dapat menjalankan perintah crontab -l atau crontab -e sebagai pengguna untuk memverifikasi akses cron.