diff --git a/users/init.sls b/users/init.sls index d5c1152..b01bc5e 100644 --- a/users/init.sls +++ b/users/init.sls @@ -129,6 +129,17 @@ sudoer-{{ name }}: - group: root - mode: '0440' {% if 'sudo_rules' in user %} +{% for rule in user['sudo_rules'] %} +"validate {{ name }} sudo rule {{ loop.index0 }} {{ name }} {{ rule }}": + cmd.run: + - name: 'visudo -cf - <<<"$rule"' + - env: + # Specify the rule via an env var to avoid shell quoting issues. + - rule: "{{ name }} {{ rule }}" + - require_in: + - file: /etc/sudoers.d/{{ name }} +{% endfor %} + /etc/sudoers.d/{{ name }}: file.append: - text: