All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Howarth <paul@city-fan.org>
To: Daniel J Walsh <dwalsh@redhat.com>
Cc: Stephen Smalley <sds@tycho.nsa.gov>,
	SE Linux <selinux@tycho.nsa.gov>,
	"Christopher J. PeBenito" <cpebenito@tresys.com>,
	Joshua Brindle <jbrindle@tresys.com>
Subject: Re: Patch to make libselinux shut up when SELinux is disabled.
Date: Mon, 04 Aug 2008 16:06:34 +0100	[thread overview]
Message-ID: <48971AFA.3070708@city-fan.org> (raw)
In-Reply-To: <4880E5E1.8050303@redhat.com>

Daniel J Walsh wrote:
> Stephen Smalley wrote:
>> On Fri, 2008-07-18 at 13:40 -0400, Daniel J Walsh wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Stephen Smalley wrote:
>>>> On Fri, 2008-07-18 at 13:16 -0400, Daniel J Walsh wrote:
>>>> SELinux complains about things like restorecon or rpm when conflicts
>>>> exist in file_context file even when SELinux is disabled.
>>>>
>>>> It should just shut up....
>>>>
>>>>> I think that's the wrong place to do it:
>>>>> - the fact that the application called libselinux at all except to test
>>>>> is_selinux_enabled() when SELinux is disabled is either a bug in the
>>>>> application or an indication that the application wants SELinux behavior
>>>>> regardless,
>>>>> - silencing all log messages coming from libselinux is too broad.
>>>>> And of course, file_contexts conflicts should be caught during policy
>>>>> build time aside from local customizations; if not, then we need to
>>>>> change the policy build process to do that even for modular policy
>>>>> builds.
>>> Well it could be argued that libraries should never write to the terminal...
>> selinux_set_callback() lets the application control that behavior.
>>
>>> Try explaining this to the users we are telling selinux disabled does
>>> not effect their machines.  They just come away with the opinion that
>>> SELinux Sucks and is broken.  Besides we are even complaining when they
>>> are warnings and SELinux is disabled.
>> Which reflects a bug in the application - why is it calling matchpathcon
>> if is_selinux_enabled() <= 0?
>>
>> As far as the warning goes, the log callback does get a type parameter
>> so it can distinguish warnings vs. errors.  But we don't want to hide
>> these kinds of duplications or conflicts - we just want them to be
>> caught earlier.
>>
>>> The problem seems to be a broken genhomedircon, but we don't currently
>>> prevent users (rpm post install scripts)  from adding conflicting file
>>> context in file context.local
>>> plain text document attachment (diff)
>>>
>>> The tools just complain about it after the fact.
>>>
>>> # semanage fcontext -a -t httpd_sys_content_t /tmp
>> Ah, that's interesting.  So the setfiles -c execution by libsemanage
>> only validates the base file contexts.  I'm trying to remember why we
>> did that.  Seems like that could be changed easily enough.
>>
>>> # matchpathcon /etc
>>> # matchpathcon /etc/
>>> /etc/selinux/targeted/contexts/files/file_contexts: Multiple different
>>> specifications for /tmp  (system_u:object_r:httpd_sys_content_t:s0 and
>>> system_u:object_r:tmp_t:s0).
>>> /etc/	system_u:object_r:etc_t:s0
>>>
>>> Nice.
>> That's a real bug in the file_contexts file that shouldn't be hidden
>> from the user.
>>
>> I do agree that a) the application shouldn't be calling matchpathcon if
>> is_selinux_enabled() <= 0, and b) we ought to catch these kinds of
>> errors at policy build time for the base policy, and c) we ought to
>> catch these kinds of errors at semodule/semanage invocation time for
>> local customizations.  That is what we should be fixing.  Not silencing
>> the messenger.
>>
> setfiles works while selinux is disabled.  It could be the kerberos
> libraries, or udev.  I still think warnings on a disabled system should
> be quietly ignored or thrown in syslog at most.  Having the machine
> scream at boot, is a mistake.
> 
> kerberos libraries can not call selinux_set_callback() since they do not
> know if the process has set it already.
> 
> Yes I agree semanage should stop this from happening at compile time.

This may present a problem for policy developers. For instance, I am 
writing new policy for spamass-milter, which currently shares spamd_t 
with spamassassin. I need spamass-milter to transition into a different 
domain, so I need to specify a new context for /usr/bin/spamass-milter 
in my policy module. This conflicts with the existing context for the 
same file (spamd_exec_t) in the main selinux-policy-targeted package and 
I get warnings like this on most rpm/selinux operations:

/etc/selinux/targeted/contexts/files/file_contexts: Multiple different 
specifications for /usr/sbin/spamass-milter 
(system_u:object_r:milter_spamass_exec_t:s0 and 
system_u:object_r:spamd_exec_t:s0).

For whatever reason, the context from my local module "wins" and I get 
the desired result. However, if semanage didn't allow this, I believe 
I'd need to fork the selinux-policy package for the duration of my 
development to prevent the unwanted context specification from being 
used. Or is there some other way around this?

Paul.

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

  reply	other threads:[~2008-08-04 15:06 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-18 17:16 Patch to make libselinux shut up when SELinux is disabled Daniel J Walsh
2008-07-18 17:27 ` Stephen Smalley
2008-07-18 17:40   ` Daniel J Walsh
2008-07-18 17:54     ` Stephen Smalley
2008-07-18 18:34       ` [rfc][patch] setfiles: validate all file_contexts files when using -c Stephen Smalley
2008-07-18 18:37         ` [rfc][patch] setfiles: validate all file_contexts files whenusing -c Joshua Brindle
2008-07-18 18:47           ` Stephen Smalley
2008-07-18 19:09             ` [rfc][patch] setfiles: validate all file_contexts fileswhenusing -c Joshua Brindle
2008-07-18 19:10               ` Stephen Smalley
2008-07-18 19:12                 ` [rfc][patch] setfiles: validate all file_contextsfileswhenusing -c Joshua Brindle
2008-07-18 19:23                   ` Stephen Smalley
2008-07-18 19:01         ` [patch] libselinux: handle conflicting file contexts as a fatal error Stephen Smalley
2008-07-18 19:04           ` Daniel J Walsh
2008-07-18 19:09             ` [patch v2] libselinux: handle duplicate file context entries " Stephen Smalley
2008-07-18 18:50       ` Patch to make libselinux shut up when SELinux is disabled Daniel J Walsh
2008-08-04 15:06         ` Paul Howarth [this message]
2008-08-04 17:42           ` Daniel J Walsh
2008-08-05 13:50             ` Paul Howarth
2008-08-04 17:51           ` Stephen Smalley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48971AFA.3070708@city-fan.org \
    --to=paul@city-fan.org \
    --cc=cpebenito@tresys.com \
    --cc=dwalsh@redhat.com \
    --cc=jbrindle@tresys.com \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.