From 63a0cd237fb173474325f43e6b33ec295992a6d8 Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Wed, 15 Jul 2026 04:30:11 +0200 Subject: [PATCH] Add missing postinst steps to Ubuntu The following post install steps were missing on Ubuntu builds: - Permission fixes - sysctl load - Service restart - confluent PAM symlink to /etc/pam.d/sshd. It works without it on Ubuntu because it falls back to other which allows login on Ubuntu, but the behaviour should be the same on every OS. Furtheremore, an admin might implement additional steps to sshd PAM and would like to have this in Confluent, too --- confluent_server/builddeb | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/confluent_server/builddeb b/confluent_server/builddeb index 276b4025..0364d9f0 100755 --- a/confluent_server/builddeb +++ b/confluent_server/builddeb @@ -50,12 +50,30 @@ if ! grep wheezy /etc/os-release; then fi head -n -1 debian/control > debian/control1 mv debian/control1 debian/control -cat > debian/postinst << EOF -if ! getent passwd confluent > /dev/null; then +cat > debian/postinst << \EOF +if ! getent passwd confluent > /dev/null; then useradd -r confluent -d /var/lib/confluent -s /usr/sbin/nologin - mkdir -p /etc/confluent - chown confluent /etc/confluent fi +mkdir -p /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent +chown confluent:confluent /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent + +sysctl -p /usr/lib/sysctl.d/confluent.conf > /dev/null 2>&1 +NEEDCHOWN=0 +NEEDSTART=0 +[ -n "$(find /etc/confluent /var/log/confluent /var/cache/confluent -uid 0 -print -quit 2>/dev/null)" ] && NEEDCHOWN=1 +if [ $NEEDCHOWN = 1 ]; then + if systemctl is-active confluent > /dev/null; then + NEEDSTART=1 + systemctl stop confluent + fi + chown -R confluent:confluent /etc/confluent /var/log/confluent /var/cache/confluent +fi +systemctl daemon-reload +if systemctl is-active confluent > /dev/null || [ $NEEDSTART = 1 ]; then systemctl restart confluent > /dev/null 2>&1; fi +if [ ! -e /etc/pam.d/confluent ]; then + ln -s /etc/pam.d/sshd /etc/pam.d/confluent +fi +true EOF echo 'export PYBUILD_INSTALL_ARGS=--install-lib=/opt/confluent/lib/python' >> debian/rules #echo 'Provides: python-'$DPKGNAME >> debian/control