mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
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>
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user