mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-04-27 03:19:56 -04:00
34 lines
1.4 KiB
Plaintext
Executable File
34 lines
1.4 KiB
Plaintext
Executable File
#!/command/with-contenv /usr/bin/bash
|
|
# shellcheck shell=bash
|
|
declare -r log_prefix="[init-user]"
|
|
|
|
# When the container is started as a non-root user (e.g. via `user: 999:999`
|
|
# in Docker Compose), usermod/groupmod require root and are meaningless.
|
|
# USERMAP_* variables only apply to the root-started path.
|
|
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
|
if [[ -n "${USERMAP_UID}" || -n "${USERMAP_GID}" ]]; then
|
|
echo "${log_prefix} WARNING: USERMAP_UID/USERMAP_GID are set but have no effect when the container is started as a non-root user"
|
|
fi
|
|
echo "${log_prefix} Running as non-root user ($(id --user):$(id --group)), skipping UID/GID remapping"
|
|
exit 0
|
|
fi
|
|
|
|
declare -r usermap_original_uid=$(id -u paperless)
|
|
declare -r usermap_original_gid=$(id -g paperless)
|
|
declare -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid}
|
|
declare -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}}
|
|
|
|
if [[ ${usermap_new_uid} != "${usermap_original_uid}" ]]; then
|
|
echo "${log_prefix} Mapping UID for paperless to $usermap_new_uid"
|
|
usermod --non-unique --uid "${usermap_new_uid}" paperless
|
|
else
|
|
echo "${log_prefix} No UID changes for paperless"
|
|
fi
|
|
|
|
if [[ ${usermap_new_gid} != "${usermap_original_gid}" ]]; then
|
|
echo "${log_prefix} Mapping GID for paperless to $usermap_new_gid"
|
|
groupmod --non-unique --gid "${usermap_new_gid}" paperless
|
|
else
|
|
echo "${log_prefix} No GID changes for paperless"
|
|
fi
|