mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2024-01-19 02:48:50 +00:00
chore: Extract out /var/mail
ownership workaround (#2628)
Keep it in sync between the two locations via shared helper method.
This commit is contained in:
parent
4b37cb5383
commit
0a722276a8
|
@ -117,10 +117,9 @@ function _check_for_changes
|
||||||
# be sure to mimic `setup-stack.sh:_setup_ldap` which appends to `/tmp/vhost.tmp`.
|
# be sure to mimic `setup-stack.sh:_setup_ldap` which appends to `/tmp/vhost.tmp`.
|
||||||
_create_postfix_vhost
|
_create_postfix_vhost
|
||||||
|
|
||||||
if find /var/mail -maxdepth 3 -a \( \! -user 5000 -o \! -group 5000 \) | read -r
|
# Legacy workaround handled here, only seems necessary for _create_accounts:
|
||||||
then
|
# - `helpers/accounts.sh` logic creates folders/files with wrong ownership.
|
||||||
chown -R 5000:5000 /var/mail
|
_chown_var_mail_if_necessary
|
||||||
fi
|
|
||||||
|
|
||||||
_log_with_date 'debug' 'Restarting services due to detected changes'
|
_log_with_date 'debug' 'Restarting services due to detected changes'
|
||||||
|
|
||||||
|
|
|
@ -20,3 +20,19 @@ function _get_dms_env_value
|
||||||
VALUE=$(grep "^${1}=" /etc/dms-settings | cut -d '=' -f 2)
|
VALUE=$(grep "^${1}=" /etc/dms-settings | cut -d '=' -f 2)
|
||||||
printf '%s' "${VALUE:1:-1}"
|
printf '%s' "${VALUE:1:-1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# TODO: `chown -R 5000:5000 /var/mail` has existed since the projects first commit.
|
||||||
|
# It later received a depth guard to apply the fix only when it's relevant for a dir.
|
||||||
|
# Assess if this still appropriate, it appears to be problematic for some LDAP users.
|
||||||
|
#
|
||||||
|
# `helpers/accounts.sh:_create_accounts` (mkdir, cp) appears to be the only writer to
|
||||||
|
# /var/mail folders (used during startup and change detection handling).
|
||||||
|
function _chown_var_mail_if_necessary
|
||||||
|
{
|
||||||
|
# fix permissions, but skip this if 3 levels deep the user id is already set
|
||||||
|
if find /var/mail -maxdepth 3 -a \( \! -user 5000 -o \! -group 5000 \) | read -r
|
||||||
|
then
|
||||||
|
_log 'trace' 'Fixing /var/mail permissions'
|
||||||
|
chown -R 5000:5000 /var/mail || return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
@ -17,14 +17,8 @@ function _fix_var_mail_permissions
|
||||||
{
|
{
|
||||||
_log 'debug' 'Checking /var/mail permissions'
|
_log 'debug' 'Checking /var/mail permissions'
|
||||||
|
|
||||||
# fix permissions, but skip this if 3 levels deep the user id is already set
|
_chown_var_mail_if_necessary || _shutdown 'Failed to fix /var/mail permissions'
|
||||||
if find /var/mail -maxdepth 3 -a \( \! -user 5000 -o \! -group 5000 \) | read -r
|
_log 'trace' 'Permissions in /var/mail look OK'
|
||||||
then
|
|
||||||
_log 'trace' 'Fixing /var/mail permissions'
|
|
||||||
chown -R 5000:5000 /var/mail || _shutdown 'Failed to fix /var/mail permissions'
|
|
||||||
else
|
|
||||||
_log 'trace' 'Permissions in /var/mail look OK'
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _fix_var_amavis_permissions
|
function _fix_var_amavis_permissions
|
||||||
|
|
Loading…
Reference in a new issue