Re: access decision API

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

 



On Wed, 2010-01-27 at 18:10 +0330, michel m wrote:
> thanks for guidance, but here I am with a question. what should be
> used as object class in avc_has_perm(3) when using it for
> inter-object. is there any sample for inter-object access decision?
> can it be null?

The class value would be the class of the target object.
Example in the kernel:
 return avc_has_perm(newsid, sbsec->sid,
                            SECCLASS_FILESYSTEM,
                            FILESYSTEM__ASSOCIATE, &ad);

This controls the relationship between a file security context and the
security context of the containing filesystem.

> 
> on the other hand, access decision taken by avc_has_perm(), does it
> include MLS too?
> 
> regards.
> 
> On Wed, Jan 27, 2010 at 1:26 AM, Stephen Smalley <sds@xxxxxxxxxxxxx>
> wrote:
>         
>         On Tue, 2010-01-26 at 16:34 -0500, Stephen Smalley wrote:
>         > On Wed, 2010-01-27 at 00:50 +0330, michel m wrote:
>         > > Hi,
>         > > I have some data in userspace that I am keeping its
>         security
>         > > context.but as I want to write this data on some file in
>         OS, I need to
>         > > consult with security server if such data is allowed to be
>         written on
>         > > the file.
>         > > I would like to know if there is any API that let me do
>         such a
>         > > scenario, that is input source and destination security
>         context (both
>         > > of them security context,not a domain context) and returns
>         access
>         > > decision. I am familiar with avc_has_perm(3), but seems to
>         be not
>         > > correct solution because it gets domain context as the
>         first argument.
>         >
>         > avc_has_perm() can be used with any pair of security
>         contexts.  Typical
>         > usage is to pass the security context of a subject/process
>         as the first
>         > argument, but not always (e.g. there are some permission
>         checks that
>         > control inter-object relationships), and that is not a
>         requirement.
>         
>         
>         Example usage of the userspace AVC can be found in the
>         XSELinux
>         extension, see:
>         http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xselinux_hooks.c
>         http://cgit.freedesktop.org/xorg/xserver/tree/Xext/xselinuxint.h
>         
>         The modern usage is to call:
>         1) selinux_set_callback() to set up the callback functions for
>         libselinux to use for logging/auditing or to notify the
>         application of
>         changes to enforcing mode or policy.
>         2) selinux_set_mapping() to set up a dynamic mapping for the
>         object
>         classes and permissions so that your application does not
>         depend on
>         fixed values for them in the policy, and
>         3) avc_open() to initialize the AVC.
>         
>         Then you can proceed to call avc_context_to_sid() and
>         avc_has_perm() as
>         appropriate.
>         
>         If you don't need caching, you can directly call
>         security_compute_av();
>         however this pushes responsibility for checking the particular
>         permission bit, checking for and handling permissive
>         mode/domains, and
>         generating an avc audit message to your application.   There
>         has been a
>         prior request to introduce a simpler interface for programs
>         that do not
>         require caching, see:
>         https://bugzilla.redhat.com/show_bug.cgi?id=518268
>         
>         
>         --
>         Stephen Smalley
>         National Security Agency
>         
>         
> 
-- 
Stephen Smalley
National Security Agency


--
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