[Pkg-net-snmp-commits] [pkg-net-snmp] 04/05: fix #794641, #794647, #781257
Hideki Yamane
henrich at moszumanska.debian.org
Fri Jan 29 23:46:16 UTC 2016
This is an automated email from the git hooks/post-receive script.
henrich pushed a commit to branch master
in repository pkg-net-snmp.
commit deed97ccd6178302f2cda6e98dc2db6416fba3c0
Author: Hideki Yamane <henrich at debian.org>
Date: Thu Jan 28 21:47:25 2016 +0900
fix #794641, #794647, #781257
---
debian/changelog | 7 +++++++
debian/snmp.preinst | 33 +++++++++++++++------------------
debian/snmpd.postinst | 36 ++++++++++--------------------------
debian/snmpd.postrm | 51 ++++++++++++++++++++++++++++++---------------------
debian/snmpd.preinst | 2 +-
5 files changed, 63 insertions(+), 66 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 9b26ae8..0aed08e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,6 +4,13 @@ net-snmp (5.7.3+dfsg-2) UNRELEASED; urgency=medium
- add Bug-788964-net-snmp-snmp_pdu_parse-DoS.patch (Closes: #788964)
- add 0026-fix-Bug-785380-incorrect-date-format.patch (Closes: #785380)
Thanks to Gabor Kiss <kissg at ssg.ki.iif.hu>
+ * debian/snmpd.{preinst,postinst,postrm}
+ - change SNMP user from "snmp" to "Debian-snmp" to avoid confusion with
+ non-system user. It satisfy to work with some LDAP system. Thanks to
+ Vincent Bernat <bernat at debian.org> for suggestions.
+ (Closes: #794641, #794647)
+ * debian/snmp.preinst
+ - revert "killall", it is unnecessary anymore (Closes: #781257)
-- Hideki Yamane <henrich at debian.org> Thu, 18 Jun 2015 06:43:28 +0900
diff --git a/debian/snmp.preinst b/debian/snmp.preinst
index 8f8c754..603b6ce 100644
--- a/debian/snmp.preinst
+++ b/debian/snmp.preinst
@@ -4,24 +4,21 @@ set -e
case "$1" in
-install|upgrade)
- if [ -L /usr/share/doc/snmp ]; then
- rm -f /usr/share/doc/snmp
- fi
- if [ -d /usr/doc/snmp ]; then
- rm -rf /usr/doc/snmp
- fi
-
- killall -u snmp 2>/dev/null || true
-
- ;;
-abort-upgrade)
- ;;
-
-*)
- echo "preinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
+ install|upgrade)
+ if [ -L /usr/share/doc/snmp ]; then
+ rm -f /usr/share/doc/snmp
+ fi
+
+ rm -rf /usr/doc/snmp || true
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
esac
diff --git a/debian/snmpd.postinst b/debian/snmpd.postinst
index c4c559e..67f4712 100644
--- a/debian/snmpd.postinst
+++ b/debian/snmpd.postinst
@@ -1,6 +1,9 @@
-#! /bin/sh
+#!/bin/sh
-SNMPDIR=/var/lib/snmp
+SNMP_DIR="/var/lib/snmp"
+SNMP_USER="Debian-snmp"
+SNMP_GROUP="$SNMP_USER"
+SNMP_SHELL="/bin/false"
set -e
@@ -10,31 +13,12 @@ case "$1" in
. /usr/share/debconf/confmodule
db_version 2.0
- if [ ! `getent passwd snmp >/dev/null` ]; then
+ adduser --quiet --system --group --home "$SNMP_DIR" \
+ --disabled-password --disabled-login \
+ --shell "$SNMP_SHELL" "$SNMP_USER"
- if [ ! `getent group snmp >/dev/null` ]; then
- # no snmp user & group
- adduser --quiet --system --group --home $SNMPDIR \
- --shell /usr/sbin/nologin snmp
- else
- # no snmp user, but snmp group exists
- adduser --quiet --system --ingroup snmp --home $SNMPDIR \
- --shell /usr/sbin/nologin snmp
- fi
-
- elif [ ! `getent group snmp >/dev/null` ]; then
-
- # snmp user exists but no snmp group
- addgroup --quiet --system snmp
-
- # if user is local system user (not LDAP or so), then exec usermod
- # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482041#25
- if [ ! `getent passwd snmp | cut -d':' -f3` -ge 1000 ]; then
- mkdir -p $SNMPDIR || true
- usermod -d $SNMPDIR -m -g snmp -s /usr/sbin/nologin snmp
- fi
-
- fi
+ # care if SNMP_DIR is used by previous "snmp" user
+ chown -R "$SNMP_USER"."$SNMP_GROUP" "$SNMP_DIR"
# Bug#709087
DOCDIR=/usr/share/doc/snmpd
diff --git a/debian/snmpd.postrm b/debian/snmpd.postrm
index b23db23..8305e3c 100644
--- a/debian/snmpd.postrm
+++ b/debian/snmpd.postrm
@@ -1,27 +1,36 @@
-#! /bin/sh
+#!/bin/sh
+
+SNMP_USER="Debian-snmp"
+SNMP_GROUP="$SNMP_USER"
set -e
-#DEBHELPER#
+case "$1" in
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ # if "snmp" is system user, it means Debian package created it.
+ deluser --quiet --system snmp || true
+ delgroup --quiet --system snmp || true
+
+ # after 5.7.3+dfsg-2, Debian-snmp is used
+ deluser --quiet --system $SNMP_USER || true
+ delgroup --quiet --system $SNMP_GROUP || true
+
+ if [ $1 = purge ]; then
+ rm -rf /var/lib/snmp/snmpd.conf* \
+ /var/run/agentx /var/agentx/master \
+ /var/run/snmpd.pid
+ fi
+ ;;
-if [ $1 = purge ]; then
- rm -f /var/lib/snmp/snmpd.conf*
- rm -rf /var/run/agentx /var/agentx/master
- rm -f /var/run/snmpd.pid
- if getent passwd snmp >/dev/null; then
- if [ -x /usr/sbin/deluser ]; then
- deluser --quiet --system snmp
- else
- echo "Can't remove user snmp. Please remove this user by hand."
- fi
- fi
- if getent group snmp >/dev/null; then
- if [ -x /usr/sbin/delgroup ]; then
- delgroup --quiet --system snmp
- else
- echo "Can't remove group snmp. Please remove this group by hand."
- fi
- fi
-fi
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
exit 0
diff --git a/debian/snmpd.preinst b/debian/snmpd.preinst
index 993dd6b..1e7e615 100644
--- a/debian/snmpd.preinst
+++ b/debian/snmpd.preinst
@@ -1,4 +1,4 @@
-#! /bin/sh
+#!/bin/sh
set -e
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-net-snmp/pkg-net-snmp.git
More information about the Pkg-net-snmp-commits
mailing list