diff options
author | Michał Górny <mgorny@gentoo.org> | 2019-08-07 19:07:45 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2019-08-17 22:36:31 +0200 |
commit | c871b87b56208684b0a1fedeaf24fe10943748e2 (patch) | |
tree | 53ec8282153965ff28c298ec22dff6abcfd64f2a /eclass | |
parent | net-fs/autofs: stable 5.1.5-r2 for ppc, bug #692028 (diff) | |
download | gentoo-c871b87b56208684b0a1fedeaf24fe10943748e2.tar.gz gentoo-c871b87b56208684b0a1fedeaf24fe10943748e2.tar.bz2 gentoo-c871b87b56208684b0a1fedeaf24fe10943748e2.zip |
acct-*.eclass: Allow dynamic UID/GID assignment via -1
Allow a special value of '-1' to dynamically assign UID/GID for the user
or group. This is intended to be used in overlays where proper
assignment does not take place but whose owners wish to switch to acct-*
packages.
While technically it is possible to choose a free UID/GID, it could be
taken afterwards by some Gentoo package and unnecessarily introduce
a conflict. Using '999' was also suggested (as the first dynamic
UID/GID) but it would cause issues for people enabling
ACCT_*_ENFORCE_ID. To avoid this, '-1' does not trigger collision
checks.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/acct-group.eclass | 4 | ||||
-rw-r--r-- | eclass/acct-user.eclass | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/eclass/acct-group.eclass b/eclass/acct-group.eclass index 9eab00db690f..d5ccd209c9e3 100644 --- a/eclass/acct-group.eclass +++ b/eclass/acct-group.eclass @@ -59,6 +59,9 @@ readonly ACCT_GROUP_NAME # @DESCRIPTION: # Preferred GID for the new group. This variable is obligatory, and its # value must be unique across all group packages. +# +# Overlays should set this to -1 to dynamically allocate GID. Using -1 +# in ::gentoo is prohibited by policy. # @ECLASS-VARIABLE: ACCT_GROUP_ENFORCE_ID # @DESCRIPTION: @@ -87,6 +90,7 @@ acct-group_pkg_pretend() { # verify ACCT_GROUP_ID [[ -n ${ACCT_GROUP_ID} ]] || die "Ebuild error: ACCT_GROUP_ID must be set!" + [[ ${ACCT_GROUP_ID} -eq -1 ]] && return [[ ${ACCT_GROUP_ID} -ge 0 ]] || die "Ebuild errors: ACCT_GROUP_ID=${ACCT_GROUP_ID} invalid!" # check for ACCT_GROUP_ID collisions early diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass index 008dc6bb7d68..fa4f9daef8f7 100644 --- a/eclass/acct-user.eclass +++ b/eclass/acct-user.eclass @@ -67,6 +67,9 @@ readonly ACCT_USER_NAME # @DESCRIPTION: # Preferred UID for the new user. This variable is obligatory, and its # value must be unique across all user packages. +# +# Overlays should set this to -1 to dynamically allocate UID. Using -1 +# in ::gentoo is prohibited by policy. # @ECLASS-VARIABLE: ACCT_USER_ENFORCE_ID # @DESCRIPTION: @@ -279,6 +282,7 @@ acct-user_pkg_pretend() { # verify ACCT_USER_ID [[ -n ${ACCT_USER_ID} ]] || die "Ebuild error: ACCT_USER_ID must be set!" + [[ ${ACCT_USER_ID} -eq -1 ]] && return [[ ${ACCT_USER_ID} -ge 0 ]] || die "Ebuild errors: ACCT_USER_ID=${ACCT_USER_ID} invalid!" # check for ACCT_USER_ID collisions early |