acct-user.eclass: simplify usermod error handling

We no longer attempt to unlock accounts with blank passwords, so we can
drop the code responsible for hiding that warning.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
This commit is contained in:
Mike Gilbert
2026-07-30 17:32:31 -04:00
parent f93621b806
commit 04dc4e3dc2

View File

@@ -445,30 +445,24 @@ acct-user_pkg_postinst() {
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.
usermod "${opts[@]}" "${ACCT_USER_NAME}" 2>"${T}/usermod-error.log"
usermod "${opts[@]}" "${ACCT_USER_NAME}"
local status=$?
if [[ ${status} -ne 0 ]]; then
cat "${T}/usermod-error.log" >&2
if [[ ${status} -eq 8 ]]; then
# usermod refused to update the home directory
# for a uid with active processes.
eerror "Failed to update user ${ACCT_USER_NAME}"
eerror "This user currently has one or more running processes."
eerror "Please update this user manually with the following command:"
if [[ ${status} -eq 8 ]]; then
# usermod refused to update the home directory
# for a uid with active processes.
eerror "Failed to update user ${ACCT_USER_NAME}"
eerror "This user currently has one or more running processes."
eerror "Please update this user manually with the following command:"
# Surround opts with quotes.
# With bash-5 (EAPI 8), we can use "${opts[@]@Q}" instead.
local q="'"
local optsq=( "${opts[@]/#/${q}}" )
optsq=( "${optsq[@]/%/${q}}" )
# Surround opts with quotes.
# With bash-5 (EAPI 8), we can use "${opts[@]@Q}" instead.
local q="'"
local optsq=( "${opts[@]/#/${q}}" )
optsq=( "${optsq[@]/%/${q}}" )
eerror " usermod ${optsq[*]} ${ACCT_USER_NAME}"
else
eerror "$(<"${T}/usermod-error.log")"
die "usermod failed with status ${status}"
fi
eerror " usermod ${optsq[*]} ${ACCT_USER_NAME}"
elif [[ ${status} -ne 0 ]]; then
die "usermod failed with status ${status}"
fi
}