Re: Semi-OT / Newbe: Help writing a policy file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 21, 2016 at 10:10 PM, Stephen Smalley <sds@xxxxxxxxxxxxx> wrote:
> On Sun, 2016-12-18 at 21:11 +0200, Gilboa Davara wrote:
>> Hello all,
>>
>> I've got a script that sets the network device IRQ CPU affinity.
>> (irqbalance without the balance...).
>> Due to changes to /proc/irq/XXX/* SELinux targeted policy (?) this
>> script no longer works.
>>
>> - avc message:: avc:  denied  { associate } for  pid=234250
>> comm="dev_irq_fix" name="smp_affinity"
>> scontext=unconfined_u:object_r:sysctl_irq_t:s0
>> tcontext=system_u:object_r:proc_t:s0 tclass=filesystem permissive=0
>>
>> - audit2allow:
>> allow sysctl_irq_t proc_t:filesystem associate;
>
> filesystem associate permission is only check for:
> - mount with context= option,
> - file creation,
> - relabeling of a file.
>
> None of those make sense for /proc/irq/* files AFAIK.
>
> What is your script doing to trigger this denial?
> /proc files are kernel-generated pseudo files, so they aren't files
> that userspace would be creating or relabeling.


Hello,

Sorry for the late reply. Was AFK for a couple of days.
The script is used to attach certain network device IRQ to specific
CPUs using 'echo XXXX > /proc/irq/XXX/smp_affinity'.

- Gilboa


>
>> As I appreciate the need of solid SELinux policy I rather label my
>> script correctly, as opposed to opening the sysctl_irq_t gate to
>> world+dog.
>> As such, I'd like to create a file label that *extends* the generic
>> bin_t label - lets call it dev_manage_t - and will be used to give a
>> certain set of scripts the ability to modify /proc/irq/XXX/
>>
>> Now, I tried creating the following policy, and needless to say it
>> failed, miserably, when I tried to restorecon my script files
>> (EPERM).
>>
>>
>> 1. dev_manage.fc:
>> ------------------------------
>> /sbin/dev_irq_set
>> --    gen_context(unconfined_u:object_r:dev_manage_t,s0)
>> /sbin/dev_irq_fix
>> --    gen_context(unconfined_u:object_r:dev_manage_t,s0)
>>
>>
>> 2. dev_manage.te
>> ------------------------------
>> module dev_manage 1.0;
>>
>> type dev_manage_t;
>>
>> require {
>>     type bin_t;
>>     type sysctl_irq_t;
>>
>>     class file { search read write getattr open };
>>     class dir { search read write getattr open };
>> }
>>
>> allow dev_manage_t sysctl_irq_t:file { search read write getattr open
>> };
>> allow dev_manage_t sysctl_irq_t:dir { search read write getattr open
>> };
>>
>> Can anyone please point me to the right direction? I tried using
>> exiting .te files as reference (E.g. irabalance.te) but it didn't
>> help
>> much.
>>
>> - Gilboa
>> _______________________________________________
>> selinux mailing list -- selinux@xxxxxxxxxxxxxxxxxxxxxxx
>> To unsubscribe send an email to selinux-leave@xxxxxxxxxxxxxxxxxxxxxxx
_______________________________________________
selinux mailing list -- selinux@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to selinux-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux