Class: Inspec::Resources::DarwinGroup

Inherits:
GroupInfo
  • Object
show all
Defined in:
lib/resources/groups.rb

Overview

OSX uses opendirectory for groups, so ‘/etc/group` may not be fully accurate This uses `dscacheutil` to get the group info instead of `etc_group`

Instance Attribute Summary

Attributes inherited from GroupInfo

#inspec

Instance Method Summary collapse

Methods inherited from GroupInfo

#initialize

Constructor Details

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

Instance Method Details

#groupsObject



165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/resources/groups.rb', line 165

def groups
  group_info = inspec.command('dscacheutil -q group').stdout.split("\n\n")

  groups = []
  regex = /^([^:]*?)\s*:\s(.*?)\s*$/
  group_info.each do |data|
    groups << inspec.parse_config(data, assignment_regex: regex).params
  end

  # Convert the `dscacheutil` groups to match `inspec.etc_group.entries`
  groups.each { |g| g['gid'] = g['gid'].to_i }
  groups.each do |g|
    next if g['users'].nil?
    g['members'] = g.delete('users')
    g['members'].tr!(' ', ',')
  end
end