Сеть недоступна внутри скрипта оболочки udev

Сеть недоступна внутри скрипта оболочки udev

У меня есть пользовательский скрипт оболочки, который выполняется при подключении/отключении устройства FireWire от моего ПК. Скрипт выполнен успешно, но я обнаружил, что сеть недоступна внутри этого скрипта.

Вот мое правило:

[root@ rules.d]# cat 99-superuser.rules  
ACTION=="remove", KERNEL=="fw*1", SUBSYSTEM=="firewire", RUN+="/root/remove.bash"
ACTION=="add", KERNEL=="fw*1", SUBSYSTEM=="firewire",RUN+="/root/add.bash"

Вот мой bash-скрипт:

[root@ rules.d]# cat /root/remove.bash
#!/usr/bin/bash
nslookup superuser.com 8.8.8.8 >> /root/udev.log 2>&1

И вот что он выводит в /root/udev.log после отключения устройства:

[root@ rules.d]# cat /root/udev.log 
;; connection timed out; no servers could be reached

В то же время, если я вручную выполню команду из консоли:

[root@ rules.d]# nslookup superuser.com 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53
Non-authoritative answer:
Name:   superuser.com
Address: 151.101.1.69

Я в полном замешательстве. Как это произойдет? SELinux отключен. Файрвол отключен. Fedora 28 обновлена.

Какие-либо предложения?

UDP-протокол:

Благодарягравитация- исправлено путем измененияIPAddressDeny=любойкIPAddressAllow=любойв файле systemd-udevd.service.

решение1

Служба udev настроена на использование фильтров seccomp для ограничения количества создаваемых сокетов (хотя недавно это ограничение было смягчено и разрешено использование inet/inet6), а также фильтров сокетов cgroup BPF для ограничения количества IP-адресов, на которые могут отправляться/с которых могут приниматься пакеты.

В частности, параметры в systemd-udevd.service:

[Unit]
# Attaches a cgroup-wide eBPF socket filter
IPAddressDeny=any

Связанный контент