Netzwerk im Udev-Shell-Skript nicht verfügbar

Netzwerk im Udev-Shell-Skript nicht verfügbar

Ich habe das benutzerdefinierte Shell-Skript ausgeführt, wenn ein FireWire-Gerät mit meinem PC verbunden/von ihm getrennt wurde. Das Skript wurde erfolgreich ausgeführt, aber ich habe festgestellt, dass das Netzwerk in diesem Skript nicht verfügbar ist.

Hier ist meine Regel:

[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"

Hier ist mein Bash-Skript:

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

Und dies wird in /root/udev.log gedruckt, nachdem das Gerät getrennt wurde:

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

Gleichzeitig, wenn ich den Befehl manuell von der Konsole aus ausführe:

[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

Ich bin völlig verwirrt. Wie soll das passieren? SELinux deaktiviert. Firewall aktiviert. Fedora 28 aktualisiert.

Irgendwelche Vorschläge?

UDP:

Dank anSchwerkraft- behoben durch ÄnderungIPAddressDeny=beliebigZuIPAddressAllow=beliebigin der Datei systemd-udevd.service.

Antwort1

Der Udev-Dienst ist so konfiguriert, dass er Seccomp-Filter verwendet, um einzuschränken, welche Sockets erstellt werden können (dies wurde jedoch kürzlich gelockert, um Inet/Inet6 zuzulassen), sowie Cgroup-BPF-Socket-Filter, um einzuschränken, an welche IP-Adressen Pakete gesendet/von welchen Pakete empfangen werden können.

Insbesondere die Optionen in systemd-udevd.service:

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

verwandte Informationen