apcupsd ignoruje skripty on/off battery

Vážení přátelé,

tohle mi kdysi fungovalo a ani jsem si nevšiml, kdy to přestalo. Pravděpodobně po upgrade na 22.
Skripty onbattery a offbaterry v adresáři /etc/apcupsd samy o sobě fungují když je spustím ručně.
Ale apcupsd mi je po vytažení ze zásuvky nezavolá, alespoň ne tak, aby projevily nějakou činnost.

Skripty vypadají zhruba takto:


#!/bin/sh

/usr/bin/smtp-cli  --host localhost -4          \
     --helo-host   pocitac                      \
     --from "Pocitac <service@domain.tld>"    \
     --to "RNA <pixla@domain.tld>"            \
     --subject "POWER OFF"                      \
     --body-plain /etc/apcupsd/mailoff.txt   

exit 0


Funguje to někomu?
Má s tím někdo také problém?

Selinux?

No, asi jo. Ale celý selinux odstraňovat nechci, už jen proto, že mám přes něj chrůtovaný SFTP. Odstranil jsem modul apcupsd, ale bez účinku (semodule -v -d apcupsd).

Eee… odstranit ten modul asi nepomuze, kdyz ten modul by mel obsahovat politiky prave pro acpupsd. Spis bych v logu hledal jestli to selinux neblokuje kdyz se to pousti pri dane udalosti a pripadne pridal custom, ktery to povoli a nahlasil to jako bug. D. Walsh to jiste do pristiho baliku zahrne, kdyz se mu presne poslou pravidla co se musi pridat.

Tak ten modul jsem opět povolil, restart apcupsd a pár vytažení šňůry ze zásuvky.
Do souboru /var/log/audit/audit.log se nic nepřidá.

Že já blbec jsem se v tom hrabal… 8-/
Zkusil jsem přepnout selinux do permissive modu, kdesi v /etc/selinux/config
pak jsem restartoval …
a víc z toho nedostanu:
Skříňšok .
Co teď s tím?

Tak, počítač už zase počítá. Prostě jsem napsal permissuve místo permissive a neštěstí bylo hotovo. Ještě, že máme Live Fedoru na USB čudlíku.
S tím permissive už apcupsd funguje.
Zdá se, že se selinuxu nelíbí, že z těch skriptů xxxbaterry se volá program smtp-cli.

V logu je toto:


[root@alcyone rna]# cat /var/log/audit/audit.log | grep apcups
type=SERVICE_START msg=audit(1445280990.750:121): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=apcupsd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_STOP msg=audit(1445281442.215:197): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=apcupsd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_START msg=audit(1445282911.132:129): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=apcupsd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_STOP msg=audit(1445283763.104:274): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=apcupsd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=SERVICE_START msg=audit(1445297256.369:125): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=apcupsd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=AVC msg=audit(1445364639.374:7087): avc:  denied  { read } for  pid=19758 comm="smtp-cli" name="urandom" dev="devtmpfs" ino=2057 scontext=system_u:system_r:apcupsd_t:s0 tcontext=system_u:object_r:urandom_device_t:s0 tclass=chr_file permissive=1
type=AVC msg=audit(1445364639.374:7088): avc:  denied  { open } for  pid=19758 comm="smtp-cli" path="/dev/urandom" dev="devtmpfs" ino=2057 scontext=system_u:system_r:apcupsd_t:s0 tcontext=system_u:object_r:urandom_device_t:s0 tclass=chr_file permissive=1
type=AVC msg=audit(1445364639.826:7089): avc:  denied  { getattr } for  pid=19758 comm="smtp-cli" path="/dev/urandom" dev="devtmpfs" ino=2057 scontext=system_u:system_r:apcupsd_t:s0 tcontext=system_u:object_r:urandom_device_t:s0 tclass=chr_file permissive=1
type=AVC msg=audit(1445364640.201:7090): avc:  denied  { name_connect } for  pid=19758 comm="smtp-cli" dest=25 scontext=system_u:system_r:apcupsd_t:s0 tcontext=system_u:object_r:smtp_port_t:s0 tclass=tcp_socket permissive=1
[root@alcyone rna]# 

Ovšem, vůbec netuším, jak selinuxu sdělit, že toto má mlčky tolerovat.
Nemáte pro mě někdo radu?

Nevim sice proc se z toho vola smtp-cli (asi na posilani mailu) ale pokud to nahlasis do bugzilly, tak jak jsem psal lze cekat brzkou opravu.

Jinak na to existuje jakasi sekvence prikazu jak z AVC udelat rovnou prislusnou custom politiku, ale z hlavy je nevim, musis hledat nejake semanage apod.

Jeste jeden detail - selinux neni potreba vypinat pres konfigurak, staci na prikazove radce zatad “setenforce 0” nebo “1” pro zapnuti.