inspec 1.51.18 → 1.51.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -9
  3. data/docs/reporters.md +105 -0
  4. data/docs/resources/aide_conf.md.erb +1 -1
  5. data/docs/resources/apache.md.erb +1 -1
  6. data/docs/resources/auditd_conf.md.erb +1 -1
  7. data/docs/resources/bash.md.erb +1 -1
  8. data/docs/resources/bridge.md.erb +1 -1
  9. data/docs/resources/bsd_service.md.erb +1 -1
  10. data/docs/resources/cpan.md.erb +1 -1
  11. data/docs/resources/cran.md.erb +1 -1
  12. data/docs/resources/crontab.md.erb +1 -1
  13. data/docs/resources/csv.md.erb +1 -1
  14. data/docs/resources/dh_params.md.erb +1 -1
  15. data/docs/resources/directory.md.erb +1 -1
  16. data/docs/resources/docker_container.md.erb +3 -1
  17. data/docs/resources/elasticsearch.md.erb +1 -1
  18. data/docs/resources/etc_fstab.md.erb +1 -1
  19. data/docs/resources/etc_group.md.erb +2 -2
  20. data/docs/resources/etc_hosts.md.erb +1 -1
  21. data/docs/resources/etc_hosts_allow.md.erb +1 -1
  22. data/docs/resources/etc_hosts_deny.md.erb +2 -2
  23. data/docs/resources/file.md.erb +4 -4
  24. data/docs/resources/firewalld.md.erb +1 -1
  25. data/docs/resources/http.md.erb +1 -1
  26. data/docs/resources/iis_app.md.erb +1 -1
  27. data/docs/resources/iis_site.md.erb +1 -1
  28. data/docs/resources/inetd_conf.md.erb +1 -1
  29. data/docs/resources/ini.md.erb +1 -1
  30. data/docs/resources/interface.md.erb +1 -1
  31. data/docs/resources/kernel_parameter.md.erb +3 -8
  32. data/docs/resources/key_rsa.md.erb +25 -15
  33. data/docs/resources/limits_conf.md.erb +16 -9
  34. data/docs/resources/login_def.md.erb +13 -4
  35. data/docs/resources/nginx.md.erb +2 -2
  36. data/docs/resources/postgres_hba_conf.md.erb +2 -2
  37. data/docs/resources/postgres_ident_conf.md.erb +2 -2
  38. data/docs/resources/user.md.erb +4 -5
  39. data/docs/resources/x509_certificate.md.erb +1 -1
  40. data/docs/resources/xml.md.erb +2 -2
  41. data/lib/inspec/base_cli.rb +9 -1
  42. data/lib/inspec/runner_rspec.rb +1 -6
  43. data/lib/inspec/version.rb +1 -1
  44. data/lib/resources/package.rb +6 -0
  45. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d296647cc15aa87bd0a740bf0681f5baafa00838
4
- data.tar.gz: 7ed7686d7383fef72a2b2fe176f5b6e220b515f5
3
+ metadata.gz: 3379b4b69a099b07df2099525af24ea73e167141
4
+ data.tar.gz: f22f228ca686117c6737040d292c6311b09bc12f
5
5
  SHA512:
6
- metadata.gz: b73ccef73c2b6cc8b472092c15d3176671868d48b6975fc0e754f8191c82a2c3f96690723fbfdddcb4ecfaef61deb234cc306e04260586780d9328817bd1b4c4
7
- data.tar.gz: a4d6825cc146416ea6ed1f98f919f03233850f4c7f1b4c9fa67f20d829a236fe2f74ff3cfa75b88555058528f11557ccc802627dd6bc2459e0c873d83eb107c1
6
+ metadata.gz: 04cf3f6b6265c41df661c540bdc3c35553c6cd425a7620c27dfa4aa18cc8bf87a9be7f64619c4767b53ad9f604d3722211839161d973f128b4325ca9867a0f91
7
+ data.tar.gz: efa9fd7444b45de81d1f525829cfa8c48e7c8a2fc09038ed48990acf92746405d8ef1dc6622377fa8c885dc2842540e32dbb27a67394ce4768384484f63af50a
data/CHANGELOG.md CHANGED
@@ -1,22 +1,30 @@
1
1
  # Change Log
2
2
  <!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ -->
3
- <!-- latest_release 1.51.18 -->
4
- ## [v1.51.18](https://github.com/chef/inspec/tree/v1.51.18) (2018-02-12)
3
+ <!-- latest_release 1.51.21 -->
4
+ ## [v1.51.21](https://github.com/chef/inspec/tree/v1.51.21) (2018-02-18)
5
5
 
6
6
  #### Merged Pull Requests
7
- - Add json fields to schema and add tests. [#2618](https://github.com/chef/inspec/pull/2618) ([jquick](https://github.com/jquick))
7
+ - Fix legacy reporter output to file (inspec-v1.x) [#2689](https://github.com/chef/inspec/pull/2689) ([jquick](https://github.com/jquick))
8
8
  <!-- latest_release -->
9
9
 
10
- <!-- release_rollup since=1.51.15 -->
11
- ### Changes since 1.51.15 release
10
+ <!-- release_rollup since=1.51.18 -->
11
+ ### Changes since 1.51.18 release
12
12
 
13
13
  #### Merged Pull Requests
14
- - Add json fields to schema and add tests. [#2618](https://github.com/chef/inspec/pull/2618) ([jquick](https://github.com/jquick)) <!-- 1.51.18 -->
15
- - Allow ad-hoc runners to use rspec formats. [#2621](https://github.com/chef/inspec/pull/2621) ([jquick](https://github.com/jquick)) <!-- 1.51.17 -->
16
- - Force a default reporter for ad-hoc runners [#2610](https://github.com/chef/inspec/pull/2610) ([jquick](https://github.com/jquick)) <!-- 1.51.16 -->
14
+ - Fix legacy reporter output to file (inspec-v1.x) [#2689](https://github.com/chef/inspec/pull/2689) ([jquick](https://github.com/jquick)) <!-- 1.51.21 -->
15
+ - package resource: Fix Windows package detection [#2624](https://github.com/chef/inspec/pull/2624) ([jerryaldrichiii](https://github.com/jerryaldrichiii)) <!-- 1.51.20 -->
16
+ - Fix the /private/var osx issue causing functional tests to fail [#2616](https://github.com/chef/inspec/pull/2616) ([jquick](https://github.com/jquick)) <!-- 1.51.19 -->
17
17
  <!-- release_rollup -->
18
18
 
19
19
  <!-- latest_stable_release -->
20
+ ## [v1.51.18](https://github.com/chef/inspec/tree/v1.51.18) (2018-02-12)
21
+
22
+ #### Merged Pull Requests
23
+ - Force a default reporter for ad-hoc runners [#2610](https://github.com/chef/inspec/pull/2610) ([jquick](https://github.com/jquick))
24
+ - Allow ad-hoc runners to use rspec formats. [#2621](https://github.com/chef/inspec/pull/2621) ([jquick](https://github.com/jquick))
25
+ - Add json fields to schema and add tests. [#2618](https://github.com/chef/inspec/pull/2618) ([jquick](https://github.com/jquick))
26
+ <!-- latest_stable_release -->
27
+
20
28
  ## [v1.51.15](https://github.com/chef/inspec/tree/v1.51.15) (2018-02-09)
21
29
 
22
30
  #### Merged Pull Requests
@@ -29,7 +37,6 @@
29
37
  - Refactors grub_conf doc sligtly; adds os metadata [#2537](https://github.com/chef/inspec/pull/2537) ([kagarmoe](https://github.com/kagarmoe))
30
38
  - Use the version of LicenseScout that comes with the Omnibus gem. [#2554](https://github.com/chef/inspec/pull/2554) ([tduffield](https://github.com/tduffield))
31
39
  - Fix runner report and json newline [#2601](https://github.com/chef/inspec/pull/2601) ([jquick](https://github.com/jquick))
32
- <!-- latest_stable_release -->
33
40
 
34
41
  ## [v1.51.6](https://github.com/chef/inspec/tree/v1.51.6) (2018-02-08)
35
42
 
data/docs/reporters.md ADDED
@@ -0,0 +1,105 @@
1
+ ---
2
+ title: InSpec Reporters
3
+ ---
4
+
5
+ # InSpec Reporters
6
+
7
+ Introduced in InSpec 1.51.6
8
+
9
+ InSpec allows you to output your test results to one or more reporters. You can configure the reporter(s) using either the `--json-config` option or the `--reporter` option. While you can configure multiple reporters to write to different files, only one reporter can output to the screen(stdout).
10
+
11
+ ## Syntax
12
+
13
+ You can specify one or more reporters using the `--reporter` cli flag. You can also specify a output by appending a path seperated by a colon.
14
+
15
+ Output json to screen.
16
+
17
+ ```bash
18
+ inspec exec --reporter json
19
+ or
20
+ inspec exec --reporter json:-
21
+ ```
22
+
23
+ Output cli to screen and write json to a file.
24
+
25
+ ```bash
26
+ inspec exec --reporter cli json:/tmp/output.json
27
+ ```
28
+
29
+ Output nothing to screen and write junit and html to a file.
30
+
31
+ ```bash
32
+ inspec exec --reporter junit:/tmp/junit.xml html:www/index.html
33
+ ```
34
+
35
+ Output json to screen and write to a file. Write junit to a file.
36
+
37
+ ```bash
38
+ inspec exec --reporter json junit:/tmp/junit.xml | tee out.json
39
+ ```
40
+
41
+ If you are using the cli option `--json-config` you can also set reporters.
42
+
43
+ Output cli to screen.
44
+
45
+ ```json
46
+ {
47
+ "reporter": {
48
+ "cli" : {
49
+ "stdout" : true
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ Output cli to screen and write json to a file.
56
+
57
+ ```json
58
+ {
59
+ "reporter": {
60
+ "cli" : {
61
+ "stdout" : true
62
+ },
63
+ "json" : {
64
+ "file" : "/tmp/output.json",
65
+ "stdout" : false
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ ## Supported Reporters
72
+
73
+ The following are the current supported reporters:
74
+
75
+ ### cli
76
+
77
+ This is the basic text base report. It includes details about which tests passed and failed and includes an overall summary at the end.
78
+
79
+ ### json
80
+
81
+ This reporter includes all information about the profiles and test results in standard json format.
82
+
83
+ ### json-min
84
+
85
+ This reporter is a redacted version of the json and only includes test results.
86
+
87
+ ### documentation
88
+
89
+ This reporter is a very minimal text base report. It shows you which tests passed by name and has a small summary at the end.
90
+
91
+ ### junit
92
+
93
+ This reporter outputs the standard junit spec in xml format.
94
+
95
+ ### progress
96
+
97
+ This reporter is very condensed and gives you a `.`(pass), `f`(fail), or `*`(skip) character per test and a small summary at the end.
98
+
99
+ ### json-rspec
100
+
101
+ This reporter includes all information from the rspec runner. Unlike the json reporter this includes rspec specific details.
102
+
103
+ ### html
104
+
105
+ This renders html code to view your tests in a browser. It includes all the test and summary information.
@@ -34,7 +34,7 @@ Use the where clause to match a selection_line to one rule or a particular set o
34
34
 
35
35
  <br>
36
36
 
37
- ## Supported Properties
37
+ ## Properties
38
38
 
39
39
  * `conf_path`, `content`, `rules`, `all_have_rule`
40
40
 
@@ -25,7 +25,7 @@ where
25
25
 
26
26
  <br>
27
27
 
28
- ## Supported Properties
28
+ ## Properties
29
29
 
30
30
  * 'service', 'conf_dir', 'conf_path', 'user'
31
31
 
@@ -24,7 +24,7 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Properties
27
+ ## Properties
28
28
 
29
29
  This matcher will match any property listed in the `auditd.conf` configuration file. Property names and expected values are case-insensitive:
30
30
 
@@ -33,7 +33,7 @@ For example:
33
33
 
34
34
  <br>
35
35
 
36
- ## Supported Properties
36
+ ## Properties
37
37
 
38
38
  * `exit_status`, `stderr`, `stdout`
39
39
 
@@ -19,7 +19,7 @@ A `bridge` resource block declares the bridge to be tested and what interface it
19
19
 
20
20
  <br>
21
21
 
22
- ## Supported Properties
22
+ ## Properties
23
23
 
24
24
  * On Linux platforms, any value in the `/sys/class/net/{interface}/bridge` directory may be tested
25
25
  * On the Windows platform, the `Get-NetAdapter` cmdlet is associated with the `Get-NetAdapterBinding` cmdlet and returns the `ComponentID ms_bridge` value as a JSON object
@@ -37,7 +37,7 @@ The path to the service manager's control may be specified for situations where
37
37
 
38
38
  <br>
39
39
 
40
- ## Supported Properties
40
+ ## Properties
41
41
 
42
42
  All properties available to the `service` resource may be used.
43
43
  <br>
@@ -23,7 +23,7 @@ where
23
23
 
24
24
  <br>
25
25
 
26
- ## Supported Resource Parameters
26
+ ## Resource Parameters
27
27
 
28
28
  This resource uses package names and perl library paths as resource parameters.
29
29
 
@@ -23,7 +23,7 @@ where
23
23
 
24
24
  <br>
25
25
 
26
- ## Resource Parameter Examples
26
+ ## Examples
27
27
 
28
28
  The following examples show how to use this InSpec audit resource.
29
29
 
@@ -18,7 +18,7 @@ A `crontab` resource block declares a user (which defaults to the current user,
18
18
 
19
19
  <br>
20
20
 
21
- ## Resource Parameter Examples
21
+ ## Examples
22
22
 
23
23
  The following examples show how to use this InSpec audit resource.
24
24
 
@@ -24,7 +24,7 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Resource Parameter Examples
27
+ ## Examples
28
28
 
29
29
  The following examples show how to use this InSpec audit resource.
30
30
 
@@ -36,7 +36,7 @@ Verify whether file contains DH parameters:
36
36
 
37
37
  <br>
38
38
 
39
- ## Supported Resource Properties
39
+ ## Properties
40
40
 
41
41
  generator, modulus, prime_length, pem, text
42
42
 
@@ -18,7 +18,7 @@ A `directory` resource block declares the location of the directory to be tested
18
18
 
19
19
  <br>
20
20
 
21
- ## Supported Resource Properties
21
+ ## Properties
22
22
 
23
23
  All of the properties available to `file` may be used with `directory`.
24
24
 
@@ -25,7 +25,7 @@ A `docker_container` resource block declares the configuration data to be tested
25
25
 
26
26
  ## Resource Parameter Examples
27
27
 
28
- ### container
28
+ ### name
29
29
 
30
30
  The container name can also be passed with the `name` resource parameter:
31
31
 
@@ -34,6 +34,8 @@ The container name can also be passed with the `name` resource parameter:
34
34
  it { should be_running }
35
35
  end
36
36
 
37
+ ### id
38
+
37
39
  Alternatively, you can pass in the container id:
38
40
 
39
41
  describe docker_container(id: '71b5df59442b') do
@@ -40,7 +40,7 @@ To simply check if nodes exist that match the criteria, use the `exist` matcher:
40
40
  it { should exist }
41
41
  end
42
42
 
43
- ## Supported Resource Properties
43
+ ## Properties
44
44
 
45
45
  The following properties are provided:
46
46
 
@@ -35,7 +35,7 @@ Use the optional constructor parameter to give an alternative path to fstab file
35
35
 
36
36
  <br>
37
37
 
38
- ## Supported Resource Properties
38
+ ## Properties
39
39
 
40
40
  * `device_name` is the name associated with the device.
41
41
  * `mount_point` is the directory at which the filesystem is configured to be mounted.
@@ -32,13 +32,13 @@ where
32
32
  * `name: 'name'`, `group_name: 'group_name'`, `password: 'password'`, `gid: 'gid'`, `group_id: 'gid'`, `users: 'user_name'`, `members: 'member_name'`
33
33
  <br>
34
34
 
35
- ## Supported Resource parameters
35
+ ## Properties
36
36
 
37
37
  * `'gids'`, `'groups'`, and `'users'` are valid resource parameters for this resource.
38
38
 
39
39
  <br>
40
40
 
41
- ## Resource Parameter Examples
41
+ ## Examples
42
42
 
43
43
  The following examples show how to use this InSpec audit resource.
44
44
 
@@ -38,7 +38,7 @@ where
38
38
 
39
39
  <br>
40
40
 
41
- ## Supported Resource Properties
41
+ ## Properties
42
42
 
43
43
  'ip_address', 'primary_name', 'all_host_names'
44
44
 
@@ -34,7 +34,7 @@ where
34
34
 
35
35
  <br>
36
36
 
37
- ## Supported Properties
37
+ ## Properties
38
38
 
39
39
  'daemon', 'client_list', 'options'
40
40
 
@@ -34,13 +34,13 @@ where
34
34
 
35
35
  <br>
36
36
 
37
- ## Supported Resource Properties
37
+ ## Properties
38
38
 
39
39
  'daemon', 'client_list', 'options'
40
40
 
41
41
  <br>
42
42
 
43
- ## Parameter Examples and Return Types
43
+ ## Parameter Examples
44
44
 
45
45
  ### daemon
46
46
 
@@ -24,17 +24,17 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Resource Properties
27
+ ## Properties
28
28
 
29
- ### General Resource Properties
29
+ ### General Properties
30
30
 
31
31
  content, size, basename, path, owner, group, type
32
32
 
33
- ### Unix/Linux Resource Properties
33
+ ### Unix/Linux Properties
34
34
 
35
35
  symlink, mode, link_path, mtime, size, selinux\_label, md5sum, sha256sum, path, source, source\_path, uid, gid
36
36
 
37
- ### Windows Resource Properties
37
+ ### Windows Properties
38
38
 
39
39
  file\_version, product\_version
40
40
 
@@ -29,7 +29,7 @@ Use the where clause to test open interfaces, sources, and services in active zo
29
29
 
30
30
  <br>
31
31
 
32
- ## Supported Properties
32
+ ## Properties
33
33
 
34
34
  ### interfaces
35
35
 
@@ -49,7 +49,7 @@ Beginning with InSpec 1.41, you can enable the ability to have the HTTP test exe
49
49
  In InSpec 2.0, the HTTP test will automatically execute remotely whenever InSpec is testing a remote node.
50
50
 
51
51
  <br>
52
- ## Supported Resource Properties
52
+ ## Properties
53
53
 
54
54
  body, headers, http_method, status,
55
55
 
@@ -42,7 +42,7 @@ For example:
42
42
 
43
43
  <br>
44
44
 
45
- ## Supported Resource Properties
45
+ ## Properties
46
46
  application\_pool, path, physical\_path, protocols, site\_name
47
47
 
48
48
  <br>
@@ -40,7 +40,7 @@ For example:
40
40
 
41
41
  <br>
42
42
 
43
- ## Supported Resource Properties
43
+ ## Properties
44
44
 
45
45
  app\_pool, bindings, path, state
46
46
 
@@ -24,7 +24,7 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Resource Properties
27
+ ## Properties
28
28
 
29
29
  This resource supports any of the properties listed as services in the `inetd.conf` file. You may want to ensure that specific services do not listen via `inetd.conf`.
30
30
 
@@ -43,7 +43,7 @@ In the event a section or setting name has a period in it, the alternate syntax
43
43
  its(['section.with.a.dot.in.it', 'setting.name.with.dots']) { should cmp 'lotsadots' }
44
44
 
45
45
  <br>
46
- ## Supported Properties
46
+ ## Properties
47
47
 
48
48
  This resource supports any of the settings listed in an INI file as properties.
49
49
 
@@ -22,7 +22,7 @@ An `interface` resource block declares network interface properties to be tested
22
22
  end
23
23
 
24
24
  <br>
25
- ## Resource Properties
25
+ ## Properties
26
26
 
27
27
  `name`, `speed`
28
28
  <br>
@@ -1,11 +1,12 @@
1
1
  ---
2
2
  title: About the kernel_parameter Resource
3
+ os: Linux
3
4
  ---
4
5
 
5
6
  # kernel_parameter
6
7
 
7
8
  Use the `kernel_parameter` InSpec audit resource to test kernel parameters on Linux platforms.
8
-
9
+ These parameters are located under `/proc/cmdline`.
9
10
  <br>
10
11
 
11
12
  ## Syntax
@@ -42,7 +43,7 @@ The following examples show how to use this InSpec audit resource.
42
43
  ### Test if an IPv6 address accepts redirects
43
44
 
44
45
  describe kernel_parameter('net.ipv6.conf.interface.accept_redirects') do
45
- its('value') { should eq 'true' }
46
+ its('value') { should cmp 'true' }
46
47
  end
47
48
 
48
49
  <br>
@@ -50,9 +51,3 @@ The following examples show how to use this InSpec audit resource.
50
51
  ## Matchers
51
52
 
52
53
  For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
53
-
54
- ### value
55
-
56
- The `value` matcher tests the value assigned to the named IP address versus the value declared in the test:
57
-
58
- its('value') { should eq 0 }
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  title: The key_rsa Resource
3
+ os: Linux
3
4
  ---
4
5
 
5
6
  # key_rsa
@@ -29,15 +30,13 @@ You can use an optional passphrase with `key_rsa`
29
30
 
30
31
  <br>
31
32
 
32
- ## Supported Properties
33
+ ## Properties
33
34
 
34
- ### public?
35
+ * `public_key`, `private_key`, `key_length`
35
36
 
36
- To verify if a key is public use the following:
37
+ <br>
37
38
 
38
- describe key_rsa('/etc/pki/www.mywebsite.com.key') do
39
- it { should be_public }
40
- end
39
+ ## Property Examples
41
40
 
42
41
  ### public_key (String)
43
42
 
@@ -47,15 +46,6 @@ The `public_key` property returns the public part of the RSA key pair
47
46
  its('public_key') { should match "-----BEGIN PUBLIC KEY-----\n3597459df9f3982......" }
48
47
  end
49
48
 
50
- ### private?
51
-
52
- This property verifies that the key includes a private key:
53
-
54
- describe key_rsa('/etc/pki/www.mywebsite.com.key') do
55
- it { should be_private }
56
- end
57
-
58
-
59
49
  ### private_key (String)
60
50
 
61
51
  The `private_key` property returns the private key or the RSA key pair.
@@ -71,3 +61,23 @@ The `key_length` property allows testing the number of bits in the key pair.
71
61
  describe key_rsa('/etc/pki/www.mywebsite.com.key') do
72
62
  its('key_length') { should eq 2048 }
73
63
  end
64
+
65
+ ## Matchers
66
+
67
+ For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
68
+
69
+ ### public?
70
+
71
+ To verify if a key is public use the following:
72
+
73
+ describe key_rsa('/etc/pki/www.mywebsite.com.key') do
74
+ it { should be_public }
75
+ end
76
+
77
+ ### private?
78
+
79
+ This property verifies that the key includes a private key:
80
+
81
+ describe key_rsa('/etc/pki/www.mywebsite.com.key') do
82
+ it { should be_private }
83
+ end
@@ -1,10 +1,11 @@
1
1
  ---
2
2
  title: About the limits_conf Resource
3
+ os: Linux
3
4
  ---
4
5
 
5
6
  # limits_conf
6
7
 
7
- 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.
8
+ 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 running those processes remains stable. Each process may be assigned a hard or soft limit.
8
9
 
9
10
  * Soft limits are maintained by the shell and defines the number of file handles (or open files) available to the user or group after login
10
11
  * Hard limits are maintained by the kernel and defines the maximum number of allowed file handles
@@ -38,10 +39,24 @@ where
38
39
 
39
40
  <br>
40
41
 
42
+ ## Properties
43
+
44
+ * `domain`
45
+
41
46
  ## Examples
42
47
 
43
48
  The following examples show how to use this InSpec audit resource.
44
49
 
50
+ ### domain
51
+
52
+ The `domain` property tests the domain in the `limits.conf` file, along with associated type, item, and value:
53
+
54
+ its('domain') { should include ['type', 'item', 'value'] }
55
+ `
56
+ For example:
57
+
58
+ its('grantmc') { should include ['hard', 'nofile', '63536'] }
59
+
45
60
  ### Test limits
46
61
 
47
62
  describe limits_conf('path') do
@@ -55,12 +70,4 @@ The following examples show how to use this InSpec audit resource.
55
70
 
56
71
  For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
57
72
 
58
- ### domain
59
73
 
60
- The `domain` matcher tests the domain in the `limits.conf` file, along with associated type, item, and value:
61
-
62
- its('domain') { should include ['type', 'item', 'value'] }
63
- `
64
- For example:
65
-
66
- its('grantmc') { should include ['hard', 'nofile', '63536'] }
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  title: About the login_defs Resource
3
+ os: Linux
3
4
  ---
4
5
 
5
6
  # login_defs
@@ -23,10 +24,22 @@ where
23
24
 
24
25
  <br>
25
26
 
27
+ ## Properties
28
+
29
+ This resource supports the properties found in the `login.defs` configuration settings.
30
+
31
+ <br>
32
+
26
33
  ## Examples
27
34
 
28
35
  The following examples show how to use this InSpec audit resource.
29
36
 
37
+ ### name
38
+
39
+ The `name` matcher tests the value of `name` as read from `login.defs` versus the value declared in the test:
40
+
41
+ its('name') { should eq 'foo' }
42
+
30
43
  ### Test password expiration settings
31
44
 
32
45
  describe login_defs do
@@ -55,8 +68,4 @@ The following examples show how to use this InSpec audit resource.
55
68
 
56
69
  For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
57
70
 
58
- ### name
59
71
 
60
- The `name` matcher tests the value of `name` as read from `login.defs` versus the value declared in the test:
61
-
62
- its('name') { should eq 'foo' }
@@ -29,13 +29,13 @@ where
29
29
 
30
30
  <br>
31
31
 
32
- ## Supported Properties
32
+ ## Properties
33
33
 
34
34
  * 'compiler_info', 'error_log_path', 'http_client_body_temp_path', 'http_fastcgi_temp_path', 'http_log_path', 'http_proxy_temp_path', 'http_scgi_temp_path', 'http_uwsgi_temp_path', 'lock_path', 'modules', 'modules_path', 'openssl_version', 'prefix', 'sbin_path', 'service', 'support_info', 'version'
35
35
 
36
36
  <br>
37
37
 
38
- ## Property Examples and Return Types
38
+ ## Property Examples
39
39
 
40
40
  ### version(String)
41
41
 
@@ -24,13 +24,13 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Properties
27
+ ## Properties
28
28
 
29
29
  'address', 'auth_method', 'auth_params', 'conf_dir' , 'conf_file' , 'database', 'params' ,'type', 'user'
30
30
 
31
31
  <br>
32
32
 
33
- ## Property Examples and Return Types
33
+ ## Property Examples
34
34
 
35
35
  ### address([String])
36
36
 
@@ -24,13 +24,13 @@ where
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Properties
27
+ ## Properties
28
28
 
29
29
  'conf_file', 'map_name', 'params', 'pg_username', 'system_username'
30
30
 
31
31
  <br>
32
32
 
33
- ## Property Examples and Return Types
33
+ ## Property Examples
34
34
 
35
35
  ### map_name([String])
36
36
 
@@ -40,7 +40,6 @@ The following examples show how to use this InSpec audit resource.
40
40
 
41
41
  describe user('root') do
42
42
  it { should exist }
43
- it { should belong_to_group 'root' }
44
43
  its('uid') { should eq 0 }
45
44
  its('groups') { should eq ['root'] }
46
45
  end
@@ -64,7 +63,7 @@ The `nginx` user is typically `www-data`, but on CentOS it's `nginx`. The follow
64
63
 
65
64
  ## Matchers
66
65
 
67
- For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
66
+ For a full list of available matchers please visit our [matchers page](https://www.inspec.io/docs/reference/matchers/).
68
67
 
69
68
  ### exist
70
69
 
@@ -76,7 +75,7 @@ The `exist` matcher tests if the named user exists:
76
75
 
77
76
  The `gid` matcher tests the group identifier:
78
77
 
79
- its('gid') { should eq 1234 } }
78
+ its('gid') { should eq 1234 }
80
79
 
81
80
  where `1234` represents the user identifier.
82
81
 
@@ -92,7 +91,7 @@ where `root` represents the group.
92
91
 
93
92
  The `groups` matcher tests two (or more) groups to which the user belongs:
94
93
 
95
- its('groups') { should eq ['root', 'other']}
94
+ its('groups') { should eq ['root', 'other'] }
96
95
 
97
96
  ### home
98
97
 
@@ -126,7 +125,7 @@ The `shell` matcher tests the path to the default shell for the user:
126
125
 
127
126
  The `uid` matcher tests the user identifier:
128
127
 
129
- its('uid') { should eq 1234 } }
128
+ its('uid') { should eq 1234 }
130
129
 
131
130
  where `1234` represents the user identifier.
132
131
 
@@ -24,7 +24,7 @@ An `x509_certificate` resource block declares a certificate `key file` to be tes
24
24
 
25
25
  <br>
26
26
 
27
- ## Supported Properties
27
+ ## Properties
28
28
 
29
29
  ### subject.XX
30
30
 
@@ -50,12 +50,12 @@ where
50
50
 
51
51
  In the above example, you see the use of `@` and `attribute::` which are both methods of fetching attributes.
52
52
 
53
- <br>
54
-
55
53
  In the event the path contains an element which contains periods, the alternate syntax can be used:
56
54
 
57
55
  its(['root/name.with.a.period']) { should cmp 'so_many_dots' }
58
56
 
57
+ <br>
58
+
59
59
  ## Examples
60
60
 
61
61
  The following examples show how to use this InSpec audit resource.
@@ -93,11 +93,19 @@ module Inspec
93
93
  }
94
94
  end
95
95
 
96
- def self.parse_reporters(opts) # rubocop:disable Metrics/AbcSize
96
+ def self.parse_reporters(opts) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
97
97
  # merge in any legacy formats as reporter
98
98
  # this method will only be used for ad-hoc runners
99
99
  if !opts['format'].nil? && opts['reporter'].nil?
100
100
  warn '[DEPRECATED] The option --format is being is being deprecated and will be removed in inspec 3.0. Please use --reporter'
101
+
102
+ # see if we are using the legacy output to write to files
103
+ if opts['output']
104
+ warn '[DEPRECATED] The option \'output\' is being is being deprecated and will be removed in inspec 3.0. Please use --reporter name:path'
105
+ opts['format'] = "#{opts['format']}:#{opts['output']}"
106
+ opts.delete('output')
107
+ end
108
+
101
109
  opts['reporter'] = Array(opts['format'])
102
110
  opts.delete('format')
103
111
  end
@@ -121,12 +121,7 @@ module Inspec
121
121
  #
122
122
  # @return [nil]
123
123
  def configure_output
124
- if !@conf['output'] || @conf['output'] == '-'
125
- RSpec.configuration.output_stream = $stdout
126
- else
127
- RSpec.configuration.output_stream = @conf['output']
128
- end
129
-
124
+ RSpec.configuration.output_stream = $stdout
130
125
  @formatter = RSpec.configuration.add_formatter(Inspec::Formatters::Base)
131
126
  RSpec.configuration.add_formatter(Inspec::Formatters::ShowProgress, $stderr) if @conf[:show_progress]
132
127
  set_optional_formatters
@@ -4,5 +4,5 @@
4
4
  # author: Christoph Hartmann
5
5
 
6
6
  module Inspec
7
- VERSION = '1.51.18'
7
+ VERSION = '1.51.21'
8
8
  end
@@ -267,6 +267,12 @@ module Inspec::Resources
267
267
  Select-Object -Property DisplayName,DisplayVersion | ConvertTo-Json
268
268
  EOF
269
269
 
270
+ # We cannot rely on `exit_status` since PowerShell always exits 0 from the
271
+ # above command. Instead, if no package is found the output of the command
272
+ # will be `''` so we can use that to return `{}` to match the behavior of
273
+ # other package managers.
274
+ return {} if cmd.stdout == ''
275
+
270
276
  begin
271
277
  package = JSON.parse(cmd.stdout)
272
278
  rescue JSON::ParserError => e
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.51.18
4
+ version: 1.51.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-12 00:00:00.000000000 Z
11
+ date: 2018-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
@@ -299,6 +299,7 @@ files:
299
299
  - docs/migration.md
300
300
  - docs/plugin_kitchen_inspec.md
301
301
  - docs/profiles.md
302
+ - docs/reporters.md
302
303
  - docs/resources/aide_conf.md.erb
303
304
  - docs/resources/apache.md.erb
304
305
  - docs/resources/apache_conf.md.erb