@cryptotaxi247 / netdata-1 / commits / 8368cc0fc

Fix issues with DEB postinstall script. (#13252)

* Also run user and statoverride setup on reconfigure hook. This allows users to fix issues with user/group setup and statoverrides by running `dpkg-reconfigure netdata`. * Use correct shell construct for setting filecaps for perf.plugin. This ensures predictable behavior, and should also get rid of the warnings we see on some systems on install. * Run all configuration steps on all configuration hooks. This ensures we actually handle users/groups and similar even on updates and not just on an initial install.

Austin S. Hemmelgarn committed Jun 30, 2022 at 10:03 UTC 8368cc0fca0fc4ef91f75998b7d4536a49850afe
1 file changed +31 -29
contrib/debian/netdata.postinst
+31 -29
@@ -16,42 +16,39 @@ dpkg-maintscript-helper dir_to_symlink \
16 /var/lib/netdata/www/static /usr/share/netdata/www/static 1.18.1~ netdata -- "$@"
17
18 case "$1" in
19 - configure)
20 - if [ -z "$2" ]; then
21 - if ! getent group netdata > /dev/null; then
22 - addgroup --quiet --system netdata
23 - fi
24 -
25 - if ! getent passwd netdata > /dev/null; then
26 - adduser --quiet --system --ingroup netdata --home /var/lib/netdata --no-create-home netdata
27 - fi
19 + configure|recnfigure)
20 + if ! getent group netdata > /dev/null; then
21 + addgroup --quiet --system netdata
22 + fi
23
29 - for item in docker nginx varnish haproxy adm nsd proxy squid ceph nobody I2C; do
30 - if getent group $item > /dev/null 2>&1; then
31 - usermod -a -G $item netdata
32 - fi
33 - done
24 + if ! getent passwd netdata > /dev/null; then
25 + adduser --quiet --system --ingroup netdata --home /var/lib/netdata --no-create-home netdata
26 + fi
27
35 - if ! dpkg-statoverride --list /var/lib/netdata > /dev/null 2>&1; then
36 - dpkg-statoverride --update --add netdata netdata 0755 /var/lib/netdata
28 + for item in docker nginx varnish haproxy adm nsd proxy squid ceph nobody I2C; do
29 + if getent group $item > /dev/null 2>&1; then
30 + usermod -a -G $item netdata
31 fi
32 + done
33
39 - if ! dpkg-statoverride --list /var/lib/netdata/www > /dev/null 2>&1; then
40 - dpkg-statoverride --update --add root netdata 0755 /var/lib/netdata/www
41 - fi
34 + if ! dpkg-statoverride --list /var/lib/netdata > /dev/null 2>&1; then
35 + dpkg-statoverride --update --add netdata netdata 0755 /var/lib/netdata
36 + fi
37
43 - if ! dpkg-statoverride --list /var/cache/netdata > /dev/null 2>&1; then
44 - dpkg-statoverride --update --add netdata netdata 0755 /var/cache/netdata
45 - fi
38 + if ! dpkg-statoverride --list /var/lib/netdata/www > /dev/null 2>&1; then
39 + dpkg-statoverride --update --add root netdata 0755 /var/lib/netdata/www
40 + fi
41
47 - if ! dpkg-statoverride --list /var/run/netdata > /dev/null 2>&1; then
48 - dpkg-statoverride --update --add netdata netdata 0755 /var/run/netdata
49 - fi
42 + if ! dpkg-statoverride --list /var/cache/netdata > /dev/null 2>&1; then
43 + dpkg-statoverride --update --add netdata netdata 0755 /var/cache/netdata
44 + fi
45
51 - if ! dpkg-statoverride --list /var/log/netdata > /dev/null 2>&1; then
52 - dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata
53 - fi
46 + if ! dpkg-statoverride --list /var/run/netdata > /dev/null 2>&1; then
47 + dpkg-statoverride --update --add netdata netdata 0755 /var/run/netdata
48 + fi
49
50 + if ! dpkg-statoverride --list /var/log/netdata > /dev/null 2>&1; then
51 + dpkg-statoverride --update --add netdata adm 02750 /var/log/netdata
52 fi
53
54 dpkg-statoverride --force --update --add root netdata 0775 /var/lib/netdata/registry > /dev/null 2>&1
@@ -59,7 +56,12 @@ case "$1" in
56 chown -R root:netdata /usr/libexec/netdata/plugins.d
57 setcap cap_dac_read_search,cap_sys_ptrace+ep /usr/libexec/netdata/plugins.d/apps.plugin
58 setcap cap_dac_read_search+ep /usr/libexec/netdata/plugins.d/slabinfo.plugin
62 - capsh --supports=cap_perfmon 2>/dev/null && setcap cap_perfmon+ep /usr/libexec/netdata/plugins.d/perf.plugin || setcap cap_sys_admin+ep /usr/libexec/netdata/plugins.d/perf.plugin
59 +
60 + if capsh --supports=cap_perfmon 2>/dev/null; then
61 + setcap cap_perfmon+ep /usr/libexec/netdata/plugins.d/perf.plugin
62 + else
63 + setcap cap_sys_admin+ep /usr/libexec/netdata/plugins.d/perf.plugin
64 + fi
65
66 chmod 4750 /usr/libexec/netdata/plugins.d/cgroup-network
67 chmod 4750 /usr/libexec/netdata/plugins.d/nfacct.plugin