X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=plugins%2Fsudoers%2Fparse.h;h=3f7c451aeb41e857a9b09c3cca6949a4cb391e2e;hb=98b9fd63cd28a3636a7cd24641b8f497eaadcd50;hp=3b1a5b50dd2a265b420853751f7e91a71b7953d7;hpb=ef258354719127382087c58e5c0f83ee45c958f6;p=debian%2Fsudo diff --git a/plugins/sudoers/parse.h b/plugins/sudoers/parse.h index 3b1a5b5..3f7c451 100644 --- a/plugins/sudoers/parse.h +++ b/plugins/sudoers/parse.h @@ -57,7 +57,17 @@ struct selinux_info { }; /* - * The parses sudoers file is stored as a collection of linked lists, + * Solaris privileges container struct + * Currently just contains permitted and limit privileges. + * It could have PFEXEC and PRIV_AWARE flags added in the future. + */ +struct solaris_privs_info { + char *privs; + char *limitprivs; +}; + +/* + * The parsed sudoers file is stored as a collection of linked lists, * modelled after the yacc grammar. * * Other than the alias struct, which is stored in a red-black tree, @@ -111,6 +121,9 @@ struct cmndspec { #ifdef HAVE_SELINUX char *role, *type; /* SELinux role and type */ #endif +#ifdef HAVE_PRIV_SET + char *privs, *limitprivs; /* Solaris privilege sets */ +#endif }; /* @@ -174,7 +187,7 @@ int hostlist_matches(struct member_list *); bool hostname_matches(char *, char *, char *); bool netgr_matches(char *, char *, char *, char *); bool no_aliases(void); -int runaslist_matches(struct member_list *, struct member_list *); +int runaslist_matches(struct member_list *, struct member_list *, struct member **, struct member **); int userlist_matches(struct passwd *, struct member_list *); bool usergr_matches(char *, char *, struct passwd *); bool userpw_matches(char *, char *, struct passwd *); @@ -185,7 +198,7 @@ void alias_free(void *); void alias_apply(int (*)(void *, void *), void *); void init_aliases(void); void init_lexer(void); -void init_parser(const char *, int); +void init_parser(const char *, bool); int alias_compare(const void *, const void *); #endif /* _SUDO_PARSE_H */