Gentoo Archives: gentoo-dev

From: Mike Gilbert <floppym@g.o>
To: gentoo-dev@l.g.o
Cc: base-system@g.o, Mike Gilbert <floppym@g.o>
Subject: [gentoo-dev] [PATCH] user.eclass: allow UID/GID 0 in enewuser/enewgroup
Date: Fri, 24 Jun 2022 16:09:08
Message-Id: 20220624160851.3290691-1-floppym@gentoo.org
1 Used by acct-{user,group}/root.
2
3 The check is skipped on most systems because root is created by baselayout.
4 An error may be produced if a user runs emerge --root=/myroot
5 acct-user/root, where /myroot is an empty directory.
6
7 Signed-off-by: Mike Gilbert <floppym@g.o>
8 ---
9 eclass/user.eclass | 8 ++++----
10 1 file changed, 4 insertions(+), 4 deletions(-)
11
12 diff --git a/eclass/user.eclass b/eclass/user.eclass
13 index 906e84e83c6..d5b827d2e76 100644
14 --- a/eclass/user.eclass
15 +++ b/eclass/user.eclass
16 @@ -123,13 +123,13 @@ enewuser() {
17 # handle uid
18 local euid=${1}; shift
19 if [[ -n ${euid} && ${euid} != -1 ]] ; then
20 - if [[ ${euid} -gt 0 ]] ; then
21 + if [[ ${euid} -ge 0 ]] ; then
22 if [[ -n $(egetent passwd ${euid}) ]] ; then
23 [[ -n ${force_uid} ]] && die "${FUNCNAME}: UID ${euid} already taken"
24 euid="next"
25 fi
26 else
27 - eerror "Userid given but is not greater than 0!"
28 + eerror "Userid given but is not greater than or equal to 0!"
29 die "${euid} is not a valid UID"
30 fi
31 else
32 @@ -289,13 +289,13 @@ enewgroup() {
33 # handle gid
34 local egid=${1}; shift
35 if [[ -n ${egid} && ${egid} != -1 ]] ; then
36 - if [[ ${egid} -gt 0 ]] ; then
37 + if [[ ${egid} -ge 0 ]] ; then
38 if [[ -n $(egetent group ${egid}) ]] ; then
39 [[ -n ${force_gid} ]] && die "${FUNCNAME}: GID ${egid} already taken"
40 egid="next available; requested gid taken"
41 fi
42 else
43 - eerror "Groupid given but is not greater than 0!"
44 + eerror "Groupid given but is not greater than or equal to 0!"
45 die "${egid} is not a valid GID"
46 fi
47 else
48 --
49 2.36.1