Module: PasswdParser

Included in:
Inspec::Resources::FreeBSDUser, Inspec::Resources::LinuxUser, Inspec::Resources::Passwd
Defined in:
lib/inspec/utils/parser.rb

Instance Method Summary collapse

Instance Method Details

#parse_passwd(content) ⇒ Array

Parse /etc/passwd files.

Parameters:

  • content (String)

    the raw content of /etc/passwd

Returns:

  • (Array)

    Collection of passwd entries



8
9
10
11
12
13
14
# File 'lib/inspec/utils/parser.rb', line 8

def parse_passwd(content)
  content.to_s.split("\n").map do |line|
    next if line[0] == "#"

    parse_passwd_line(line)
  end.compact
end

#parse_passwd_line(line) ⇒ Hash

Parse a line of /etc/passwd

Parameters:

  • line (String)

    a line of /etc/passwd

Returns:

  • (Hash)

    Map of entries in this line



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/inspec/utils/parser.rb', line 20

def parse_passwd_line(line)
  x = line.split(":")
  {
    "user" => x.at(0),
    "password" => x.at(1),
    "uid" => x.at(2),
    "gid" => x.at(3),
    "desc" => x.at(4),
    "home" => x.at(5),
    "shell" => x.at(6),
  }
end