Class: Inspec::Resources::Shadow
- Inherits:
-
Object
- Object
- Inspec::Resources::Shadow
- Includes:
- FileReader
- Defined in:
- lib/resources/shadow.rb
Instance Attribute Summary collapse
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
Instance Method Summary collapse
- #expiry_dates(query = nil) ⇒ Object
- #filter(query = {}) ⇒ Object
-
#initialize(path = '/etc/shadow', opts = nil) ⇒ Shadow
constructor
A new instance of Shadow.
- #last_changes(query = nil) ⇒ Object
- #passwords(query = nil) ⇒ Object
- #to_s ⇒ Object
- #users(query = nil) ⇒ Object
Methods included from FileReader
Constructor Details
#initialize(path = '/etc/shadow', opts = nil) ⇒ Shadow
Returns a new instance of Shadow.
40 41 42 43 44 45 46 47 |
# File 'lib/resources/shadow.rb', line 40 def initialize(path = '/etc/shadow', opts = nil) opts ||= {} @path = path || '/etc/shadow' @filters = opts[:filters] || '' @raw_content = opts[:content] || read_file_content(@path, allow_empty: true) @lines = @raw_content.to_s.split("\n") @params = @lines.map { |l| parse_shadow_line(l) } end |
Instance Attribute Details
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
38 39 40 |
# File 'lib/resources/shadow.rb', line 38 def lines @lines end |
#params ⇒ Object (readonly)
Returns the value of attribute params.
37 38 39 |
# File 'lib/resources/shadow.rb', line 37 def params @params end |
Instance Method Details
#expiry_dates(query = nil) ⇒ Object
113 114 115 116 117 |
# File 'lib/resources/shadow.rb', line 113 def expiry_dates(query = nil) warn '[DEPRECATION] The shadow `expiry_dates` property is deprecated and will be removed' \ ' in InSpec 3.0. Please use `expiry_date` instead.' query.nil? ? expiry_date : expiry_date(query) end |
#filter(query = {}) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/resources/shadow.rb', line 75 def filter(query = {}) return self if query.nil? || query.empty? res = @params filters = '' query.each do |attr, condition| condition = condition.to_s if condition.is_a? Integer filters += " #{attr} = #{condition.inspect}" res = res.find_all do |line| case line[attr.to_s] when condition true else false end end end content = res.map { |x| x.values.join(':') }.join("\n") Shadow.new(@path, content: content, filters: @filters + filters) end |
#last_changes(query = nil) ⇒ Object
107 108 109 110 111 |
# File 'lib/resources/shadow.rb', line 107 def last_changes(query = nil) warn '[DEPRECATION] The shadow `last_changes` property is deprecated and will be removed' \ ' in InSpec 3.0. Please use `last_change` instead.' query.nil? ? last_change : last_change(query) end |
#passwords(query = nil) ⇒ Object
101 102 103 104 105 |
# File 'lib/resources/shadow.rb', line 101 def passwords(query = nil) warn '[DEPRECATION] The shadow `passwords` property is deprecated and will be removed' \ ' in InSpec 3.0. Please use `password` instead.' query.nil? ? password : password(query) end |
#to_s ⇒ Object
119 120 121 122 |
# File 'lib/resources/shadow.rb', line 119 def to_s f = @filters.empty? ? '' : ' with'+@filters "/etc/shadow#{f}" end |
#users(query = nil) ⇒ Object
95 96 97 98 99 |
# File 'lib/resources/shadow.rb', line 95 def users(query = nil) warn '[DEPRECATION] The shadow `users` property is deprecated and will be removed' \ ' in InSpec 3.0. Please use `user` instead.' query.nil? ? user : user(query) end |