Re: Another change we would like to make to libselinux

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

 



On 02/21/12 16:49, Daniel J Walsh wrote:
> On 02/21/2012 03:43 PM, Stephen Smalley wrote:
>> On Thu, 2012-02-16 at 09:47 -0500, Daniel J Walsh wrote:
>>> Currently we have lots of apps trying to figure out which policy
>>> is installed on the system,  We have a function 
>>> selinux_binary_policy_path which returns a path like 
>>> '/etc/selinux/targeted/policy'
>>>
>>> Then these apps do stuff like:
>>>
>>> VER=`cat /sys/fs/selinux/policyver` while [ -e
>>> '/etc/selinux/targetd/policy. + $VER' ]; do VER=$VER-1 done
>>>
>>> While we have had /sys/fs/selinux/policy for a while now.
>>>
>>> I wanted to add an interface to return this path, but I was
>>> trying to figure out a name selinux_loaded_policy_path for
>>> example, but as Eric pointed out to me,
>>> selinux_binary_policy_path is what most users would expect to
>>> return this.  If you look at the man page it even suggest this.
>>>
>>> man selinux_binary_policy_path ... selinux_binary_policy_path() -
>>> binary policy file loaded into kernel
>>>
>>>
>>> Currently the users of this function are the libselinux package, 
>>> setools and policycorutils (sepolgen-ifgen).
>>>
>>>
>>> I am torn between adding stealing this function to return the 
>>> /sys/fs/selinux/policy and then adding
>>> selinux_installed_policy_path for the original function, then
>>> updating the effected packages.
>>>
>>> The problem with this is we would have different behaviour
>>> between older versions of the library. The other options would be
>>> to come up with a better name for the new function and fix the
>>> man pages.
>>>
>>> Suggestions welcomed.
> 
>> Most applications should not be using /sys/fs/selinux/policy, as
>> that requires the kernel to generate the policy image from its
>> in-core data structures and is expensive.  So you certainly should
>> not change selinux_binary_policy_path() to return that pathname.
>> That also would be an incompatible interface change due to the
>> version suffix, as you note.
> 
>> So I think you need a new interface.  selinux_kernel_policy_path()
>> or selinux_active_policy_path() or selinux_loaded_policy_path()
>> seem fine to me.
> 
> 
> Right now we added selinux_current_policy_path and we are using it as
> the default for seinfo, audit2allow, sepolgen-ifgen

So why is it so critical that the in-kernel policy is used for any of these tools?  I can see that for certain high assurance systems that, for example, want to measure policy integrity, would want this, but for 99.9% of the users, its unnecessary.  Its just extra overhead, when the policy is already on disk.  I think it should be an option to use the kernel policy interface, but not the default.

-- 
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com

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


[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux