Skip to content

Commit

Permalink
rpm: do not delete system account
Browse files Browse the repository at this point in the history
In the previous versions (5.0.0, 5.0.1), when fluent-package was
removed, system account (user and group are intended to be removed)

But there is a case that it fails to remove fluentd group because of
compatible GID is assigned for td-agent and fluentd when
fluent-package was introduced with upgrading from td-agent v4.

  Removing fluentd user...
  userdel: group fluentd is the primary group of another user and is not removed.
  Removing fluentd group...
  groupdel: cannot remove the primary group of user 'td-agent'
  Removing td-agent user...
  userdel: td-agent mail spool (/var/spool/mail/td-agent) not found
  userdel: td-agent home directory (/var/lib/td-agent) not found

This is a bug of fluent-package apparently.

This kind of inconsistency causes maintainer script error when
reinstalling td-agent or fluent-package again.

And moreover, if system account (user and group) was removed
completely, there is a case that no user can access generated logs
when user re-installed td-agent or fluent-package. (mismatch of
UID/GID which is newly created)

This case also should be considered.
(Keep system account after removing package)

Signed-off-by: Kentaro Hayashi <[email protected]>
  • Loading branch information
kenhys committed Nov 17, 2023
1 parent d226256 commit 1e4c0a4
Showing 1 changed file with 0 additions and 20 deletions.
20 changes: 0 additions & 20 deletions fluent-package/yum/fluent-package.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -284,26 +284,6 @@ if [ $1 -eq 0 ]; then
fi
fi

if [ $1 -eq 0 ]; then
# Removing
if getent passwd @SERVICE_NAME@ >/dev/null; then
echo "Removing @SERVICE_NAME@ user..."
/usr/sbin/userdel --remove @SERVICE_NAME@
fi
if getent group @SERVICE_NAME@ >/dev/null; then
echo "Removing @SERVICE_NAME@ group..."
/usr/sbin/groupdel @SERVICE_NAME@
fi
if getent passwd @COMPAT_SERVICE_NAME@ >/dev/null; then
echo "Removing @COMPAT_SERVICE_NAME@ user..."
/usr/sbin/userdel --remove @COMPAT_SERVICE_NAME@
fi
if getent group @COMPAT_SERVICE_NAME@ >/dev/null; then
echo "Removing @COMPAT_SERVICE_NAME@ group..."
/usr/sbin/groupdel @COMPAT_SERVICE_NAME@
fi
fi

%posttrans
if [ -f %{v4migration} ]; then
if [ ! -f /usr/sbin/@COMPAT_SERVICE_NAME@ ]; then
Expand Down

0 comments on commit 1e4c0a4

Please sign in to comment.