Gentoo Archives: gentoo-dev

From: William Hubbs <williamh@g.o>
To: gentoo-dev@l.g.o
Cc: William Hubbs <williamh@g.o>
Subject: [gentoo-dev] [PATCH] user.eclass: die if hard coded UID or GID is already in use
Date: Mon, 27 May 2019 15:46:28
Message-Id: 20190527154517.25424-1-williamh@gentoo.org
1 If a package hard codes the UID or GID when adding a user or group to
2 the system and that UID/GID already exists, we should abort rather than
3 changing the UID/GID.
4 ---
5 eclass/user.eclass | 6 ++++--
6 1 file changed, 4 insertions(+), 2 deletions(-)
7
8 diff --git a/eclass/user.eclass b/eclass/user.eclass
9 index f6a10a6bee2..0d0f9d9eb89 100644
10 --- a/eclass/user.eclass
11 +++ b/eclass/user.eclass
12 @@ -130,7 +130,8 @@ enewuser() {
13 if [[ -n ${euid} && ${euid} != -1 ]] ; then
14 if [[ ${euid} -gt 0 ]] ; then
15 if [[ -n $(egetent passwd ${euid}) ]] ; then
16 - euid="next"
17 + eerror "UID is already taken"
18 + die "user ${euser} needs a new UID"
19 fi
20 else
21 eerror "Userid given but is not greater than 0 !"
22 @@ -290,7 +291,8 @@ enewgroup() {
23 if [[ ! -z ${egid} ]] ; then
24 if [[ ${egid} -gt 0 ]] ; then
25 if [[ -n $(egetent group ${egid}) ]] ; then
26 - egid="next available; requested gid taken"
27 + eerror "GID is already taken"
28 + die "group ${egroup} needs a new GID"
29 fi
30 else
31 eerror "Groupid given but is not greater than 0 !"
32 --
33 2.21.0

Replies