Portál AbcLinuxu, 5. května 2025 16:48
udev
pravidlo na spouštění skriptu. Skript se začne provádět, ale kousne se na prvním řádku s příkazem firewall-cmd
(firewall-cmd --query-masquerade
nebo firewall-cmd --add-masquerade
). Pokud skript spustím sám z příkazové řádky jako root, dělá to, co má. Pokud vypnu selinux
, skript dělá to, co má, i když je spuštěn pravidlem v udev
. Se zapnutým selinuxem to však z udev
nefunguje.
grep setroubleshoot /var/log/messages
nenajde nic.
Když se pokusím odchytit výstup z firewall-cmd
pomocí /bin/firewall-cmd --query-masquerade &>> /path/to/mylog
, najdu v logu tento výstup (když ten log sleduji pomocí tail -f
, tak to trvá cca 25 vteřin):
ERROR:dbus.proxies:Introspect error on :1.9:/org/fedoraproject/FirewallD1: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Další řádky skriptu už se neprovedou. To se samozřejmě týká jen situace, kdy je skript spuštěn pravidlem v udev
a při zapnutém selinuxu. Pokud spustím skript ručně nebo pokud mám vypnutý selinux
, tak tam ta chybová hláška není.
Je mi jasné, že musím něco povolit někde v selinuxu, ale netuším co a kde mám hledat, nevěděl by někdo?
type=USER_AVC msg=audit(1413231256.362:421): pid=509 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_return dest=:1.69 spid=468 tpid=3369 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?' type=USER_AVC msg=audit(1413231256.363:422): pid=509 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_return dest=:1.69 spid=468 tpid=3369 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?' type=USER_AVC msg=audit(1413231256.363:423): pid=509 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_return dest=:1.69 spid=468 tpid=3369 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?' type=USER_AVC msg=audit(1413231256.365:424): pid=509 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_return dest=:1.69 spid=468 tpid=3369 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?' type=USER_AVC msg=audit(1413231281.376:425): pid=509 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_return dest=:1.69 spid=468 tpid=3369 scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:udev_t:s0-s0:c0.c1023 tclass=dbus exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'Co s tím dál, to zatím netuším.
/root/my-audit.log
a pak:
#audit2allow -m local -l -i /root/my-audit.log > /root/local.te #cat /root/local.te module local 1.0; require { type udev_t; type firewalld_t; class dbus send_msg; } #============= firewalld_t ============== allow firewalld_t udev_t:dbus send_msg; #checkmodule -M -m -o local.mod local.te #semodule_package -o local.pp -m local.mod #semodule -i local.ppDíky liekovi za nakopnutí, linuxforums za řešení a všem ostatním za přečtení. A povzdech nakonec - pořád mi ten selinux připadá strašně neintuitivní. A řekl bych, že zdaleka nejsem sám.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.