diff --git a/README.rst b/README.rst index 27d508a..2b244f5 100644 --- a/README.rst +++ b/README.rst @@ -1,7 +1,7 @@ sudoers ======= -Set up the sudoers file +Set up the sudoers file (WORK IN PROGRESS) .. note:: diff --git a/pillar.example b/pillar.example new file mode 100644 index 0000000..04621c4 --- /dev/null +++ b/pillar.example @@ -0,0 +1,10 @@ +sudoers: + users: + # Simple user + johndoe: + - ALL: ALL + # List of users + janedoe,marydoe: + # Multiple hosts + - ALL: ALL + #include: /etc/sudoers.d diff --git a/sudoers/files/sudoers b/sudoers/files/sudoers new file mode 100644 index 0000000..ddea2af --- /dev/null +++ b/sudoers/files/sudoers @@ -0,0 +1,22 @@ +{% set sudoers = pillar.get('sudoers', {}) %} +{% set includedir = sudoers.get('includedir', None) %} + +# +# This file is managed by salt +# +# Host alias specification + +# User alias specification + +# Cmnd alias specification + +# User privilege specification +{{ users }} + +# Group privilege specification + +{% if includes %} +includedir {{ includedir }} +{% else %} +#includedir /etc/sudoers.d +{% endif %} diff --git a/sudoers/files/sudoers_prepare.py b/sudoers/files/sudoers_prepare.py new file mode 100644 index 0000000..428bdbc --- /dev/null +++ b/sudoers/files/sudoers_prepare.py @@ -0,0 +1,5 @@ +import salt.renderers.jinja as jinja + +def run(): + sudoers = pillar.get('sudoers', {}) + return jinja.render('sudoers/files/sudoers', users=sudoers.get('users', {})) diff --git a/sudoers/init.sls b/sudoers/init.sls new file mode 100644 index 0000000..fbb9fdb --- /dev/null +++ b/sudoers/init.sls @@ -0,0 +1,10 @@ +sudo: + pkg.installed + +/etc/sudoers.test: + file.managed: + - user: root + - group: root + - mode: 440 + - template: py + - source: salt://sudoers/files/sudoers_prepare.py