Class: Inspec::Resources::LinuxUser

Inherits:
UnixUser show all
Includes:
CommentParser, PasswdParser
Defined in:
lib/inspec/resources/users.rb

Direct Known Subclasses

SolarisUser

Instance Attribute Summary

Attributes inherited from UnixUser

#id_cmd, #inspec, #list_users_cmd

Attributes inherited from UserInfo

#inspec

Instance Method Summary collapse

Methods included from CommentParser

#parse_comment_line

Methods included from PasswdParser

#parse_passwd, #parse_passwd_line

Methods inherited from UnixUser

#identity, #initialize, #list_users, #parse_id_entries, #parse_value

Methods inherited from UserInfo

#collect_user_details, #identity, #initialize, #list_users, #user_details

Methods included from Converter

#convert_to_i

Constructor Details

This class inherits a constructor from Inspec::Resources::UnixUser

Instance Method Details

#credentials(username) ⇒ Object



417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
# File 'lib/inspec/resources/users.rb', line 417

def credentials(username)
  cmd = inspec.command("chage -l #{username}")
  return nil if cmd.exit_status != 0

  params = SimpleConfig.new(
    cmd.stdout.chomp,
    assignment_regex: /^\s*([^:]*?)\s*:\s*(.*?)\s*$/,
    group_re: nil,
    multiple_values: false
  ).params

  {
    mindays: convert_to_i(params["Minimum number of days between password change"]),
    maxdays: convert_to_i(params["Maximum number of days between password change"]),
    warndays: convert_to_i(params["Number of days of warning before password expires"]),
  }
end

#meta_info(username) ⇒ Object



405
406
407
408
409
410
411
412
413
414
415
# File 'lib/inspec/resources/users.rb', line 405

def meta_info(username)
  cmd = inspec.command("getent passwd #{username}")
  return nil if cmd.exit_status != 0

  # returns: root:x:0:0:root:/root:/bin/bash
  passwd = parse_passwd_line(cmd.stdout.chomp)
  {
    home: passwd["home"],
    shell: passwd["shell"],
  }
end