summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Müller <ulm@gentoo.org>2023-10-23 21:56:05 +0200
committerUlrich Müller <ulm@gentoo.org>2023-11-08 08:39:44 +0100
commit9756ed4ebc19571b30cb985b2151c811373edf35 (patch)
tree6b02074cf4f59982ac450514a2d00aee946c5020
parentprofiles/features/musl/package.mask: mask Exim 4.97 (diff)
downloadgentoo-9756ed4ebc19571b30cb985b2151c811373edf35.tar.gz
gentoo-9756ed4ebc19571b30cb985b2151c811373edf35.tar.bz2
gentoo-9756ed4ebc19571b30cb985b2151c811373edf35.zip
acct-user.eclass: Warn when the user is removed from a group
Acked-by: Mike Gilbert <floppym@gentoo.org> Signed-off-by: Ulrich Müller <ulm@gentoo.org>
-rw-r--r--eclass/acct-user.eclass16
1 files changed, 16 insertions, 0 deletions
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.