https://lists.altlinux.org/pipermail/community/2019-October/687673.html плагин ping по умолчанию не работает, если используется systemd. Надо добавить в подпакет файл /etc/systemd/system/collectd.service.d/ping-override.conf с таким содержимым: [Service] CapabilityBoundingSet=CAP_NET_RAW Вероятно, надо проверить остальные плагины на необходимость добавления capability. Но надо как-то придумать, чтобы этот файл попадал в систему только в случае наличия systemd.
(In reply to comment #0) > https://lists.altlinux.org/pipermail/community/2019-October/687673.html > > плагин ping по умолчанию не работает, если используется systemd. Надо добавить > в подпакет файл /etc/systemd/system/collectd.service.d/ping-override.conf с > таким содержимым: > > [Service] > > CapabilityBoundingSet=CAP_NET_RAW > > Вероятно, надо проверить остальные плагины на необходимость добавления > capability. Но надо как-то придумать, чтобы этот файл попадал в систему только > в случае наличия systemd. Обратите внимание, что утилите ping CAP_NET_RAW не требуется.
Предлагаю оставить эту настройку системному администратору.
(In reply to comment #2) > Предлагаю оставить эту настройку системному администратору. Ещё бы вспоминать про неё.
(Ответ для Dmitry V. Levin на комментарий #1) > (In reply to comment #0) > > Обратите внимание, что утилите ping CAP_NET_RAW не требуется. Дим, а какому именно ping не нужен CAP_NET_RAW ? Я начал смотреть, можно ли это задачу закрыть как-то иначе, но пока что вижу, что в ping CAP_NET_RAW используется. # strace -e capset ping ya.ru -c 1 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=1<<CAP_SETGID|1<<CAP_SETUID, permitted=1<<CAP_SETGID|1<<CAP_SETUID|1<<CAP_NET_ADMIN|1<<CAP_NET_RAW, inheritable=0}) = 0 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=1<<CAP_NET_ADMIN|1<<CAP_NET_RAW, inheritable=0}) = 0 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=1<<CAP_NET_RAW, permitted=1<<CAP_NET_ADMIN|1<<CAP_NET_RAW, inheritable=0}) = 0 capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=1<<CAP_NET_ADMIN|1<<CAP_NET_RAW, inheritable=0}) = 0 PING ya.ru(ya.ru (2a02:6b8::2:242)) 56 data bytes capset({version=_LINUX_CAPABILITY_VERSION_3, pid=0}, {effective=0, permitted=0, inheritable=0}) = 0 64 bytes from ya.ru (2a02:6b8::2:242): icmp_seq=1 ttl=54 time=8.34 ms --- ya.ru ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 8.337/8.337/8.337/0.000 ms +++ exited with 0 +++
(In reply to Anton Farygin from comment #4) > (Ответ для Dmitry V. Levin на комментарий #1) > > (In reply to comment #0) > > > > Обратите внимание, что утилите ping CAP_NET_RAW не требуется. > > Дим, а какому именно ping не нужен CAP_NET_RAW ? Я начал смотреть, можно ли > это задачу закрыть как-то иначе, но пока что вижу, что в ping CAP_NET_RAW > используется. > > # strace -e capset ping ya.ru -c 1 В этом примере пользователь уже настолько привилегированный, что CAP_NET_RAW уже есть. Но если CAP_NET_RAW нет, то используется другой механизм: # control ping help public: Any user can execute ping command netadmin: Only "netadmin" group members can execute ping command restricted: Only root can execute ping command public_caps: Any user can execute ping command (for containers only) netadmin_caps: Only "netadmin" group members can execute ping command (for containers only) # control ping netadmin $ ls -lL /bin/ping -rwx--s--x 1 root iputils 76784 Aug 6 13:34 /bin/ping $ ping -c1 ya.ru. PING ya.ru (87.250.250.242) 56(84) bytes of data. 64 bytes from ya.ru (87.250.250.242): icmp_seq=1 ttl=53 time=5.41 ms linux$ sed -n '/ping_group_range/,/^$/p' Documentation/networking/ip-sysctl.rst ping_group_range - 2 INTEGERS Restrict ICMP_PROTO datagram sockets to users in the group range. The default is "1 0", meaning, that nobody (not even root) may create ping sockets. Setting it to "100 100" would grant permissions to the single group. "0 4294967295" would enable it for the world, "100 4294967295" would enable it for the users, but not daemons.
ага, понял. Посмотрю ещё внимательнее.