summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2022-10-17 16:23:55 -0400
committerMichał Górny <mgorny@gentoo.org>2022-10-19 15:30:05 +0200
commit720c70288cf15946f2560af7d104e1b3f34f9dd9 (patch)
treeac9215dbb7b302e88e39b5a873793097806748d3 /eclass
parentacct-user.eclass: support user override of comment (diff)
downloadgentoo-720c70288cf15946f2560af7d104e1b3f34f9dd9.tar.gz
gentoo-720c70288cf15946f2560af7d104e1b3f34f9dd9.tar.bz2
gentoo-720c70288cf15946f2560af7d104e1b3f34f9dd9.zip
acct-user.eclass: respect ACCT_USER_NO_MODIFY in pkg_prerm
Signed-off-by: Mike Gilbert <floppym@gentoo.org> Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/acct-user.eclass31
1 files changed, 19 insertions, 12 deletions
diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass
index f48e5a105a46..6e7f6811a76f 100644
--- a/eclass/acct-user.eclass
+++ b/eclass/acct-user.eclass
@@ -508,28 +508,35 @@ acct-user_pkg_postinst() {
acct-user_pkg_prerm() {
debug-print-function ${FUNCNAME} "${@}"
+ if [[ -n ${REPLACED_BY_VERSION} ]]; then
+ return
+ fi
+
if [[ ${EUID} -ne 0 ]]; then
einfo "Insufficient privileges to execute ${FUNCNAME[0]}"
- return 0
+ return
fi
if [[ ${ACCT_USER_ID} -eq 0 ]]; then
elog "Refusing to lock out the superuser (UID 0)"
- return 0
+ return
fi
- if [[ -z ${REPLACED_BY_VERSION} ]]; then
- if [[ -z $(egetent passwd "${ACCT_USER_NAME}") ]]; then
- ewarn "User account not found: ${ACCT_USER_NAME}"
- ewarn "Locking process will be skipped."
- return
- fi
+ if [[ -n ${ACCT_USER_NO_MODIFY} ]]; then
+ elog "Not locking user ${ACCT_USER_NAME} due to ACCT_USER_NO_MODIFY"
+ return
+ fi
- esetshell "${ACCT_USER_NAME}" -1
- esetcomment "${ACCT_USER_NAME}" \
- "$(egetcomment "${ACCT_USER_NAME}"); user account removed @ $(date +%Y-%m-%d)"
- elockuser "${ACCT_USER_NAME}"
+ if ! egetent passwd "${ACCT_USER_NAME}" >/dev/null; then
+ ewarn "User account not found: ${ACCT_USER_NAME}"
+ ewarn "Locking process will be skipped."
+ return
fi
+
+ esetshell "${ACCT_USER_NAME}" -1
+ esetcomment "${ACCT_USER_NAME}" \
+ "$(egetcomment "${ACCT_USER_NAME}"); user account removed @ $(date +%Y-%m-%d)"
+ elockuser "${ACCT_USER_NAME}"
}
fi