5720d40fee
in this mode chmod/chtimes/chown can be silently ignored only for cloud based file systems Fixes #223
32 lines
No EOL
1.4 KiB
Bash
Executable file
32 lines
No EOL
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
SFTPGO_PUID=${SFTPGO_PUID:-1000}
|
|
SFTPGO_PGID=${SFTPGO_PGID:-1000}
|
|
|
|
if [ "$1" = 'sftpgo' ]; then
|
|
if [ "$(id -u)" = '0' ]; then
|
|
getent passwd ${SFTPGO_PUID} > /dev/null
|
|
HAS_PUID=$?
|
|
getent group ${SFTPGO_PGID} > /dev/null
|
|
HAS_PGID=$?
|
|
if [ ${HAS_PUID} -ne 0 ] || [ ${HAS_PGID} -ne 0 ]; then
|
|
echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"prepare to run as UID: '${SFTPGO_PUID}' GID: '${SFTPGO_PGID}'"}'
|
|
if [ ${HAS_PGID} -ne 0 ]; then
|
|
echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"set GID to: '${SFTPGO_PGID}'"}'
|
|
groupmod -g ${SFTPGO_PGID} sftpgo
|
|
fi
|
|
if [ ${HAS_PUID} -ne 0 ]; then
|
|
echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"set UID to: '${SFTPGO_PUID}'"}'
|
|
usermod -u ${SFTPGO_PUID} sftpgo
|
|
fi
|
|
chown -R ${SFTPGO_PUID}:${SFTPGO_PGID} /etc/sftpgo
|
|
chown ${SFTPGO_PUID}:${SFTPGO_PGID} /var/lib/sftpgo /srv/sftpgo
|
|
fi
|
|
echo '{"level":"info","time":"'`date +%Y-%m-%dT%H:%M:%S.%3N`'","sender":"entrypoint","message":"run as UID: '${SFTPGO_PUID}' GID: '${SFTPGO_PGID}'"}'
|
|
exec gosu ${SFTPGO_PUID}:${SFTPGO_PGID} "$@"
|
|
fi
|
|
|
|
exec "$@"
|
|
fi
|
|
|
|
exec "$@" |