mirror of
https://github.com/bitwarden/server
synced 2025-12-10 13:23:27 +00:00
* Use user primary group if not root * Do not run getent on MacOS * Simplify UID/GID management * Make uid.env backward compatible in run.sh * Merge install.sh with run.sh to avoid duplicating code Especially the UID/GID management one * Generate correct OS name * Be sure to keep old behavior for backward compatiblilty * Get the colors back from install.sh
49 lines
1.1 KiB
Bash
49 lines
1.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Setup
|
|
|
|
GROUPNAME="bitwarden"
|
|
USERNAME="bitwarden"
|
|
|
|
LUID=${LOCAL_UID:-0}
|
|
LGID=${LOCAL_GID:-0}
|
|
|
|
# Step down from host root to well-known nobody/nogroup user
|
|
|
|
if [ $LUID -eq 0 ]
|
|
then
|
|
LUID=65534
|
|
fi
|
|
if [ $LGID -eq 0 ]
|
|
then
|
|
LGID=65534
|
|
fi
|
|
|
|
# Create user and group
|
|
|
|
groupadd -o -g $LGID $GROUPNAME >/dev/null 2>&1 ||
|
|
groupmod -o -g $LGID $GROUPNAME >/dev/null 2>&1
|
|
useradd -o -u $LUID -g $GROUPNAME -s /bin/false $USERNAME >/dev/null 2>&1 ||
|
|
usermod -o -u $LUID -g $GROUPNAME -s /bin/false $USERNAME >/dev/null 2>&1
|
|
mkhomedir_helper $USERNAME
|
|
|
|
# The rest...
|
|
|
|
touch /var/log/cron.log
|
|
chown $USERNAME:$GROUPNAME /var/log/cron.log
|
|
chown -R $USERNAME:$GROUPNAME /app
|
|
chown -R $USERNAME:$GROUPNAME /jobs
|
|
mkdir -p /etc/bitwarden/core
|
|
mkdir -p /etc/bitwarden/logs
|
|
mkdir -p /etc/bitwarden/ca-certificates
|
|
chown -R $USERNAME:$GROUPNAME /etc/bitwarden
|
|
|
|
# Sounds like gosu keeps env when switching, but of course cron does not
|
|
env > /etc/environment
|
|
cron
|
|
|
|
cp /etc/bitwarden/ca-certificates/*.crt /usr/local/share/ca-certificates/ \
|
|
&& update-ca-certificates
|
|
|
|
exec gosu $USERNAME:$GROUPNAME dotnet /app/Api.dll
|