Class: Inspec::Resources::Passwd
- Inherits:
-
Object
- Object
- Inspec::Resources::Passwd
show all
- Includes:
- PasswdParser
- Defined in:
- lib/resources/passwd.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Attribute Summary collapse
Instance Method Summary
collapse
#parse_passwd, #parse_passwd_line
Constructor Details
#initialize(path = nil, opts = nil) ⇒ Passwd
Returns a new instance of Passwd.
45
46
47
48
49
50
51
52
|
# File 'lib/resources/passwd.rb', line 45
def initialize(path = nil, opts = nil)
opts ||= {}
@path = path || '/etc/passwd'
@content = opts[:content] || inspec.file(@path).content
@lines = @content.to_s.split("\n")
@filters = opts[:filters] || ''
@params = parse_passwd(@content)
end
|
Instance Attribute Details
#content ⇒ Object
Returns the value of attribute content.
42
43
44
|
# File 'lib/resources/passwd.rb', line 42
def content
@content
end
|
#lines ⇒ Object
Returns the value of attribute lines.
43
44
45
|
# File 'lib/resources/passwd.rb', line 43
def lines
@lines
end
|
#params ⇒ Object
Returns the value of attribute params.
41
42
43
|
# File 'lib/resources/passwd.rb', line 41
def params
@params
end
|
#uid(x) ⇒ Object
Returns the value of attribute uid.
40
41
42
|
# File 'lib/resources/passwd.rb', line 40
def uid
@uid
end
|
Instance Method Details
#count ⇒ Object
109
110
111
|
# File 'lib/resources/passwd.rb', line 109
def count
@params.length
end
|
#filter(hm = {}) ⇒ Object
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/resources/passwd.rb', line 54
def filter(hm = {})
return self if hm.nil? || hm.empty?
res = @params
filters = ''
hm.each do |attr, condition|
res, filters = filter_attribute(attr, condition, res, filters)
end
content = res.map { |x| x.values.join(':') }.join("\n")
Passwd.new(@path, content: content, filters: @filters + filters)
end
|
#gids(gid = nil) ⇒ Object
92
93
94
|
# File 'lib/resources/passwd.rb', line 92
def gids(gid = nil)
gid.nil? ? map_data('gid') : filter(gid: gid)
end
|
#homes(home = nil) ⇒ Object
96
97
98
|
# File 'lib/resources/passwd.rb', line 96
def homes(home = nil)
home.nil? ? map_data('home') : filter(home: home)
end
|
#passwords(password = nil) ⇒ Object
84
85
86
|
# File 'lib/resources/passwd.rb', line 84
def passwords(password = nil)
password.nil? ? map_data('password') : filter(password: password)
end
|
#shells(shell = nil) ⇒ Object
100
101
102
|
# File 'lib/resources/passwd.rb', line 100
def shells(shell = nil)
shell.nil? ? map_data('shell') : filter(shell: shell)
end
|
#to_s ⇒ Object
104
105
106
107
|
# File 'lib/resources/passwd.rb', line 104
def to_s
f = @filters.empty? ? '' : ' with'+@filters
"/etc/passwd#{f}"
end
|
#uids(uid = nil) ⇒ Object
88
89
90
|
# File 'lib/resources/passwd.rb', line 88
def uids(uid = nil)
uid.nil? ? map_data('uid') : filter(uid: uid)
end
|
#username ⇒ Object
70
71
72
73
|
# File 'lib/resources/passwd.rb', line 70
def username
warn '[DEPRECATION] `passwd.user` is deprecated. Please use `passwd.users` instead. It will be removed in version 1.0.0.'
users[0]
end
|
#usernames ⇒ Object
65
66
67
68
|
# File 'lib/resources/passwd.rb', line 65
def usernames
warn '[DEPRECATION] `passwd.usernames` is deprecated. Please use `passwd.users` instead. It will be removed in version 1.0.0.'
users
end
|
#users(name = nil) ⇒ Object
80
81
82
|
# File 'lib/resources/passwd.rb', line 80
def users(name = nil)
name.nil? ? map_data('user') : filter(user: name)
end
|