Problém
crontab -l příkaz selže s následující chybou.
# crontab -l You (user) are not allowed to access to (crontab) because of pam configuration.
Níže uvidíte protokoly v souboru protokolu 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)
Soubor protokolu /var/log/secure bude mít níže uvedené chyby:
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)
Řešení
Tato chyba může mít 2 důvody:
1. Heslo uživatele s vypršenou platností
2. uživatel nemá povolen přístup ke cronu v /etc/security/access.conf soubor.
Zkontrolujte, zda uživatelské heslo vypršelo
1. Nejprve zkontrolujte vypršení platnosti hesla uživatele pomocí změny příkaz.
# 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
Z výše uvedeného výstupu můžeme říci, že platnost hesla vypršela 2. září 2017. Příkaz Crontab selže, pokud je spuštěn jako uživatel, jehož platnost hesla vypršela. PAM nedovolí spustit cronjob jako uživatel, pokud vypršela platnost hesla tohoto uživatele.
2. Pokud platnost hesla vypršela, bude nutné pro uživatele nastavit nové heslo, aby mohl uživatel spouštět cronjobs. Chcete-li nastavit heslo pro uživatele, spusťte následující příkaz jako root:
# passwd user
3. Můžete také nastavit heslo tak, aby pro daného uživatele nikdy nevypršelo, pokud je to ve vašem prostředí povoleno.
CentOS / RHEL :Jak nakonfigurovat uživatelský účet, aby nikdy nevypršela platnostPovolit uživateli přístup k prostředku cron v souboru /etc/security/access.conf
1. Dalším problémem může být, že uživatel nemá povoleno používat cron zdroje v /etc/security/access.conf soubor. V takovém případě můžete povolit uživateli přístup cronu přidáním pod řádek v souboru /etc/security/access.conf. Obvykle je tento řádek ve výchozím nastavení hašován.
# 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. Zkontrolujte také všechny položky, kde je uživateli odepřen přístup k použití cronu. V takovém případě musíte položku odstranit ze souboru /etc/security/access.conf. Příklad záznamu pro odepření přístupu cronu uživateli může být následující:
# vi /etc/security/access.conf # Deny all other users access by any means. -: ALL : ALL
nebo
# vi /etc/security/access.conf # deny user "user" access to cron - : user : cron crond :0
Ověřit
Pokud jste použili některé z výše uvedených řešení, můžete spustit příkaz crontab -l nebo crontab -e jako uživatel k ověření přístupu cronu.