get_ordered_context_list, get_ordered_context_list_with_level, get_default_context,
Contents
Description
This family of functions can be used to obtain either a prioritized list of all reachable security
contexts for a given SELinux user or a single default (highest priority) context for a given SELinux user
for use by login-like programs. These functions takes a SELinux user identity that must be defined in
the SELinux policy as their input, not a Linux username. Most callers should typically first call
getseuserbyname(3) to look up the SELinux user identity and level for a given Linux username and then
invoke one of get_ordered_context_list_with_level() or get_default_context_with_level() with the returned
SELinux user and level as inputs.
get_ordered_context_list() obtains the list of contexts for the specified SELinux user identity that are
reachable from the specified fromcon context based on the global
/etc/selinux/{SELINUXTYPE}/contexts/default_contexts file and the per-user
/etc/selinux/{SELINUXTYPE}/contexts/users/<username> file if it exists. The fromcon parameter may be
NULL to indicate that the current context should be used. The function returns the number of contexts in
the list, or -1 upon errors. The list must be freed using the freeconary(3) function.
get_ordered_context_list_with_level() invokes the get_ordered_context_list() function and applies the
specified level.
get_default_context() is the same as get_ordered_context_list() but only returns a single context which
has to be freed with freecon(3).
get_default_context_with_level() invokes the get_default_context() function and applies the specified
level.
get_default_context_with_role() is the same as get_default_context() but only returns a context with the
specified role, returning -1 if no such context is reachable for the user.
get_default_context_with_rolelevel() invokes the get_default_context_with_role() function and applies the
specified level.
query_user_context() takes a list of contexts, queries the user via stdin/stdout as to which context they
want, and returns a new context as selected by the user (which has to be freed with freecon(3)).
manual_user_enter_context() allows the user to manually enter a context as a fallback if a list of
authorized contexts could not be obtained. Caller must free via freecon(3).
get_default_type() Get the default type (domain) for role and set type to refer to it, which has to be
freed with free.
Name
get_ordered_context_list, get_ordered_context_list_with_level, get_default_context,
get_default_context_with_level, get_default_context_with_role, get_default_context_with_rolelevel,
query_user_context, manual_user_enter_context, get_default_role - determine SELinux context(s) for user
sessions
Return Value
get_ordered_context_list() and get_ordered_context_list_with_level() return the number of contexts in the
list upon success or -1 upon errors. The other functions return 0 for success or -1 for errors.
See Also
selinux(8), freeconary(3), freecon(3), security_compute_av(3), getseuserbyname(3) russell@coker.com.au 1 January 2004 get_ordered_context_list(3)
Synopsis
#include<selinux/selinux.h>#include<selinux/get_context_list.h>intget_ordered_context_list(constchar*user,constchar*fromcon,char***list);intget_ordered_context_list_with_level(constchar*user,constchar*level,constchar*fromcon,char***list);intget_default_context(constchar*user,constchar*fromcon,char**newcon);intget_default_context_with_level(constchar*user,constchar*level,constchar*fromcon,char**newcon);intget_default_context_with_role(constchar*user,constchar*role,constchar*fromcon,char**newcon);intget_default_context_with_rolelevel(constchar*user,constchar*role,constchar*level,constchar*fromcon,char**newcon);intquery_user_context(char**list,char**newcon);intmanual_user_enter_context(constchar*user,char**newcon);intget_default_type(constchar*role,char**type);
