From 02b62a69dd3533c3dc76d975eb1a5a14ed59572b4dc1360f52b4f7317fd57b19 Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk Date: Mon, 5 Aug 2024 14:38:15 +0000 Subject: [PATCH] Accepting request 1191724 from home:kukuk:cleanup - Implement UID:GID support for busybox - Reenable UID:GID support OBS-URL: https://build.opensuse.org/request/show/1191724 OBS-URL: https://build.opensuse.org/package/show/Base:System/sysuser-tools?expand=0&rev=59 --- sysuser-tools.changes | 6 ++++++ sysusers2shadow.sh | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/sysuser-tools.changes b/sysuser-tools.changes index e576b9a..5df4ccc 100644 --- a/sysuser-tools.changes +++ b/sysuser-tools.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Aug 5 14:25:14 UTC 2024 - Thorsten Kukuk + +- Implement UID:GID support for busybox +- Reenable UID:GID support + ------------------------------------------------------------------- Sat Aug 3 06:09:03 UTC 2024 - Thorsten Kukuk diff --git a/sysusers2shadow.sh b/sysusers2shadow.sh index ee7a5fd..0a1a69f 100644 --- a/sysusers2shadow.sh +++ b/sysusers2shadow.sh @@ -52,12 +52,11 @@ else continue fi - # Split user and Group id - #userGrouArr=(${2//:/ }) - #USER_ID=${userGrouArr[0]} - #GROUP_ID=${userGrouArr[1]} - USER_ID=$2 - GROUP_ID="" + # Split user and Group id. Must work with busybox sh. + case $2 in + (*:*) USER_ID=${2%:*} GROUP_ID=${2##*:};; + (*) USER_ID=$2 GROUP_ID="";; + esac if [ -n "$USER_ID" ] && [ "$USER_ID" != "-" ]; then ARGUMENTS="-u $USER_ID $ARGUMENTS" @@ -89,9 +88,13 @@ else run /usr/sbin/useradd -r -c "$3" -d "${homedir}" $ARGUMENTS elif [ -x "$busybox" ]; then + if [ -n "$GROUP_ID" ] && [ "$GROUP_ID" != "-" ]; then + run $busybox adduser -S -H -g "$3" -G "GROUP_ID" -h "${homedir}" $ARGUMENTS + else /usr/bin/getent group "$1" >> /dev/null || $busybox addgroup -S "$1" run $busybox adduser -S -H -g "$3" -G "$1" -h "${homedir}" $ARGUMENTS + fi else echo "ERROR: neither useradd nor busybox found!" exit 1 @@ -100,9 +103,9 @@ else m) shift if [ -x /usr/sbin/usermod ] ; then - run /usr/sbin/usermod -a -G "$2" "$1" + run /usr/sbin/usermod -a -G "$USER_ID" "$1" elif [ -x "$busybox" ]; then - run $busybox addgroup "$1" "$2" + run $busybox addgroup "$1" "$USER_ID" else echo "ERROR: neither usermod nor busybox found!" exit 1