Module: PasswdParser

Overview

author: Christoph Hartmann author: Dominik Richter

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



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

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



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

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