Adds USERMAP_NOPERM_CHANGE env

Adds a new USERMAP_NOPERM_CHANGE to disable recursive permission change on the home folder of paperless.
On some systems (where the user uses slow storage such as HDD) this operation takes quite a while.
The default behavior is to enable the recursive permission change. 
The default value is false. If this is true, the container avoids recursive permission change as documented here: https://github.com/paperless-ngx/paperless-ngx/discussions/5086 and in the man page.
This commit is contained in:
Fabio Pagnotta 2024-07-14 19:43:25 +02:00 committed by GitHub
parent 73d33ff25a
commit 074445ddbc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -8,11 +8,20 @@ map_uidgid() {
local -r usermap_original_gid=$(id -g paperless) local -r usermap_original_gid=$(id -g paperless)
local -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid} local -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid}
local -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}} local -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}}
if [[ ${usermap_new_uid} != "${usermap_original_uid}" || ${usermap_new_gid} != "${usermap_original_gid}" ]]; then local -r usermap_noperm_change=${USERMAP_NOPERM_CHANGE:-false}
if [[ ${usermap_new_uid} != "${usermap_original_uid}" || ${usermap_new_gid} != "${usermap_original_gid}" ]]; then
echo "Mapping UID and GID for paperless:paperless to $usermap_new_uid:$usermap_new_gid" echo "Mapping UID and GID for paperless:paperless to $usermap_new_uid:$usermap_new_gid"
# Avoids changing the default permissions for the root folder of paperless
if [[ ${usermap_noperm_change} == "true" ]]; then
chown root:root /usr/src/paperless
fi
usermod -o -u "${usermap_new_uid}" paperless usermod -o -u "${usermap_new_uid}" paperless
groupmod -o -g "${usermap_new_gid}" paperless groupmod -o -g "${usermap_new_gid}" paperless
fi # Avoids changing the default permissions for the root folder of paperless
if [[ ${usermap_noperm_change} == "true" ]]; then
chown paperless:paperless /usr/src/paperless
fi
fi
} }
map_folders() { map_folders() {