logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

get_ordered_context_list, get_ordered_context_list_with_level, get_default_context,

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

See Also