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


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

int get_ordered_context_list(const char *user, char *fromcon, char ***list);

int get_ordered_context_list_with_level(const char *user, const char *level, char *fromcon, char ***list);

int get_default_context(const char *user, char *fromcon, char **newcon);

int get_default_context_with_level(const char *user, const char *level, char *fromcon, char **newcon);

int get_default_context_with_role(const char *user, const char *role, char *fromcon, char **newcon);

int get_default_context_with_rolelevel(const char *user, const char *role, const char *level, char *fromcon, char **newcon);

int query_user_context(char **list, char **newcon);

int manual_user_enter_context(const char *user, char **newcon);

int get_default_type(const char *role, char **type);


get_ordered_context_list() invokes the security_compute_user(3) function to obtain the list of contexts for the specified user that are reachable from the specified fromcon context.  The function then orders the resulting list 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.

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)

Referenced By

default_contexts(5), default_type(5), failsafe_context(5), getseuserbyname(3), security_compute_av(3), user_contexts(5).

The man pages get_default_context(3), get_default_context_with_level(3), get_default_context_with_role(3), get_default_context_with_rolelevel(3), get_default_type(3), get_ordered_context_list_with_level(3), manual_user_enter_context(3) and query_user_context(3) are aliases of get_ordered_context_list(3).

1 January 2004 SELinux