Hostxpeed
Login Get Started →
Troubleshooting

Fix Cron "Permission Denied"

4 min read
33 views
Jun 13, 2026

Understanding the Error

Cron may log permission errors to email or syslog.

Fix 1: Make Script Executable

chmod +x /path/to/script.sh
# Or for PHP scripts
chmod 755 /path/to/script.php

Fix 2: Use Correct Interpreter

# Add shebang to scripts
#!/usr/bin/env bash
#!/usr/bin/php
#!/usr/bin/python3

Fix 3: Run with Proper User

# Specify user in crontab
* * * * * www-data /usr/bin/php /path/to/script.php

Fix 4: Check File Ownership

# Cron user must have execute permission
sudo chown username:username /path/to/script

Fix 5: SELinux (CentOS/RHEL)

# Check SELinux denial
sudo ausearch -m avc -ts recent

# Temporarily disable to test
sudo setenforce 0

Fix 6: Directory Permissions

# Cron user needs execute on parent directories
ls -la /path/to/
chmod 755 /path/to/

Fix 7: Use Sudo in Cron

# In root crontab
* * * * * sudo -u www-data /usr/bin/php /path/to/script.php

After fixing, test by running the command as the cron user:

sudo -u username /path/to/script

Was this article helpful?