commit:     9756ed4ebc19571b30cb985b2151c811373edf35
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 23 19:56:05 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Nov  8 07:39:44 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9756ed4e

acct-user.eclass: Warn when the user is removed from a group

Acked-by: Mike Gilbert <floppym <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 eclass/acct-user.eclass | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
index f658aa0eabc3..66a4d6667888 100644
--- a/eclass/acct-user.eclass
+++ b/eclass/acct-user.eclass
@@ -431,6 +431,22 @@ acct-user_pkg_postinst() {
                opts+=( --prefix "${ROOT}" )
        fi
 
+       local g old_groups del_groups=""
+       old_groups=$(egetgroups "${ACCT_USER_NAME}")
+       for g in ${old_groups//,/ }; do
+               has "${g}" "${groups[@]}" || del_groups+="${del_groups:+, }${g}"
+       done
+       if [[ -n ${del_groups} ]]; then
+               local override_name=${ACCT_USER_NAME^^}
+               override_name=${override_name//-/_}
+               ewarn "Removing user ${ACCT_USER_NAME} from group(s): 
${del_groups}"
+               ewarn "To retain the user's group membership in the local 
system"
+               ewarn "config, override with ACCT_USER_${override_name}_GROUPS 
or"
+               ewarn "ACCT_USER_${override_name}_GROUPS_ADD in make.conf."
+               ewarn "Documentation reference:"
+               ewarn 
"https://wiki.gentoo.org/wiki/Practical_guide_to_the_GLEP_81_migration#Override_user_groups";
+       fi
+
        elog "Updating user ${ACCT_USER_NAME}"
        # usermod outputs a warning if unlocking the account would result in an
        # empty password. Hide stderr in a text file and display it if usermod 
fails.

Reply via email to