Defined Type: systemd::sysuser

Defined in:
manifests/sysuser.pp

Summary

Creates a sysusers.d configuration file

Overview

Examples:

Add a user with systemd-sysusers

systemd::sysuser { 'plato':
  content => 'u plato - "be kind"',
}

Manage /etc/sysusers.d directory with purge disabled

class { 'systemd::sysusers:
  purgedir => false,
}
systemd::sysuser { 'plato':
  content => 'u plato - "be kind"',
}

Parameters:

  • filename (Systemd::Dropin) (defaults to: $name)

    The name of the sysusers file to create

  • ensure (Enum['present', 'absent']) (defaults to: 'present')

    Whether to drop a file or remove it

  • path (Stdlib::Absolutepath) (defaults to: '/etc/sysusers.d')

    The path to the main systemd sysusers.d directory

  • content (Optional[String]) (defaults to: undef)

    The literal content to write to the file

    • Mutually exclusive with ‘$source`

  • source (Optional[String]) (defaults to: undef)

    A ‘File` resource compatible “source“

  • validate (Boolean) (defaults to: true)

    Validate the file ‘systemd-sysusers –dry-run`, The parameter is ignored for systemd version less than 250 where validation is not available.

See Also:

  • systemd-sysusers(8)
  • sysuserssysusers.d(5)


39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'manifests/sysuser.pp', line 39

define systemd::sysuser (
  Enum['present', 'absent'] $ensure = 'present',
  Systemd::Dropin $filename = $name,
  Stdlib::Absolutepath $path = '/etc/sysusers.d',
  Boolean $validate = true,
  Optional[String] $content = undef,
  Optional[String] $source = undef,
) {
  include systemd::sysusers

  $_sysusers_file_ensure = $ensure ? {
    'present' => 'file',
    default   => $ensure,
  }

  $_validate_cmd = ($validate and Integer($facts['systemd_version']) >= 250 and $ensure == 'present') ? {
    true    => '/usr/bin/systemd-sysusers --dry-run %',
    default => undef,
  }

  file { "${path}/${filename}":
    ensure       => $_sysusers_file_ensure,
    content      => $content,
    validate_cmd => $_validate_cmd,
    source       => $source,
    owner        => 'root',
    group        => 'root',
    mode         => '0444',
    notify       => Exec['systemd-sysusers'],
  }
}