summaryrefslogtreecommitdiffstats
path: root/packaging/makeself/install-or-update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/makeself/install-or-update.sh')
-rwxr-xr-xpackaging/makeself/install-or-update.sh29
1 files changed, 22 insertions, 7 deletions
diff --git a/packaging/makeself/install-or-update.sh b/packaging/makeself/install-or-update.sh
index 52a23fc7..03f7c2c7 100755
--- a/packaging/makeself/install-or-update.sh
+++ b/packaging/makeself/install-or-update.sh
@@ -179,7 +179,7 @@ dir_should_be_link() {
fi
run ln -s "${t}" "${d}"
- cd "${old}"
+ cd "${old}" || true
}
dir_should_be_link . bin sbin
@@ -208,9 +208,28 @@ run chown -R ${NETDATA_USER}:${NETDATA_GROUP} /opt/netdata
# -----------------------------------------------------------------------------
-progress "changing plugins ownership and setting setuid"
+progress "changing plugins ownership and permissions"
-for x in apps.plugin freeipmi.plugin ioping cgroup-network ebpf.plugin perf.plugin slabinfo.plugin nfacct.plugin xenstat.plugin; do
+if command -v setcap >/dev/null 2>&1; then
+ run setcap "cap_dac_read_search,cap_sys_ptrace=ep" "usr/libexec/netdata/plugins.d/apps.plugin"
+ run setcap "cap_dac_read_search=ep" "usr/libexec/netdata/plugins.d/slabinfo.plugin"
+
+ if command -v capsh >/dev/null 2>&1 && capsh --supports=cap_perfmon 2>/dev/null ; then
+ run setcap "cap_perfmon=ep" "usr/libexec/netdata/plugins.d/perf.plugin"
+ else
+ run setcap "cap_sys_admin=ep" "usr/libexec/netdata/plugins.d/perf.plugin"
+ fi
+
+ run setcap "cap_net_admin,cap_net_raw=eip" "usr/libexec/netdata/plugins.d/go.d.plugin"
+else
+ for x in apps.plugin perf.plugin slabinfo.plugin; do
+ f="usr/libexec/netdata/plugins.d/${x}"
+ run chown root:${NETDATA_GROUP} "${f}"
+ run chmod 4750 "${f}"
+ done
+fi
+
+for x in freeipmi.plugin ioping cgroup-network ebpf.plugin nfacct.plugin xenstat.plugin; do
f="usr/libexec/netdata/plugins.d/${x}"
if [ -f "${f}" ]; then
@@ -219,10 +238,6 @@ for x in apps.plugin freeipmi.plugin ioping cgroup-network ebpf.plugin perf.plug
fi
done
-if [ -f "usr/libexec/netdata/plugins.d/go.d.plugin" ] && command -v setcap 1>/dev/null 2>&1; then
- run setcap "cap_net_admin+epi cap_net_raw=eip" "usr/libexec/netdata/plugins.d/go.d.plugin"
-fi
-
# -----------------------------------------------------------------------------
echo "Configure TLS certificate paths"