allow netdata installer to install and run netdata as any user (#13780)
* allow netdata installer to install and run netdata as any user * Update netdata-installer.sh Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com> * Update netdata-installer.sh Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com> Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
This commit is contained in:
parent
ccfbdb5c3d
commit
067305602f
|
@ -13,6 +13,7 @@
|
|||
-e 's#[@]libsysdir_POST@#$(libsysdir)#g' \
|
||||
-e 's#[@]enable_aclk_POST@#$(enable_aclk)#g' \
|
||||
-e 's#[@]enable_cloud_POST@#$(enable_cloud)#g' \
|
||||
-e 's#[@]netdata_user_POST@#$(netdata_user)#g' \
|
||||
$< > $@.tmp; then \
|
||||
mv "$@.tmp" "$@"; \
|
||||
else \
|
||||
|
|
|
@ -1540,6 +1540,7 @@ configdir="${sysconfdir}/netdata"
|
|||
libconfigdir="${libdir}/netdata/conf.d"
|
||||
logdir="${localstatedir}/log/netdata"
|
||||
pluginsdir="${libexecdir}/netdata/plugins.d"
|
||||
netdata_user="${with_user}"
|
||||
libsysdir="${libdir}/netdata/system"
|
||||
|
||||
AC_SUBST([varlibdir])
|
||||
|
@ -1552,6 +1553,7 @@ AC_SUBST([libconfigdir])
|
|||
AC_SUBST([logdir])
|
||||
AC_SUBST([pluginsdir])
|
||||
AC_SUBST([webdir])
|
||||
AC_SUBST([netdata_user])
|
||||
AC_SUBST([libsysdir])
|
||||
|
||||
CFLAGS="${originalCFLAGS} ${OPTIONAL_LTO_CFLAGS} ${OPTIONAL_PROTOBUF_CFLAGS} ${OPTIONAL_MATH_CFLAGS} ${OPTIONAL_NFACCT_CFLAGS} \
|
||||
|
|
|
@ -934,6 +934,34 @@ if [ "$have_autotools" ]; then
|
|||
fi
|
||||
fi
|
||||
|
||||
# function to extract values from the config file
|
||||
config_option() {
|
||||
section="${1}"
|
||||
key="${2}"
|
||||
value="${3}"
|
||||
|
||||
if [ -x "${NETDATA_PREFIX}/usr/sbin/netdata" ] && [ -r "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ]; then
|
||||
"${NETDATA_PREFIX}/usr/sbin/netdata" \
|
||||
-c "${NETDATA_PREFIX}/etc/netdata/netdata.conf" \
|
||||
-W get "${section}" "${key}" "${value}" ||
|
||||
echo "${value}"
|
||||
else
|
||||
echo "${value}"
|
||||
fi
|
||||
}
|
||||
|
||||
# the user netdata will run as
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
NETDATA_USER="$(config_option "global" "run as user" "netdata")"
|
||||
ROOT_USER="root"
|
||||
else
|
||||
NETDATA_USER="${USER}"
|
||||
ROOT_USER="${USER}"
|
||||
fi
|
||||
NETDATA_GROUP="$(id -g -n "${NETDATA_USER}")"
|
||||
[ -z "${NETDATA_GROUP}" ] && NETDATA_GROUP="${NETDATA_USER}"
|
||||
echo >&2 "Netdata user and group set to: ${NETDATA_USER}/${NETDATA_GROUP}"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
if ! run ./configure \
|
||||
--prefix="${NETDATA_PREFIX}/usr" \
|
||||
|
@ -943,7 +971,7 @@ if ! run ./configure \
|
|||
--libdir="${NETDATA_PREFIX}/usr/lib" \
|
||||
--with-zlib \
|
||||
--with-math \
|
||||
--with-user=netdata \
|
||||
--with-user="${NETDATA_USER}" \
|
||||
${NETDATA_CONFIGURE_OPTIONS} \
|
||||
CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"; then
|
||||
fatal "Failed to configure Netdata sources." I000A
|
||||
|
@ -1077,34 +1105,6 @@ progress "Read installation options from netdata.conf"
|
|||
[ ! -f "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ] &&
|
||||
touch "${NETDATA_PREFIX}/etc/netdata/netdata.conf"
|
||||
|
||||
# function to extract values from the config file
|
||||
config_option() {
|
||||
section="${1}"
|
||||
key="${2}"
|
||||
value="${3}"
|
||||
|
||||
if [ -s "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ]; then
|
||||
"${NETDATA_PREFIX}/usr/sbin/netdata" \
|
||||
-c "${NETDATA_PREFIX}/etc/netdata/netdata.conf" \
|
||||
-W get "${section}" "${key}" "${value}" ||
|
||||
echo "${value}"
|
||||
else
|
||||
echo "${value}"
|
||||
fi
|
||||
}
|
||||
|
||||
# the user netdata will run as
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
NETDATA_USER="$(config_option "global" "run as user" "netdata")"
|
||||
ROOT_USER="root"
|
||||
else
|
||||
NETDATA_USER="${USER}"
|
||||
ROOT_USER="${USER}"
|
||||
fi
|
||||
NETDATA_GROUP="$(id -g -n "${NETDATA_USER}")"
|
||||
[ -z "${NETDATA_GROUP}" ] && NETDATA_GROUP="${NETDATA_USER}"
|
||||
echo >&2 "Netdata user and group is finally set to: ${NETDATA_USER}/${NETDATA_GROUP}"
|
||||
|
||||
# port
|
||||
defport=19999
|
||||
NETDATA_PORT="$(config_option "web" "default port" ${defport})"
|
||||
|
|
|
@ -7,16 +7,16 @@ After=network.target httpd.service squid.service nfs-server.service mysqld.servi
|
|||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=netdata
|
||||
User=@netdata_user_POST@
|
||||
Group=netdata
|
||||
RuntimeDirectory=netdata
|
||||
RuntimeDirectoryMode=0775
|
||||
PIDFile=/run/netdata/netdata.pid
|
||||
ExecStart=@sbindir_POST@/netdata -P /run/netdata/netdata.pid -D
|
||||
ExecStartPre=/bin/mkdir -p @localstatedir_POST@/cache/netdata
|
||||
ExecStartPre=/bin/chown -R netdata:netdata @localstatedir_POST@/cache/netdata
|
||||
ExecStartPre=/bin/chown -R @netdata_user_POST@ @localstatedir_POST@/cache/netdata
|
||||
ExecStartPre=/bin/mkdir -p /run/netdata
|
||||
ExecStartPre=/bin/chown -R netdata:netdata /run/netdata
|
||||
ExecStartPre=/bin/chown -R @netdata_user_POST@ /run/netdata
|
||||
PermissionsStartOnly=true
|
||||
|
||||
# saving a big db on slow disks may need some time
|
||||
|
|
Loading…
Reference in New Issue