diff --git a/Dockerfile b/Dockerfile
index 115dbd6..177e105 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,6 +2,7 @@ FROM alpine
RUN apk add --no-cache docker bash
+ENV NEXTCLOUD_EXEC_USER=www-data
ENV NEXTCLOUD_CONTAINER_NAME=
ENV NEXTCLOUD_PROJECT_NAME=
ENV NEXTCLOUD_CRON_MINUTE_INTERVAL=15
diff --git a/README.md b/README.md
index ea76526..a195bcb 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,13 @@ entirely.
* `NEXTCLOUD_CRON_MINUTE_INTERVAL`
The interval, in minutes, of how often the cron task
executes. The default is 15 minutes.
+* `NEXTCLOUD_EXEC_USER`
+ The user that should be used to run the cron tasks inside the Nextcloud container. This parameter
+ is specified to the `docker exec` command from this container. By default, the user used is
+ `www-data`, which is also the default user used inside Nextcloud, unless you've overridden it. You
+ may also define this environment variable to be blank (e.g. `NEXTCLOUD_EXEC_USER=`) which results
+ in the tasks being executed using the Nextcloud container's running user. Specifically, the
+ `--user` option will *not* be provided to the `docker exec` command.
# Container Health
@@ -67,7 +74,7 @@ is checked every interval of the health check. If any of these checks fail, it i
container's health status will become *unhealthy*. In this case, you should restart the container.
1. The `crond` process must be running.
-1. The Nextcloud container must be available and running. One important note here: When this
+2. The Nextcloud container must be available and running. One important note here: When this
container starts up, it immediately searches for the container by name and remembers it by the
container's ID. If for whatever reason the Nextcloud container changes in such a way that the ID
is no longer valid, the health check would fail.
diff --git a/scripts/cron-tasks.sh b/scripts/cron-tasks.sh
index da1ca60..13ca88d 100755
--- a/scripts/cron-tasks.sh
+++ b/scripts/cron-tasks.sh
@@ -5,13 +5,19 @@ echo "-------------------------------------------------------------"
echo " Executing Cron Tasks: $(date)"
echo "-------------------------------------------------------------"
+# If a user must be specified when executing the task, set up that option here.
+# You may also leave NEXTCLOUD_EXEC_USER blank, in which case it will not be used.
+if [[ -n "$NEXTCLOUD_EXEC_USER" ]]; then
+ exec_user="--user $NEXTCLOUD_EXEC_USER"
+fi
+
# Loop through all shell scripts and execute the contents of those scripts in the Nextcloud
# container. It's done this way so that the user may mount more scripts to be executed in addition
# to the default ones.
cd /cron-scripts
for script in *.sh; do
echo "> Running Script: $script"
- docker exec -i "$1" bash < $script
+ docker exec $exec_user -i "$1" bash < $script
done
echo "> Done"