[PATCH 3/5] acct-user.eclass: simplify usermod error handling
Mike Gilbert <[email protected]> Fri, 31 Jul 2026 14:06:01 -0400
| Newsgroups | gmane.linux.gentoo.devel |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- eclass/acct-user.eclass | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/eclass/acct-user.eclass b/eclass/acct-user.eclass index 0c8ba49bb837..273130ea19af 100644 --- a/eclass/acct-user.eclass +++ b/eclass/acct-user.eclass @@ -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:" - - # 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 + 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}}" ) + + eerror " usermod ${optsq[*]} ${ACCT_USER_NAME}" + elif [[ ${status} -ne 0 ]]; then + die "usermod failed with status ${status}" fi } -- 2.55.0