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