Set permissions only on files copied from /etc/skel/
This commit is contained in:
@@ -423,6 +423,7 @@ ENV UNPRIVILEGED_USER_NAME=user
|
|||||||
ENV UNPRIVILEGED_USER_PASSWORD=password
|
ENV UNPRIVILEGED_USER_PASSWORD=password
|
||||||
ENV UNPRIVILEGED_USER_GROUPS=
|
ENV UNPRIVILEGED_USER_GROUPS=
|
||||||
ENV UNPRIVILEGED_USER_SHELL=/bin/bash
|
ENV UNPRIVILEGED_USER_SHELL=/bin/bash
|
||||||
|
ENV UNPRIVILEGED_USER_HOME=/home/user/
|
||||||
ENV XRDP_TLS_KEY_PATH=/etc/xrdp/key.pem
|
ENV XRDP_TLS_KEY_PATH=/etc/xrdp/key.pem
|
||||||
ENV XRDP_TLS_CRT_PATH=/etc/xrdp/cert.pem
|
ENV XRDP_TLS_CRT_PATH=/etc/xrdp/cert.pem
|
||||||
ENV ENABLE_XDUMMY=false
|
ENV ENABLE_XDUMMY=false
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ if ! getent passwd "${UNPRIVILEGED_USER_UID:?}" >/dev/null 2>&1; then
|
|||||||
--gid "${UNPRIVILEGED_USER_GID:?}" \
|
--gid "${UNPRIVILEGED_USER_GID:?}" \
|
||||||
--groups "${UNPRIVILEGED_USER_GROUPS?}" \
|
--groups "${UNPRIVILEGED_USER_GROUPS?}" \
|
||||||
--shell "${UNPRIVILEGED_USER_SHELL:?}" \
|
--shell "${UNPRIVILEGED_USER_SHELL:?}" \
|
||||||
|
--home-dir "${UNPRIVILEGED_USER_HOME:?}" \
|
||||||
--create-home \
|
--create-home \
|
||||||
"${UNPRIVILEGED_USER_NAME:?}"
|
"${UNPRIVILEGED_USER_NAME:?}"
|
||||||
fi
|
fi
|
||||||
@@ -43,11 +44,20 @@ else
|
|||||||
passwd -d "${UNPRIVILEGED_USER_NAME:?}"
|
passwd -d "${UNPRIVILEGED_USER_NAME:?}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy /etc/skel/ to unprivileged user home if certain files do not exist
|
if [ -w "${UNPRIVILEGED_USER_HOME:?}" ]; then
|
||||||
UNPRIVILEGED_USER_HOME=$(getent passwd "${UNPRIVILEGED_USER_NAME:?}" | cut -d: -f6)
|
# Copy /etc/skel/ to unprivileged user home if certain files do not exist
|
||||||
if [ ! -e "${UNPRIVILEGED_USER_HOME:?}"/.profile ]; then
|
if [ ! -e "${UNPRIVILEGED_USER_HOME:?}"/.profile ]; then
|
||||||
cp -aT /etc/skel/ "${UNPRIVILEGED_USER_HOME:?}" 2>/dev/null ||:
|
cp -aT /etc/skel/ "${UNPRIVILEGED_USER_HOME:?}" ||:
|
||||||
chown -R "${UNPRIVILEGED_USER_NAME:?}:" "${UNPRIVILEGED_USER_HOME:?}" 2>/dev/null ||:
|
find /etc/skel/ -mindepth 1 -exec sh -c 'chown "$1:" "$2/${3#/etc/skel/}"' _ "${UNPRIVILEGED_USER_NAME:?}" "${UNPRIVILEGED_USER_HOME:?}" '{}' ';'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set unprivileged user home permissions
|
||||||
|
if [ "$(stat -c '%u' "${UNPRIVILEGED_USER_HOME:?}")" != "${UNPRIVILEGED_USER_UID:?}" ]; then
|
||||||
|
chown "${UNPRIVILEGED_USER_NAME:?}:" "${UNPRIVILEGED_USER_HOME:?}"
|
||||||
|
fi
|
||||||
|
if [ "$(stat -c '%a' "${UNPRIVILEGED_USER_HOME:?}")" != '750' ]; then
|
||||||
|
chmod 750 "${UNPRIVILEGED_USER_HOME:?}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create /run/dbus/ directory if it does not exist
|
# Create /run/dbus/ directory if it does not exist
|
||||||
|
|||||||
Reference in New Issue
Block a user