Initial support for adding comments that will be emitted when

sudoers is formatted.  Currently adds a comment for the source
sudoRole when converting from ldif -> sudoers.
This commit is contained in:
Todd C. Miller
2018-03-04 07:03:43 -07:00
parent 670d8e6d77
commit 5c36f9dec3
13 changed files with 224 additions and 73 deletions

View File

@@ -150,6 +150,7 @@ TAILQ_HEAD(userspec_list, userspec);
TAILQ_HEAD(member_list, member);
TAILQ_HEAD(privilege_list, privilege);
TAILQ_HEAD(cmndspec_list, cmndspec);
STAILQ_HEAD(comment_list, comment);
/*
* Structure describing a user specification and list thereof.
@@ -158,6 +159,7 @@ struct userspec {
TAILQ_ENTRY(userspec) entries;
struct member_list users; /* list of users */
struct privilege_list privileges; /* list of privileges */
struct comment_list comments; /* optional comments */
int lineno;
char *file;
};
@@ -209,6 +211,11 @@ struct runascontainer {
struct member *runasgroups;
};
struct comment {
STAILQ_ENTRY(comment) entries;
char *str;
};
/*
* Generic structure to hold {User,Host,Runas,Cmnd}_Alias
* Aliases are stored in a red-black tree, sorted by name and type.
@@ -312,6 +319,7 @@ int sudo_display_userspecs(struct userspec_list *usl, struct passwd *pw, struct
/* fmtsudoers.c */
bool sudoers_format_cmndspec(struct sudo_lbuf *lbuf, struct cmndspec *cs, struct cmndspec *prev_cs, bool expand_aliases);
bool sudoers_format_default(struct sudo_lbuf *lbuf, struct defaults *d);
bool sudoers_format_default_line(struct sudo_lbuf *lbuf, struct defaults *d, struct defaults **next, bool expand_aliases);
bool sudoers_format_member(struct sudo_lbuf *lbuf, struct member *m, const char *separator, int alias_type);
bool sudoers_format_privilege(struct sudo_lbuf *lbuf, struct privilege *priv, bool expand_aliases);
bool sudoers_format_userspec(struct sudo_lbuf *lbuf, struct userspec *us, bool expand_aliases);