SELinux blokuje spuštění scriptu (F23)

Zdravím, mám problém s SELinuxem na Fedoře 23. Po každém bootu se mi nastaví nová mac adresa pro wlp2s0 interface (wifi) a chtěl bych logovat jaká mac adresa to je. Chtěl jsem to vyřešit jednoduchým scriptem: cat /sys/class/net/wlp2s0/address >> /cesta/k/logu.
Script jsem umístil do /etc/NetworkManager/dispatcher.d/101-log_current_mac.sh udělal chmod +x a zkusil spustit ručně. Vše fungovalo jak mělo, ale když se script pustí automaticky, tak vyskočí hláška SELinuxu:
SELinux has detected a problem:
Source of problem: sh
Attempted access: append
on file: macaddr.log

Nemohl by mi někdo poradit jak SELinuxu vysvětlit že ten script se spouštět smí? Nechci vypínat celý SELinux jen kvůli jednomu scriptíčku.
Díky :wink:

Pokud to chápu dobře, tak není ani tak problém ve spuštění scriptu, ten se spustí, ale v přístupu do macaddr.log souboru, kam se snaží zapsat. Kde máš ten log uložen? resp jaká je /cesta/k/logu

Cestak logu je: /own/logs/system/macaddr.log.
Nastavil jsem práva u toho macaddr na 777 a nic.

Nebude ani tak právy chown jako security contextem. Zkus kouknout na ll -Z (respektive ls -Z) pro tu cestu respektive pro ten soubor.

Script má unconfined_u:object_r:NetworkManager_initrc_exec_t:s0 101-log_current_mac.sh a log file: unconfined_u:object_r:etc_runtime_t:s0 macaddr.log
.
Zkoušel jsem to nějak změnit u toho scriptu, protože ostatní věci v té složce mají prefix system_u:object_r:NetworkManager_initrc_exec_t:s0, ale nešlo mi to.
Na superuseru jsem našel, že tohle: sudo semanage fcontext -a -t by mělo pomoct, ale nic.

Změna by měla být provedena stylem chcon -t <složka/soubor> (případně ještě -R - rekurzivně na složku, viz man chcon). Jaký ale kontext je už vyšší dívčí a - za předpokladu, že problém je opravdu tady - se na to budu muset podívat podrobněji, až budu doma. Tak jako tak tohle může být slepá ulička. Ještě jsem se s tím nesetkal a Fedoru 23 zatím nikde nemám, takže budu muset nahodit do virtuálky.

Tak na doplnění. Script funguje, SELinux už neřve. Netuším proč :smiley: Jestli pomohl restart po těch věcech co jsem zkoušel nevím, ale u ot jede. Ale zjistil jsem že to není ideální řešení protože script se spouští víckrát než jen při připojení do sítě. Takže ten soubor s logama má v sobě jednu mac adresu třeba 20x. Tudíž to stejně musím změnit.
Zkoušel jsem script spouštět hne dpo startu (v /etc/init.d/ a ~/.config/autostart) ale tam ještě není mac adresa vygenerovaná. ASpoň myslím, protože se nic nezaloguje. Tak ho nechám na stejným místě, jen si pohlídám aby logoval jen jednou, akorát musím ještě vymyslet jak to udělat.

Závěr:
Script jsem umístil do /etc/NetworkManager/dispatch.d/pre-up/ a trochu jsem ho upravil. Kdo by chtěl může ho najít na adrese https://github.com/lukas-srom/fedora_conf/blob/master/custom_scripts/16-log_mac.sh. Problém se SELinuxem se nějak vyřešil sám, ale budu se s ním blíže seznámit.

A děkuji za ochotnou pomoc, které se mi zde dostalo, to jsem na českém fóru opravdu nečekal.

System tusim spousti periodicky neco jako restorecon coz opravuje nastaveni kontextu pro selinux. Je dost dobre mozne, ze ti ty kontexty prenastavil.