1234567891011121314151617181920212223242526272829303132 |
- #!/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 "$@"
|