blob: a441d1ac2b7dc04253c4e23559a589a8db8c1f2d [file] [log] [blame]
{%- from "linux/map.jinja" import system, at with context %}
{%- if at.get('enabled', false) %}
at_packages:
pkg.installed:
- names: {{ at.pkgs }}
at_services:
service.running:
- enable: true
- names: {{ at.services }}
- require:
- pkg: at_packages
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
{%- set allow_users = [] %}
{%- for user_name, user_params in at.get('user', {}).items() %}
{%- set user_enabled = user_params.get('enabled', false) and
system.get('user', {}).get(
user_name, {'enabled': true}).get('enabled', true) %}
{%- if user_enabled %}
{%- do allow_users.append(user_name) %}
{%- endif %}
{%- endfor %}
etc_at_allow:
{%- if allow_users %}
file.managed:
- name: /etc/at.allow
- template: jinja
- source: salt://linux/files/cron_users.jinja
- user: root
- group: root
- mode: 0600
- defaults:
users: {{ allow_users | yaml }}
- require:
- cron_packages
{%- else %}
file.absent:
- name: /etc/at.allow
{%- endif %}
{#
/etc/at.deny should be absent to comply with
CIS 5.1.8 Ensure at/cron is restricted to authorized users
#}
etc_at_deny:
file.absent:
- name: /etc/at.deny
{%- else %}
fake_linux_system_at:
test.nop:
- comment: Fake state to satisfy 'require sls:linux.system.at'
{%- endif %}