mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2025-05-24 00:00:08 +02:00
GID of postfix(102) should not be set here. only GID is root(0) and postdrop(103). Ensure root(0) UID matches source location ownership too.
80 lines
2.3 KiB
Bash
80 lines
2.3 KiB
Bash
#! /bin/bash
|
|
|
|
function start_misc
|
|
{
|
|
_notify 'inf' 'Starting miscellaneous tasks'
|
|
for FUNC in "${FUNCS_MISC[@]}"
|
|
do
|
|
${FUNC}
|
|
done
|
|
}
|
|
|
|
# consolidate all states into a single directory
|
|
# (/var/mail-state) to allow persistence using docker volumes
|
|
function _misc_save_states
|
|
{
|
|
local STATEDIR FILE FILES
|
|
|
|
STATEDIR='/var/mail-state'
|
|
|
|
if [[ ${ONE_DIR} -eq 1 ]] && [[ -d ${STATEDIR} ]]
|
|
then
|
|
_notify 'inf' "Consolidating all state onto ${STATEDIR}"
|
|
|
|
FILES=(
|
|
spool/postfix
|
|
lib/postfix
|
|
lib/amavis
|
|
lib/clamav
|
|
lib/spamassassin
|
|
lib/fail2ban
|
|
lib/postgrey
|
|
lib/dovecot
|
|
)
|
|
|
|
for FILE in "${FILES[@]}"
|
|
do
|
|
DEST="${STATEDIR}/${FILE//\//-}"
|
|
FILE="/var/${FILE}"
|
|
|
|
if [[ -d ${DEST} ]]
|
|
then
|
|
_notify 'inf' "Destination ${DEST} exists, linking ${FILE} to it"
|
|
rm -rf "${FILE}"
|
|
ln -s "${DEST}" "${FILE}"
|
|
elif [[ -d ${FILE} ]]
|
|
then
|
|
_notify 'inf' "Moving contents of ${FILE} to ${DEST}:" "$(ls "${FILE}")"
|
|
mv "${FILE}" "${DEST}"
|
|
ln -s "${DEST}" "${FILE}"
|
|
else
|
|
_notify 'inf' "Linking ${FILE} to ${DEST}"
|
|
mkdir -p "${DEST}"
|
|
ln -s "${DEST}" "${FILE}"
|
|
fi
|
|
done
|
|
|
|
_notify 'inf' 'Fixing /var/mail-state/* permissions'
|
|
chown -R clamav /var/mail-state/lib-clamav
|
|
chown -R postfix /var/mail-state/lib-postfix
|
|
chown -R postgrey /var/mail-state/lib-postgrey
|
|
chown -R debian-spamd /var/mail-state/lib-spamassassin
|
|
|
|
# UID = postfix(101): active, bounce, corrupt, defer, deferred, flush, hold, incoming, maildrop, private, public, saved, trace
|
|
# UID = root(0): dev, etc, lib, pid, usr
|
|
# GID = postdrop(103): maildrop, public
|
|
# GID for all other directories is root(0)
|
|
# Set most common ownership:
|
|
chown -R postfix:root /var/mail-state/spool-postfix
|
|
# These two require the postdrop(103) group:
|
|
chgrp -R postdrop /var/mail-state/spool-postfix/maildrop
|
|
chgrp -R postdrop /var/mail-state/spool-postfix/public
|
|
# These all have root ownership at the src location:
|
|
chown -R root /var/mail-state/spool-postfix/dev
|
|
chown -R root /var/mail-state/spool-postfix/etc
|
|
chown -R root /var/mail-state/spool-postfix/lib
|
|
chown -R root /var/mail-state/spool-postfix/pid
|
|
chown -R root /var/mail-state/spool-postfix/usr
|
|
fi
|
|
}
|