Fix permissions issue with 'cron' module
I have a task like this in a playbook. The ansible_ssh_user is 'root' for this host. - cron: hour: 00 job: /home/backup/backup.sh name: baserock.org data backup user: backup Running it gave me the following error: TASK: [backup cron job, runs every day at midnight] *************************** failed: [baserock-backup1] => {"failed": true} msg: crontab: can't open '/tmp/crontabvVjoZe': Permission denied crontab: user backup cannot read /tmp/crontabvVjoZe The temporary file created by the 'cron' module is created with the Python tempfile.mkstemp() function. This creates a file that is readable only by 'root' (mode 600). The Busybox `crontab` program then checks if the file is readable by the 'backup' user, and fails if it isn't. So we need to make sure the file is world-readable before running `crontab`.
This commit is contained in:
parent
bad542025d
commit
adf1cba745
1 changed files with 1 additions and 0 deletions
|
@ -227,6 +227,7 @@ class CronTab(object):
|
|||
fileh = open(self.cron_file, 'w')
|
||||
else:
|
||||
filed, path = tempfile.mkstemp(prefix='crontab')
|
||||
os.chmod(path, 0o644)
|
||||
fileh = os.fdopen(filed, 'w')
|
||||
|
||||
fileh.write(self.render())
|
||||
|
|
Loading…
Reference in a new issue