Re: Trying to set context on a FIFO for nut_upsmon_t process

Henry Zhang <[email protected]> Fri, 9 Jun 2023 09:02:34 -0700
Newsgroups gmane.linux.redhat.fedora.selinux
Message-ID <CANTW0yqqg62xd5he9RF8Rz8MVU10XzXYe6_7VHnOSJP7cNw-6A@mail.gmail.com>
Robert,

Also if you set selinux to be permissive=1. Your application will go
through and you may get a group of denied messages in your
/var/log/audit/audit.log one time.
Then you update your policy based on the audit.log and set selinux back to
enforce mode (permissive=0)

---henry

On Fri, Jun 9, 2023 at 8:49 AM Henry Zhang <[email protected]> wrote:

> Robert,
>
> based on your audit.log message, the new policy should be
> allow nut_upsmon_t user_tmp_t:fifo_file getattr
>
> your policy:
> allow nut_upsmon_t nut_upsmon_t:fifo_file { append getattr ioctl lock open
> read write };
>
> destination type should be user_tmp_t instead of nut_upsmon_t
>
> Normally, after updating your policy, your operation should go through
>
> ---henry
>
> On Thu, Jun 8, 2023 at 2:49 PM Robert Nichols <[email protected]>
> wrote:
>
>> On 6/8/23 16:12, Henry Zhang wrote:
>> > Robert,
>> >
>> > If your application fails due to selinux policy, you could check
>> /var/log/audit/audit.log.
>> > If the audit.log contains denial, please post or attach the log here.
>> > It should show what kind of policy your application needed in order to
>> execute it.
>> >
>> > ---henry
>>
>> Since you asked, see below. I really don't want to allow a nut_upsmon_t
>> process to write to any user_tmp_t file. That's adding unnecessary
>> privilege. The right solution is to give the FIFO a label that allows the
>> access. I used sesearch to find out what target types would be appropriate,
>> and found:
>>
>>     allow nut_upsmon_t nut_upsmon_t:fifo_file { append getattr ioctl lock
>> open read write };
>>
>> Note that the error is for "getattr", not "write". The script is checking
>> that the name refers to a FIFO before writing to it. The same problem would
>> occur for a "write" attempt.
>>
>> chcon fails when trying to set that context on the FIFO, and when it
>> tries I see a message that nut_upsmon_t is not a valid file type. What is
>> it, then? Perhaps valid on a FIFO but not on an ordinary file?? The above
>> "allow" rule shows what I need, but there is no way to set it.
>>
>> SELinux is preventing /usr/bin/bash from getattr access on the fifo_file
>> /tmp/.alertFIFO2.
>>
>> *****  Plugin catchall (100. confidence) suggests
>>  **************************
>>
>> If you believe that bash should be allowed getattr access on the
>> .alertFIFO2 fifo_file by default.
>> Then you should report this as a bug.
>> You can generate a local policy module to allow this access.
>> Do
>> allow this access for now by executing:
>> # ausearch -c 'UPS-alert' --raw | audit2allow -M my-UPSalert
>> # semodule -X 300 -i my-UPSalert.pp
>>
>> Additional Information:
>> Source Context                system_u:system_r:nut_upsmon_t:s0
>> Target Context                unconfined_u:object_r:user_tmp_t:s0
>> Target Objects                /tmp/.alertFIFO2 [ fifo_file ]
>> Source                        UPS-alert
>> Source Path                   /usr/bin/bash
>> Port                          <Unknown>
>> Host                          omega-3x.local
>> Source RPM Packages
>> Target RPM Packages
>> SELinux Policy RPM
>> selinux-policy-targeted-3.14.3-117.el8.noarch
>> Local Policy RPM
>> selinux-policy-targeted-3.14.3-117.el8.noarch
>> Selinux Enabled               True
>> Policy Type                   targeted
>> Enforcing Mode                Enforcing
>> Host Name                     omega-3x.local
>> Platform                      Linux omega-3x.local
>> 4.18.0-477.13.1.el8_8.x86_64
>>                                #1 SMP Tue May 30 22:15:39 UTC 2023 x86_64
>> x86_64
>> Alert Count                   4
>> First Seen                    2023-06-08 16:32:07 CDT
>> Last Seen                     2023-06-08 16:32:17 CDT
>> Local ID                      87bfa152-e72e-4bff-872e-2ccd882f0d48
>>
>> Raw Audit Messages
>> type=AVC msg=audit(1686259937.20:17430): avc:  denied  { getattr } for
>> pid=860169 comm="UPS-alert" path="/tmp/.alertFIFO2" dev="tmpfs"
>> ino=19804366 scontext=system_u:system_r:nut_upsmon_t:s0
>> tcontext=unconfined_u:object_r:user_tmp_t:s0 tclass=fifo_file permissive=0
>>
>>
>> Hash: UPS-alert,nut_upsmon_t,user_tmp_t,fifo_file,getattr
>>
>>
>>
>>
>> --
>> Bob Nichols     "NOSPAM" is really part of my email address.
>>                  Do NOT delete it.
>>
>> _______________________________________________
>> selinux mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>> Fedora Code of Conduct:
>> https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
>> List Archives:
>> https://lists.fedoraproject.org/archives/list/[email protected]
>> Do not reply to spam, report it:
>> https://pagure.io/fedora-infrastructure/new_issue
>>
>

_______________________________________________
selinux mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue