Provided by: libselinux1-dev_2.2.2-1ubuntu0.1_amd64 bug

NAME

       security_compute_av,          security_compute_av_flags,          security_compute_create,
       security_compute_create_name,      security_compute_relabel,      security_compute_member,
       security_compute_user, security_get_initial_context - query the SELinux policy database in
       the kernel

SYNOPSIS

       #include <selinux/selinux.h>
       #include <selinux/flask.h>

       int security_compute_av(security_context_t scon, security_context_t tcon, security_class_t
       tclass, access_vector_t requested, struct av_decision *avd);

       int     security_compute_av_raw(security_context_t    scon,    security_context_t    tcon,
       security_class_t tclass, access_vector_t requested, struct av_decision *avd);

       int   security_compute_av_flags(security_context_t    scon,    security_context_t    tcon,
       security_class_t tclass, access_vector_t requested, struct av_decision *avd);

       int   security_compute_av_flags_raw(security_context_t   scon,   security_context_t  tcon,
       security_class_t tclass, access_vector_t requested, struct av_decision *avd);

       int    security_compute_create(security_context_t    scon,    security_context_t     tcon,
       security_class_t tclass, security_context_t *newcon);

       int    security_compute_create_raw(security_context_t   scon,   security_context_t   tcon,
       security_class_t tclass, security_context_t *newcon);

       int   security_compute_create_name(security_context_t   scon,   security_context_t   tcon,
       security_class_t tclass, const char *objname, security_context_t *newcon);

       int  security_compute_create_name_raw(security_context_t  scon,  security_context_t  tcon,
       security_class_t tclass, const char *objname, security_context_t *newcon);

       int    security_compute_relabel(security_context_t    scon,    security_context_t    tcon,
       security_class_t tclass, security_context_t *newcon);

       int   security_compute_relabel_raw(security_context_t   scon,   security_context_t   tcon,
       security_class_t tclass, security_context_t *newcon);

       int    security_compute_member(security_context_t    scon,    security_context_t     tcon,
       security_class_t tclass, security_context_t *newcon);

       int    security_compute_member_raw(security_context_t   scon,   security_context_t   tcon,
       security_class_t tclass, security_context_t *newcon);

       int    security_compute_user(security_context_t    scon,     const     char     *username,
       security_context_t **con);

       int    security_compute_user_raw(security_context_t    scon,    const    char   *username,
       security_context_t **con);

       int security_get_initial_context(const char *name, security_context_t *con);

       int security_get_initial_context_raw(const char *name, security_context_t *con);

       int selinux_check_access(const security_context_t  scon,  const  security_context_t  tcon,
       const char *class, const char *perm, void *auditdata);

       int selinux_check_passwd_access(access_vector_t requested);

       int checkPasswdAccess(access_vector_t requested);

DESCRIPTION

       security_compute_av() queries whether the policy permits the source context scon to access
       the target context tcon via class tclass with the requested access vector.   The  decision
       is returned in avd.

       security_compute_av_flags()  is identical to security_compute_av but additionally sets the
       flags field of avd.  Currently one flag is supported: SELINUX_AVD_FLAGS_PERMISSIVE,  which
       indicates the decision is computed on a permissive domain.

       security_compute_create() is used to compute a context to use for labeling a new object in
       a particular class based on a SID pair.

       security_compute_create_name() is identical to security_compute_create()  but  also  takes
       name of the new object in creation as an argument.  When TYPE_TRANSITION rule on the given
       class and a SID pair has object name extension, we shall  be  able  to  obtain  a  correct
       newcon according to the security policy. Note that this interface is only supported on the
       linux 2.6.40 or later.  In the older kernel, the object name will be simply ignored.

       security_compute_relabel() is used to compute the new context to use  when  relabeling  an
       object,  it  is  used in the pam_selinux.so source and the newrole source to determine the
       correct label for the tty at login time, but can be used for other things.

       security_compute_member()  is  used  to  compute  the  context  to  use  when  labeling  a
       polyinstantiated object instance.

       security_compute_user()  is used to determine the set of user contexts that can be reached
       from a source context. It is mainly used by get_ordered_context_list().

       security_get_initial_context() is used to get the context of  a  kernel  initial  security
       identifier specified by name

       security_compute_av_raw(), security_compute_av_flags_raw(), security_compute_create_raw(),
       security_compute_create_name_raw(),                        security_compute_relabel_raw(),
       security_compute_member_raw(),               security_compute_user_raw()               and
       security_get_initial_context_raw() behave identically to their non-raw counterparts but do
       not perform context translation.

       selinux_check_access()  is  used  to check if the source context has the access permission
       for the specified class on the target context.

       selinux_check_passwd_access() is used to check for  a  permission  in  the  passwd  class.
       selinux_check_passwd_access()  uses  getprevcon()  for  the  source  and  target  security
       contexts.

       checkPasswdAccess() is a deprecated alias of the selinux_check_passwd_access() function.

RETURN VALUE

       Returns zero on success or -1 on error.

SEE ALSO

       selinux(8), getcon(3), getfilecon(3), get_ordered_context_list(3)