Defined Type: nessus::user

Defined in:
manifests/user.pp

Overview

Parameters:

  • ensure (Any) (defaults to: 'present')
  • password (Any) (defaults to: undef)
  • user_base (Any) (defaults to: '/opt/nessus/var/nessus/users')
  • admin (Any) (defaults to: false)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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
# File 'manifests/user.pp', line 1

define nessus::user (
  $ensure     = 'present',
  $password   = undef,
  $user_base  = '/opt/nessus/var/nessus/users',
  $admin      = false,
) {

  validate_re($ensure, ['^present', '^absent'], "nessus::user \$ensure must be present or absent, not ${ensure}")
  validate_bool($admin)
  validate_string($password)
  validate_string($user_base)


  File {
    owner   => 'root',
    group   => 'root',
    mode    => '0600',
    require => Package['nessus'],
  }

  # Make sure that there is a toplevel user dir.
  if ! defined(File[$user_base]) {
    file { $user_base:
      ensure  => directory,
    }
  }

  if $ensure == 'present' {
    # create our directory structure for a user
    file { [ "${user_base}/${title}", "${user_base}/${title}/auth", "${user_base}/${title}/reports" ]:
      ensure => directory,
    }

    # Set the password.  It's recorded in clear, but the file is only readable by root.
    file { "${user_base}/${title}/auth/password":
      ensure  => file,
      content => "${password}\n",
      notify  => Service['nessus'],
    }

    # For the clear txt password to work, we need to ensure there is no hash file.
    file { "${user_base}/${title}/auth/hash":
      ensure => absent,
      notify => Service['nessus'],
    }

    # if we are an admin, just touch the admin file
    file { "${user_base}/${title}/auth/admin":
      ensure => $admin ? {
        true    => file,
        default => absent,
      },
      notify => Service['nessus'],
    }

    file { "${user_base}/${title}/auth/rules":
      ensure => file,
    }

  } elsif $ensure == 'absent' {
    file { "${user_base}/${title}":
      ensure  => absent,
      backup  => false,
      recurse => true,
      notify  => Service['nessus'],
    }
  }
}