/ansible.sudoers

Manage sudoers and sudoers.d in Debian-like systems.

Primary LanguageJinjaMIT LicenseMIT

Ansible Role: sudoers

license Ansible Role Ansible Role Ansible Quality Score GitHub release (latest SemVer) GitHub Workflow Status (branch)

Description

Manage sudoers and sudoers.d in Linux.

Installation

ansible-galaxy install arillso.sudoers

Requirements

None

Role Variables

sudoers_package

Name of package

sudoers_package: sudo

sudoers_sudoers

sudores file declarations

sudoers_sudoers_file: '/etc/sudoers'

sudoers_use_os_defaults

Includes default rules that ship with target distro (boolean)

sudoers_use_os_defaults: true

sudoers_sudoers

Default configuration options

sudoers_sudoers.defaults

default configuration options

sudoers_sudoers:
  defaults: []

sudoers_sudoers.defaults_*

Support for additional default types.

Sudoers manual excerpt:

Default_Type ::= 'Defaults' |
                 'Defaults' '@' Host_List |
                 'Defaults' ':' User_List |
                 'Defaults' '!' Cmnd_List |
                 'Defaults' '>' Runas_List

Variables:

sudoers_sudoers:
  defaults_host: []
  defaults_user: []
  defaults_cmnd: []
  defaults_runas: []

sudoers_sudoers.host_aliases

A list of aliases of type Host_Alias

Variable Comments (type)
sudoers_sudoers.host_aliases.name: Name of the alias
sudoers_sudoers.host_aliases.members Member(s) of the alias

sudoers_sudoers.user_aliases

A list of aliases of type User_Alias

Variable Comments (type)
sudoers_sudoers.user_aliases.name Name of the alias
sudoers_sudoers.user_aliases.members Member(s) of the alias

sudoers_sudoers.cmnd_aliases

A list of aliases of type Cmnd_Alias

Variable Comments (type)
sudoers_sudoers.cmnd_aliases.name Name of the alias
sudoers_sudoers.cmnd_aliases.members Member(s) of the alias

sudoers_sudoers.runas_aliases

A list of aliases of type Runas_Alias

Variable Comments (type)
sudoers_sudoers.runas_aliases.name Name of the alias
sudoers_sudoers.runas_aliases.members Member(s) of the alias

sudoers_sudoers.privileges`

List of privileges

Variable Comments (type)
sudoers_sudoers.privileges.name Name of user or group (group should be prefixed with '%')
sudoers_sudoers.privileges.entry A privilege entry

Example

sudoers_sudoers:
  defaults:
    - env_reset
    - exempt_group=sudo
    - mail_badpass
    - secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
  defaults_host:
    - host_list: SERVERS
      entry: log_year, logfile=/var/log/sudo.log
  defaults_user: 
    - user_list: FULLTIMERS
      entry: '!lecture'
  defaults_cmnd: 
    - cmnd_list: PAGERS
      entry: noexec
  defaults_runas:
    - runas_list: root
      entry: '!set_logname'
  host_aliases:
    - name: CUNETS
      members: 128.138.0.0/255.255.0.0
    - name: SERVERS
      members: master, mail, www, ns
  user_aliases:
    - name: FULLTIMERS
      members: millert, mikef, dowdy
    - name: PARTTIMERS
      members: bostley, jwfox, crawl
  cmnd_aliases:
    - name: KILL
      members: /usr/bin/kill
    - name: HALT
      members: /usr/sbin/halt
  privileges:
    - name: root
      entry: 'ALL=(ALL:ALL) ALL'
    - name: '%admin'
      entry: 'ALL=(ALL) ALL'
    - name: '%sudo'
      entry: 'ALL=NOPASSWD:ALL'

sudoers_sudoers_d_files

/etc/sudoers.d/* file(s) declarations

sudoers_sudoers_d_files.key

The name of the sudoers configuration file (e.g vagrant)

sudoers_sudoers_d_files:
  key:
Variable Default Comments (type)
sudoers_sudoers_d_files.key.defaults [] Default configuration options
sudoers_sudoers_d_files.key.defaults_host [] Defaults@ configuration options
sudoers_sudoers_d_files.key.defaults_user [] Defaults: configuration options
sudoers_sudoers_d_files.key.defaults_cmnd [] Defaults! configuration options
sudoers_sudoers_d_files.key.defaults_runas [] Defaults> configuration options
sudoers_sudoers_d_files.key.host_aliases [] A list of aliases of type Host_Alias
sudoers_sudoers_d_files.key.host_aliases.name Name of the alias
sudoers_sudoers_d_files.key.host_aliases.members Member(s) of the alias
sudoers_sudoers_d_files.key.user_aliases [] A list of aliases of type User_Alias
sudoers_sudoers_d_files.key.user_aliases.name Name of the alias
sudoers_sudoers_d_files.key.user_aliases.members Member(s) of the alias
sudoers_sudoers_d_files.key.cmnd_aliases [] A list of aliases of type Cmnd_Alias
sudoers_sudoers_d_files.key.cmnd_aliases.name Name of the alias
sudoers_sudoers_d_files.key.cmnd_aliases.members Member(s) of the alias
sudoers_sudoers_d_files.key.runas_aliases [] A list of aliases of type Runas_Alias
sudoers_sudoers_d_files.key.runas_aliases.name Name of the alias
sudoers_sudoers_d_files.key.runas_aliases.members Member(s) of the alias
sudoers_sudoers_d_files.key.privileges [] List of privileges
sudoers_sudoers_d_files.key.privileges.name Name of user or group (group should be prefixed with '%')
sudoers_sudoers_d_files.key.privileges.entry A privilege entry

Example

sudoers_sudoers_d_files:
  test:
    defaults:
      - env_reset
      - exempt_group=sudo
      - mail_badpass
      - secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    defaults_user:
      - user_list: test
        entry: '!authenticate'
    host_aliases:
      - name: WORKSTATIONS
        members: 128.138.0.0/255.255.0.0
    privileges:
      - name: test
        entry: 'ALL=(ALL:ALL) ALL'

Dependencies

None

Example Playbook

---
- hosts: all
  roles:
    - arillso.sudoers

Author

License

This project is under the MIT License. See the LICENSE file for the full license text.

Copyright

(c) 2022, Arillso