Add local PAM docker-compose

This commit is contained in:
Bolke de Bruin 2024-03-19 09:25:15 +01:00
parent 46620c87b7
commit 79f8d8f545
3 changed files with 35 additions and 7 deletions

View file

@ -35,13 +35,15 @@ RUN apk --no-cache add linux-pam musl
# make tempdir in case filestore is used
ADD tmp.tar /
USER 1001
COPY --chown=0 rdpgw-pam /etc/pam.d/rdpgw
USER 1001
COPY --chown=1001 run.sh run.sh
COPY --chown=1001 --from=builder /opt/rdpgw /opt/rdpgw
COPY --chown=1001 --from=builder /etc/passwd /etc/passwd
COPY --chown=1001 --from=builder /etc/ssl/certs /etc/ssl/certs
#COPY --chown=1001 rdpgw.yaml /opt/rdpgw/rdpgw.yaml
USER 0
WORKDIR /opt/rdpgw
ENTRYPOINT ["/bin/sh", "/run.sh"]

3
dev/docker/rdpgw-pam Normal file
View file

@ -0,0 +1,3 @@
# basic PAM configuration for rdpgw on Alpine
auth include base-auth
auth include base-account

View file

@ -1,11 +1,34 @@
#!/bin/sh
cd /opt/rdpgw || exit 1
if ! [ -e /opt/rdpgw/rdpgw.yaml ]; then
cp /opt/rdpgw/rdpgw.yaml.default /opt/rdpgw/rdpgw.yaml
USER=rdpgw
file="/root/createusers.txt"
if [ -f $file ]
then
while IFS=: read -r username password is_sudo
do
echo "Username: $username, Password: **** , Sudo: $is_sudo"
if getent passwd "$username" > /dev/null 2>&1
then
echo "User Exists"
else
adduser -s /sbin/nologin "$username"
echo "$username:$password" | chpasswd
fi
done <"$file"
fi
/opt/rdpgw/rdpgw-auth &
/opt/rdpgw/rdpgw &
cd /opt/rdpgw || exit 1
if [ -n "${RDPGW_SERVER__AUTHENTICATION}" ]; then
if [ "${RDPGW_SERVER__AUTHENTICATION}" = "local" ]; then
echo "Starting rdpgw-auth"
/opt/rdpgw/rdpgw-auth &
fi
fi
# drop privileges and run the application
su -c /opt/rdpgw/rdpgw ${USER} &
wait
exit $?