1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/usr/bin/env bash
- set -e
- function sec_init
- {
- cat <<EOF | isql-fb security.db
- create or alter user SYSDBA password '$_SYSDBA_PWD';
- commit;
- quit;
- EOF
- if [ -f /run/secrets/FB3_USER_NAME ] && [ -f /run/secrets/FB3_USER_PWD ]; then
- echo "Setting up Firebird user $(cat /run/secrets/FB3_USER_NAME) with 'grant create database'"
- cat <<EOF | isql-fb security.db
- create or alter user $(cat /run/secrets/FB3_USER_NAME) password '$(cat /run/secrets/FB3_USER_PWD)';
- grant create database to user $(cat /run/secrets/FB3_USER_NAME);
- commit;
- quit;
- EOF
- fi
- }
- if [ -f /run/secrets/FB3_SYSDBA_PWD ]; then
- _SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD)
- else
- _SYSDBA_PWD=$RANDOM$RANDOM
- echo "Setting SYSDBA's random password: "$_SYSDBA_PWD
- fi
- sed -i "s/^UserManager/#Tmp UserManager/" /etc/firebird/firebird.conf
- echo "UserManager = Legacy_UserManager" >> /etc/firebird/firebird.conf
- sec_init
- sed -i "s/UserManager = Legacy_UserManager//" /etc/firebird/firebird.conf
- sed -i "s/#Tmp UserManager/UserManager/" /etc/firebird/firebird.conf
- sec_init
- rm -f /var/log/firebird/firebird.log
- mkfifo /var/log/firebird/firebird.log
- tail -f /var/log/firebird/firebird.log &
- exec "$@"
|