security_compute_av(3) SELinux API documentation security_compute_av(3)
NAME
security_compute_av, security_compute_av_flags, security_compute_create, security_compute_create_name, security_compute_relabel, secu-
rity_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, secu-
rity_context_t *newcon);
int security_compute_create_name_raw(security_context_t scon, security_context_t tcon, security_class_t tclass, const char *objname, secu-
rity_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 *audit-
data);
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 sup-
ported: 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 accord-
ing 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)
russell@coker.com.au 1 January 2004 security_compute_av(3)