2016-04-14 6 views
1

Ich habe einen cron Job für das Backup meine Datenbanken:Cron BAD FILE MODE vs Erlaubnis verweigert

➜ ~ crontab -l 
@daily /etc/cron.d/pg_backup.sh 

Es gibt ein Problem mit den entsprechenden Berechtigungen einstellen, though.

Wenn ich habe:

➜ ~ ls -l /etc/cron.d/pg_backup.sh 
-rwxr-xr--. 1 root root 1359 Apr 14 21:39 /etc/cron.d/pg_backup.sh 

und dann grep "pg_backup.sh" /var/log/cron überprüfen, ich sehe:

localhost crond[11881]: (root) BAD FILE MODE (/etc/cron.d/pg_backup.sh) 

Allerdings, wenn ich pg_backup.sh ändern wie:

chmod 644 pg_backup.sh 

Es die Warnung deaktiviert:

localhost CROND[11064]: (root) CMD (/etc/cron.d/pg_backup.sh) 

aber ich sehe

➜ ~ cat /var/mail/root 
# ... 
/bin/sh: /etc/cron.d/pg_backup.sh: Permission denied 

Was sind die entsprechenden Dateiberechtigungen dann?

Antwort

0

Das Problem ist, dass Sie das Skript zur Ausführung im Verzeichnis /etc/cron.d installiert haben. Dieses Verzeichnis ist für Crontab-Dateien gedacht, nicht für Shell-Befehle. (Werfen Sie einen Blick auf die vorhandenen Dateien in diesem Verzeichnis.)

Es gibt eine Überprüfung in crond, dass alle Dateien in diesem Verzeichnis nicht lesbar oder schreibbar sind von jemand anderem als dem Besitzer (der root sein muss) und nicht ausführbar sind von jemandem. Sie müssten also die Berechtigungen auf 600 oder etwas noch strengeres ändern, um die Meldung zu vermeiden - und dann, wie Sie gesehen haben, könnten Sie das Skript nicht ausführen.

Stattdessen setzen die woanders Skript und aktualisieren Sie Ihre crontab:

@daily /some/other/directory/pg_backup.sh 
Verwandte Themen