diff --git a/pillar.example b/pillar.example index a44479a..17ef6d5 100644 --- a/pillar.example +++ b/pillar.example @@ -7,6 +7,9 @@ sudoers: sudo: - 'ALL=(ALL) ALL' - 'ALL=(nodejs) NOPASSWD: ALL' + netgroups: + sysadmins: + - 'ALL=(ALL) ALL' defaults: generic: - env_reset @@ -49,3 +52,7 @@ sudoers: groups: bargroup: - 'ALL=(ALL) NOPASSWD: ALL' + extra-file-3: + netgroups: + other_netgroup: + - 'ALL=(ALL) ALL' diff --git a/sudoers/files/sudoers b/sudoers/files/sudoers index affc316..dee2187 100644 --- a/sudoers/files/sudoers +++ b/sudoers/files/sudoers @@ -13,6 +13,7 @@ {%- set runas_list_defaults = defaults.get('runas_list', {}) %} {%- set users = sudoers.get('users', {'root': ['ALL=(ALL:ALL) ALL']}) %} {%- set groups = sudoers.get('groups', {'sudo': ['ALL=(ALL:ALL) ALL']}) %} + {%- set netgroups = sudoers.get('netgroups', {}) %} {%- else %} {%- set defaults = sudoers.get('defaults', {}) %} {%- set generic_defaults = defaults.get('generic', []) %} @@ -22,6 +23,7 @@ {%- set runas_list_defaults = defaults.get('runas_list', {}) %} {%- set users = sudoers.get('users', {}) %} {%- set groups = sudoers.get('groups', {}) %} + {%- set netgroups = sudoers.get('netgroups', {}) %} {%- endif %} {%- set includedir = sudoers.get('includedir', '/etc/sudoers.d') -%} {%- else %} @@ -33,6 +35,7 @@ {%- set runas_list_defaults = defaults.get('runas_list', {}) %} {%- set users = sudoers.get('users', {}) %} {%- set groups = sudoers.get('groups', {}) %} + {%- set netgroups = sudoers.get('netgroups', {}) %} {%- set includedir = sudoers.get('includedir', None) %} {%- endif %} {%- set aliases = sudoers.get('aliases', {}) %} @@ -95,6 +98,13 @@ Runas_Alias {{ name }} = {{ ",".join(runas) }} {%- endfor %} {%- endfor %} +# Netgroup privilege specification +{%- for netgroup,specs in netgroups.items() %} + {%- for spec in specs %} ++{{ netgroup }} {{ spec }} + {%- endfor %} +{%- endfor %} + {% if includedir %} ## Read drop-in files from /etc/sudoers.d ## (the '#' here does not indicate a comment)