If permissions have to be corrected repeatedly — every morning, or after every upgrade — correcting them again
will not help on its own. See
If Permission Errors Return on Linux or
If Permission Errors Return After Running FixPerms to
resolve the underlying cause.
- Determine the user running Curator. This can be found on the Settings->Curator->Status page. On most systems, this will be either “apache” or “www-data” (Ubuntu).
- SSH into the webserver that is running Curator.
-
In the terminal, run a “chown” command for the user you found in Step 1.
Here are some examples:
RHEL, Amazon Linux AMI 1/2, CentOS:
Ubuntu:
- Find where Curator is installed on your system. Often, this is in C:\InterWorks\Curator.
- Within this directory, look for a folder named “htdocs” or “wwwdata”. Note: If your system has an “htdocs” folder, your Curator installation is running Apache. If your system has a “wwwdata” folder, your Curator installation is running a legacy IIS install.
- Right click on the “htdocs” or “wwwdata” folder and select “Properties”.
- On the folder’s “Properties” page, deselect the “Read-only” attribute and hit “Apply”.
- After this process has completed, select the “Security” tab.
- On the Security tab, click “Advanced”.
- If your folder is “htdocs” make sure “SYSTEM” is the folder’s owner. If your folder is “wwwdata”, IUSR should own the folder.
- Reselect the correct user as the owner. (Note: do this again, even if it looks correct.)
- Check the box labeled “Replace owner on sub-containers and objects”.
- Check the box labeled “Replace all child object permission entries.”
- Hit “Apply”

Automated Permissions Reset for Windows
If you encounter persistent file or folder permission issues with Curator on Windows, you can use the Curator FixPerms script to automatically reset permissions to the correct settings.Usage Instructions
- Download the FixPerms script from the link: Curator_FixPerms.exe
- Right-click on Curator_FixPerms.exe and select Run as Administrator.
- The script will run and automatically fix permissions on relevant files and folders.
If Permission Errors Return After Running FixPerms
On some Windows deployments, permissions are reset correctly by FixPerms or the manual steps above, but cache write errors reappear within minutes or hours. The most common cause is antivirus or endpoint security software — tools such as CrowdStrike Falcon, Windows Defender, or similar agents can scan or lock files inside Curator’s storage directory, resetting ownership or denying write access shortly after the permission fix is applied. To prevent recurring failures, add the following paths to your antivirus exclusion list. The paths below assume a default Curator installation underC:\InterWorks\Curator; adjust the drive letter and root if
Curator is installed elsewhere:
Apache (htdocs):
C:\InterWorks\Curator\htdocs\storage\framework\cacheC:\InterWorks\Curator\htdocs\storage\framework\sessionsC:\InterWorks\Curator\htdocs\storage\framework\viewsC:\InterWorks\Curator\htdocs\storage\cmsC:\InterWorks\Curator\htdocs\storage\logsC:\InterWorks\Curator\htdocs\storage\temp
C:\InterWorks\Curator\wwwdata\storage\framework\cacheC:\InterWorks\Curator\wwwdata\storage\framework\sessionsC:\InterWorks\Curator\wwwdata\storage\framework\viewsC:\InterWorks\Curator\wwwdata\storage\cmsC:\InterWorks\Curator\wwwdata\storage\logsC:\InterWorks\Curator\wwwdata\storage\temp
- Run the FixPerms script once more.
- Use the Clear Cache button in the upper right of the Curator backend to discard any stale data.
- Monitor Backend > Settings > Logs > Event log to confirm the permission-denied errors have stopped.
storage\framework\cache directory to operate correctly — persistent permission failures prevent
caching from working, which causes page load slowdowns and floods the event log with repeated warnings.
If Permission Errors Return on Linux
If Curator’s permissions have to be corrected repeatedly — for example every morning, or after every upgrade — thechown command above is only treating the symptom. Something on the server is creating files
inside the webroot as the wrong user, or is resetting the security labels on files that already have the
correct owner. The common causes are covered below.
Curator’s Cron Is Running as Root
Curator’s scheduled tasks are driven by anartisan schedule:run cron entry, and those tasks write log files,
cache files, backup archives, and temporary files inside the webroot. If that cron entry lives in root’s
crontab instead of the crontab of the user running the web server (usually apache or www-data), every file
the scheduler creates is owned by root, and the web server is denied write access to it on the next request.
Because the scheduler runs every minute, permissions appear to reset continuously no matter how often chown
is run. Moving the cron entry to the web-server user removes the cause permanently. See the
Linux Cron Troubleshooting guide for
step-by-step instructions, including commands for identifying which user currently owns the cron entry.
Commands Were Run as the Wrong User
Upgrades, database migrations, and otherphp artisan commands also create files. Running them as root, or
prefixed with sudo, leaves root-owned files behind in exactly the same way — which is why permission errors
often appear immediately after an upgrade. Before running any Curator command from a terminal, confirm you are
logged in as the user shown on the Settings > Curator > Status page, then re-run the chown
command above if you are unsure what a previous command left behind.
SELinux Contexts (RHEL, CentOS, Amazon Linux)
On distributions with SELinux enabled, ownership is only half of the requirement. Files must also carry an SELinux type that permits the web server to write to them, andchown does not change a file’s SELinux
context. As a result, Curator can still report permission errors immediately after a successful chown.
To check whether SELinux is enforcing, run:
Enforcing, apply the writable web content type to the webroot:
chcon changes the context on disk right away, but it does not record the change in the system’s file context
policy. Any relabel — from restorecon, a policy update, or a scheduled relabeling job — reverts it, which is
another reason permissions can appear to reset on a daily basis. To make the context survive a relabel, add it
to the policy and then apply it:
/var/www/html. On RHEL 8 and newer, the
semanage command is provided by the policycoreutils-python-utils package. If SELinux policy is managed
centrally in your organization, pass these commands to the team that owns it rather than applying them
yourself.