diff options
author | Jean-Michel Rouet <jm.rouet@gmail.com> | 2022-11-04 11:27:25 +0100 |
---|---|---|
committer | Jean-Michel Rouet <jean-michel.rouet@philips.com> | 2023-05-12 09:22:14 +0200 |
commit | 2f0ba0a7e51756c9475d8b2379f32e4074e39afc (patch) | |
tree | e5ce3fa844f1ad905ba47832bd27d54ff84071de | |
parent | 8d15e7d7420e87038dacf3b934d66c51b32919d4 (diff) | |
download | docker-2f0ba0a7e51756c9475d8b2379f32e4074e39afc.tar.gz |
more robust dockerd-rootless-setuptools.sh
Fixing case where username may contain a backslash.
This case can happen for winbind/samba active directory domain users.
Signed-off-by: Jean-Michel Rouet <jean-michel.rouet@philips.com>
Use more meaningful variable name
Signed-off-by: Jean-Michel Rouet <jean-michel.rouet@philips.com>
Update contrib/dockerd-rootless-setuptool.sh
Co-authored-by: Akihiro Suda <suda.kyoto@gmail.com>
Signed-off-by: Jean-Michel Rouet <jean-michel.rouet@philips.com>
Use more meaningful variable name
Signed-off-by: Jean-Michel Rouet <jean-michel.rouet@philips.com>
Update contrib/dockerd-rootless-setuptool.sh
Co-authored-by: Akihiro Suda <suda.kyoto@gmail.com>
Signed-off-by: Jean-Michel Rouet <jean-michel.rouet@philips.com>
-rwxr-xr-x | contrib/dockerd-rootless-setuptool.sh | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/contrib/dockerd-rootless-setuptool.sh b/contrib/dockerd-rootless-setuptool.sh index 220c23cc9f..88a6ccd038 100755 --- a/contrib/dockerd-rootless-setuptool.sh +++ b/contrib/dockerd-rootless-setuptool.sh @@ -37,6 +37,8 @@ BIN="" SYSTEMD="" CFG_DIR="" XDG_RUNTIME_DIR_CREATED="" +USERNAME="" +USERNAME_ESCAPED="" # run checks and also initialize global vars init() { @@ -78,6 +80,11 @@ init() { exit 1 fi + # Set USERNAME from `id -un` and potentially protect backslash + # for windbind/samba domain users + USERNAME=$(id -un) + USERNAME_ESCAPED=$(echo $USERNAME | sed 's/\\/\\\\/g') + # set CFG_DIR CFG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}" @@ -222,21 +229,21 @@ init() { fi # instructions: validate subuid/subgid files for current user - if ! grep -q "^$(id -un):\|^$(id -u):" /etc/subuid 2> /dev/null; then + if ! grep -q "^$USERNAME_ESCAPED:\|^$(id -u):" /etc/subuid 2> /dev/null; then instructions=$( cat <<- EOI ${instructions} - # Add subuid entry for $(id -un) - echo "$(id -un):100000:65536" >> /etc/subuid + # Add subuid entry for ${USERNAME} + echo "${USERNAME}:100000:65536" >> /etc/subuid EOI ) fi - if ! grep -q "^$(id -un):\|^$(id -u):" /etc/subgid 2> /dev/null; then + if ! grep -q "^$USERNAME_ESCAPED:\|^$(id -u):" /etc/subgid 2> /dev/null; then instructions=$( cat <<- EOI ${instructions} - # Add subgid entry for $(id -un) - echo "$(id -un):100000:65536" >> /etc/subgid + # Add subgid entry for ${USERNAME} + echo "${USERNAME}:100000:65536" >> /etc/subgid EOI ) fi @@ -340,7 +347,7 @@ install_systemd() { ) INFO "Installed ${SYSTEMD_UNIT} successfully." INFO "To control ${SYSTEMD_UNIT}, run: \`systemctl --user (start|stop|restart) ${SYSTEMD_UNIT}\`" - INFO "To run ${SYSTEMD_UNIT} on system startup, run: \`sudo loginctl enable-linger $(id -un)\`" + INFO "To run ${SYSTEMD_UNIT} on system startup, run: \`sudo loginctl enable-linger ${USERNAME}\`" echo } |