summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2019-07-27 10:37:53 +0200
committerUlrich Müller <ulm@gentoo.org>2019-07-29 11:21:48 +0200
commit970abc63ba7144c45208acf3f727d8a559caaa43 (patch)
tree6b63ae108bcb544832dc05a034fdd1ee3677e7f5 /eclass
parentapp-admin/consul: Version bump to 1.5.3 (diff)
downloadgentoo-970abc63ba7144c45208acf3f727d8a559caaa43.tar.gz
gentoo-970abc63ba7144c45208acf3f727d8a559caaa43.tar.bz2
gentoo-970abc63ba7144c45208acf3f727d8a559caaa43.zip
user.eclass: Allocate next free UID or GID from 999 downwards.
Fixed UIDs and GIDs are mostly located in the low range, therefore going downwards from 999 to 101 will minimise collisions between fixed and dynamically allocated IDs. Note that on Linux and other targets using "groupadd -r" from sys-apps/shadow, GIDs are already allocated that way implicitly. Signed-off-by: Ulrich Müller <ulm@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/user.eclass8
1 files changed, 4 insertions, 4 deletions
diff --git a/eclass/user.eclass b/eclass/user.eclass
index 9dc15fa75d23..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
}