From b24bd25253fe093f722ab576d29fdc41d04cb1ee Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 2 Aug 2019 19:14:55 +0100 Subject: gentoo resync : 02.08.2019 --- eclass/user.eclass | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'eclass/user.eclass') diff --git a/eclass/user.eclass b/eclass/user.eclass index fdf98caa6099..a3cacb6d5f10 100644 --- a/eclass/user.eclass +++ b/eclass/user.eclass @@ -157,10 +157,10 @@ enewuser() { euid="next" fi if [[ ${euid} == "next" ]] ; then - for ((euid = 101; euid <= 999; euid++)); do + for ((euid = 999; euid >= 101; euid--)); do [[ -z $(egetent passwd ${euid}) ]] && break done - [[ ${euid} -le 999 ]] || die "${FUNCNAME}: no free UID found" + [[ ${euid} -ge 101 ]] || die "${FUNCNAME}: no free UID found" fi opts+=( -u ${euid} ) einfo " - Userid: ${euid}" @@ -318,10 +318,10 @@ enewgroup() { _enewgroup_next_gid() { if [[ ${egid} == *[!0-9]* ]] ; then # Non numeric - for ((egid = 101; egid <= 999; egid++)) ; do + for ((egid = 999; egid >= 101; egid--)) ; do [[ -z $(egetent group ${egid}) ]] && break done - [[ ${egid} -le 999 ]] || die "${FUNCNAME}: no free GID found" + [[ ${egid} -ge 101 ]] || die "${FUNCNAME}: no free GID found" fi } @@ -445,11 +445,12 @@ egetgroups() { local egroups_arr read -r -a egroups_arr < <(id -G -n "$1") - local defgroup=${egroups_arr[0]} + local g groups=${egroups_arr[0]} # sort supplementary groups to make comparison possible - readarray -t exgroups_arr < <(printf '%s\n' "${egroups_arr[@]:1}" | sort) - local exgroups=${exgroups_arr[*]} - echo "${defgroup}${exgroups:+,${exgroups// /,}}" + while read -r g; do + [[ -n ${g} ]] && groups+=",${g}" + done < <(printf '%s\n' "${egroups_arr[@]:1}" | sort) + echo "${groups}" } # @FUNCTION: esethome -- cgit v1.2.3