Sha256: 1978cd8e70f8f66c541e741ff5edbc789a8ae29276e6b171c38ae93044a072f4

Contents?: true

Size: 1.42 KB

Versions: 18

Compression:

Stored size: 1.42 KB

Contents

# encoding: utf-8
# copyright: 2015, Vulcano Security GmbH
# author: Christoph Hartmann
# author: Dominik Richter
# license: All rights reserved

require 'utils/simpleconfig'

class LimitsConf < Inspec.resource(1)
  name 'limits_conf'
  desc 'Use the limits_conf InSpec audit resource to test configuration settings in the /etc/security/limits.conf file. The limits.conf defines limits for processes (by user and/or group names) and helps ensure that the system on which those processes are running remains stable. Each process may be assigned a hard or soft limit.'
  example "
    describe limits_conf do
      its('*') { should include ['hard','core','0'] }
    end
  "

  def initialize(path = nil)
    @conf_path = path || '/etc/security/limits.conf'
  end

  def method_missing(name)
    read_params[name.to_s]
  end

  def read_params
    return @params if defined?(@params)

    # read the file
    file = inspec.file(@conf_path)
    if !file.file?
      skip_resource "Can't find file \"#{@conf_path}\""
      return @params = {}
    end

    content = file.content
    if content.empty? && file.size > 0
      skip_resource "Can't read file \"#{@conf_path}\""
      return @params = {}
    end

    # parse the file
    conf = SimpleConfig.new(
      content,
      assignment_re: /^\s*(\S+?)\s+(.*?)\s+(.*?)\s+(.*?)\s*$/,
      key_vals: 3,
      multiple_values: true,
    )
    @params = conf.params
  end

  def to_s
    'limits.conf'
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
inspec-0.14.8 lib/resources/limits_conf.rb
inspec-0.14.7 lib/resources/limits_conf.rb
inspec-0.14.6 lib/resources/limits_conf.rb
inspec-0.14.5 lib/resources/limits_conf.rb
inspec-0.14.4 lib/resources/limits_conf.rb
inspec-0.14.3 lib/resources/limits_conf.rb
inspec-0.14.2 lib/resources/limits_conf.rb
inspec-0.14.1 lib/resources/limits_conf.rb
inspec-0.14.0 lib/resources/limits_conf.rb
inspec-0.12.0 lib/resources/limits_conf.rb
inspec-0.11.0 lib/resources/limits_conf.rb
inspec-0.10.1 lib/resources/limits_conf.rb
inspec-0.9.11 lib/resources/limits_conf.rb
inspec-0.9.10 lib/resources/limits_conf.rb
inspec-0.9.9 lib/resources/limits_conf.rb
inspec-0.9.8 lib/resources/limits_conf.rb
inspec-0.9.7 lib/resources/limits_conf.rb
inspec-0.9.6 lib/resources/limits_conf.rb