inspec 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +65 -0
- data/.travis.yml +23 -0
- data/CHANGELOG.md +38 -0
- data/Gemfile +33 -0
- data/LICENSE +201 -0
- data/MAINTAINERS.md +28 -0
- data/MAINTAINERS.toml +42 -0
- data/README.md +257 -0
- data/Rakefile +47 -0
- data/bin/inspec +109 -0
- data/docs/ctl_inspec.rst +195 -0
- data/docs/dsl_inspec.rst +182 -0
- data/docs/readme.rst +100 -0
- data/docs/resources.rst +4319 -0
- data/docs/template.rst +51 -0
- data/examples/test-kitchen/.kitchen.yml +20 -0
- data/examples/test-kitchen/Berksfile +3 -0
- data/examples/test-kitchen/Gemfile +21 -0
- data/examples/test-kitchen/README.md +27 -0
- data/examples/test-kitchen/metadata.rb +7 -0
- data/examples/test-kitchen/recipes/default.rb +6 -0
- data/examples/test-kitchen/recipes/nginx.rb +30 -0
- data/examples/test-kitchen/test/integration/default/web_spec.rb +28 -0
- data/inspec.gemspec +30 -0
- data/lib/inspec.rb +20 -0
- data/lib/inspec/backend.rb +42 -0
- data/lib/inspec/dsl.rb +151 -0
- data/lib/inspec/log.rb +34 -0
- data/lib/inspec/metadata.rb +79 -0
- data/lib/inspec/plugins.rb +9 -0
- data/lib/inspec/plugins/resource.rb +62 -0
- data/lib/inspec/profile.rb +138 -0
- data/lib/inspec/profile_context.rb +170 -0
- data/lib/inspec/resource.rb +76 -0
- data/lib/inspec/rspec_json_formatter.rb +27 -0
- data/lib/inspec/rule.rb +170 -0
- data/lib/inspec/runner.rb +154 -0
- data/lib/inspec/shell.rb +66 -0
- data/lib/inspec/targets.rb +9 -0
- data/lib/inspec/targets/core.rb +27 -0
- data/lib/inspec/targets/dir.rb +67 -0
- data/lib/inspec/targets/file.rb +29 -0
- data/lib/inspec/targets/folder.rb +43 -0
- data/lib/inspec/targets/tar.rb +34 -0
- data/lib/inspec/targets/url.rb +39 -0
- data/lib/inspec/targets/zip.rb +47 -0
- data/lib/inspec/version.rb +7 -0
- data/lib/matchers/matchers.rb +221 -0
- data/lib/resources/apache.rb +29 -0
- data/lib/resources/apache_conf.rb +113 -0
- data/lib/resources/apt.rb +140 -0
- data/lib/resources/audit_policy.rb +63 -0
- data/lib/resources/auditd_conf.rb +56 -0
- data/lib/resources/auditd_rules.rb +53 -0
- data/lib/resources/bond.rb +65 -0
- data/lib/resources/bridge.rb +114 -0
- data/lib/resources/command.rb +57 -0
- data/lib/resources/csv.rb +32 -0
- data/lib/resources/directory.rb +15 -0
- data/lib/resources/etc_group.rb +150 -0
- data/lib/resources/file.rb +110 -0
- data/lib/resources/gem.rb +46 -0
- data/lib/resources/group.rb +132 -0
- data/lib/resources/host.rb +143 -0
- data/lib/resources/inetd_conf.rb +56 -0
- data/lib/resources/interface.rb +127 -0
- data/lib/resources/iptables.rb +65 -0
- data/lib/resources/json.rb +64 -0
- data/lib/resources/kernel_module.rb +40 -0
- data/lib/resources/kernel_parameter.rb +55 -0
- data/lib/resources/limits_conf.rb +55 -0
- data/lib/resources/login_def.rb +60 -0
- data/lib/resources/mysql.rb +81 -0
- data/lib/resources/mysql_conf.rb +116 -0
- data/lib/resources/mysql_session.rb +52 -0
- data/lib/resources/npm.rb +44 -0
- data/lib/resources/ntp_conf.rb +58 -0
- data/lib/resources/oneget.rb +63 -0
- data/lib/resources/os.rb +22 -0
- data/lib/resources/os_env.rb +34 -0
- data/lib/resources/package.rb +169 -0
- data/lib/resources/parse_config.rb +75 -0
- data/lib/resources/passwd.rb +93 -0
- data/lib/resources/pip.rb +75 -0
- data/lib/resources/port.rb +296 -0
- data/lib/resources/postgres.rb +37 -0
- data/lib/resources/postgres_conf.rb +87 -0
- data/lib/resources/postgres_session.rb +59 -0
- data/lib/resources/processes.rb +57 -0
- data/lib/resources/registry_key.rb +54 -0
- data/lib/resources/script.rb +34 -0
- data/lib/resources/security_policy.rb +73 -0
- data/lib/resources/service.rb +379 -0
- data/lib/resources/ssh_conf.rb +75 -0
- data/lib/resources/user.rb +374 -0
- data/lib/resources/windows_feature.rb +77 -0
- data/lib/resources/yaml.rb +23 -0
- data/lib/resources/yum.rb +154 -0
- data/lib/utils/convert.rb +12 -0
- data/lib/utils/detect.rb +15 -0
- data/lib/utils/find_files.rb +36 -0
- data/lib/utils/hash.rb +13 -0
- data/lib/utils/modulator.rb +12 -0
- data/lib/utils/parser.rb +61 -0
- data/lib/utils/simpleconfig.rb +115 -0
- data/tasks/maintainers.rb +213 -0
- data/test/docker_run.rb +156 -0
- data/test/docker_test.rb +51 -0
- data/test/helper.rb +200 -0
- data/test/integration/.kitchen.yml +42 -0
- data/test/integration/Berksfile +4 -0
- data/test/integration/cookbooks/os_prepare/metadata.rb +8 -0
- data/test/integration/cookbooks/os_prepare/recipes/apt.rb +20 -0
- data/test/integration/cookbooks/os_prepare/recipes/default.rb +9 -0
- data/test/integration/cookbooks/os_prepare/recipes/file.rb +21 -0
- data/test/integration/cookbooks/os_prepare/recipes/package.rb +26 -0
- data/test/integration/default/_debug_spec.rb +1 -0
- data/test/integration/default/apt_spec.rb +42 -0
- data/test/integration/default/file_spec.rb +109 -0
- data/test/integration/default/group_spec.rb +32 -0
- data/test/integration/default/kernel_module_spec.rb +17 -0
- data/test/integration/default/kernel_parameter_spec.rb +56 -0
- data/test/integration/default/package_spec.rb +11 -0
- data/test/integration/default/service_spec.rb +28 -0
- data/test/integration/default/user_spec.rb +44 -0
- data/test/resource/command_test.rb +33 -0
- data/test/resource/dsl_test.rb +45 -0
- data/test/resource/file_test.rb +130 -0
- data/test/resource/ssh_config.rb +9 -0
- data/test/resource/sshd_config.rb +9 -0
- data/test/test-extra.yaml +11 -0
- data/test/test.yaml +11 -0
- data/test/unit/mock/cmd/Get-NetAdapter +24 -0
- data/test/unit/mock/cmd/GetUserAccount +33 -0
- data/test/unit/mock/cmd/GetWin32Group +23 -0
- data/test/unit/mock/cmd/PATH +1 -0
- data/test/unit/mock/cmd/Resolve-DnsName +26 -0
- data/test/unit/mock/cmd/Test-NetConnection +4 -0
- data/test/unit/mock/cmd/auditctl +7 -0
- data/test/unit/mock/cmd/auditpol +2 -0
- data/test/unit/mock/cmd/brew-info-jq +1 -0
- data/test/unit/mock/cmd/chage-l-root +7 -0
- data/test/unit/mock/cmd/dpkg-s-curl +21 -0
- data/test/unit/mock/cmd/dscl +5 -0
- data/test/unit/mock/cmd/etc-apt +7 -0
- data/test/unit/mock/cmd/find-etc-rc-d-name-S +12 -0
- data/test/unit/mock/cmd/find-net-interface +9 -0
- data/test/unit/mock/cmd/gem-list-local-a-q-rubocop +1 -0
- data/test/unit/mock/cmd/get-net-tcpconnection +24 -0
- data/test/unit/mock/cmd/get-netadapter-binding-bridge +4 -0
- data/test/unit/mock/cmd/get-package-firefox +30 -0
- data/test/unit/mock/cmd/get-package-ruby +18 -0
- data/test/unit/mock/cmd/get-service-dhcp +10 -0
- data/test/unit/mock/cmd/get-windows-feature +7 -0
- data/test/unit/mock/cmd/getent-hosts-example.com +1 -0
- data/test/unit/mock/cmd/getent-passwd-root +1 -0
- data/test/unit/mock/cmd/id-chartmann +1 -0
- data/test/unit/mock/cmd/id-root +1 -0
- data/test/unit/mock/cmd/initctl-show-config-ssh +3 -0
- data/test/unit/mock/cmd/initctl-status-ssh +1 -0
- data/test/unit/mock/cmd/iptables-s +6 -0
- data/test/unit/mock/cmd/launchctl-list +3 -0
- data/test/unit/mock/cmd/ls-1-etc-init.d +2 -0
- data/test/unit/mock/cmd/ls-sys-class-net-br +2 -0
- data/test/unit/mock/cmd/lsmod +2 -0
- data/test/unit/mock/cmd/lsof-np-itcp +4 -0
- data/test/unit/mock/cmd/netstat-tulpen +5 -0
- data/test/unit/mock/cmd/npm-ls-g--json-bower +9 -0
- data/test/unit/mock/cmd/pacman-qi-curl +21 -0
- data/test/unit/mock/cmd/ping-example.com +6 -0
- data/test/unit/mock/cmd/pip-show-jinja2 +11 -0
- data/test/unit/mock/cmd/ps-aux +3 -0
- data/test/unit/mock/cmd/pw-usershow-root-7 +1 -0
- data/test/unit/mock/cmd/reg_schedule +1 -0
- data/test/unit/mock/cmd/rpm-qia-curl +24 -0
- data/test/unit/mock/cmd/sbin_sysctl +1 -0
- data/test/unit/mock/cmd/secedit-export +7 -0
- data/test/unit/mock/cmd/service-e +2 -0
- data/test/unit/mock/cmd/service-sendmail-onestatus +3 -0
- data/test/unit/mock/cmd/service-sshd-status +1 -0
- data/test/unit/mock/cmd/sockstat +5 -0
- data/test/unit/mock/cmd/success +0 -0
- data/test/unit/mock/cmd/systemctl-show-all-sshd +6 -0
- data/test/unit/mock/cmd/win32_product +8 -0
- data/test/unit/mock/cmd/yum-repolist-all +52 -0
- data/test/unit/mock/files/auditd.conf +4 -0
- data/test/unit/mock/files/bond0 +37 -0
- data/test/unit/mock/files/etcgroup +3 -0
- data/test/unit/mock/files/example.csv +6 -0
- data/test/unit/mock/files/inetd.conf +2 -0
- data/test/unit/mock/files/kitchen.yml +7 -0
- data/test/unit/mock/files/limits.conf +5 -0
- data/test/unit/mock/files/login.defs +5 -0
- data/test/unit/mock/files/mysql.conf +8 -0
- data/test/unit/mock/files/mysql2.conf +2 -0
- data/test/unit/mock/files/ntp.conf +5 -0
- data/test/unit/mock/files/passwd +2 -0
- data/test/unit/mock/files/policyfile.lock.json +12 -0
- data/test/unit/mock/files/ssh_config +5 -0
- data/test/unit/mock/files/sshd_config +7 -0
- data/test/unit/mock/profiles/empty/metadata.rb +0 -0
- data/test/unit/mock/profiles/metadata/metadata.rb +1 -0
- data/test/unit/profile_context_test.rb +140 -0
- data/test/unit/profile_test.rb +49 -0
- data/test/unit/resources/apt_test.rb +46 -0
- data/test/unit/resources/audit_policy_test.rb +13 -0
- data/test/unit/resources/auditd_conf_test.rb +15 -0
- data/test/unit/resources/auditd_rules_test.rb +21 -0
- data/test/unit/resources/bond_test.rb +24 -0
- data/test/unit/resources/bridge_test.rb +56 -0
- data/test/unit/resources/csv_test.rb +35 -0
- data/test/unit/resources/etc_group_test.rb +37 -0
- data/test/unit/resources/gem_test.rb +20 -0
- data/test/unit/resources/group_test.rb +96 -0
- data/test/unit/resources/host_test.rb +38 -0
- data/test/unit/resources/inetd_conf_test.rb +15 -0
- data/test/unit/resources/interface_test.rb +54 -0
- data/test/unit/resources/iptables_test.rb +30 -0
- data/test/unit/resources/json_test.rb +36 -0
- data/test/unit/resources/kernel_module_test.rb +23 -0
- data/test/unit/resources/kernel_parameter_test.rb +13 -0
- data/test/unit/resources/limits_conf_test.rb +14 -0
- data/test/unit/resources/login_def_test.rb +16 -0
- data/test/unit/resources/mysql_conf_test.rb +14 -0
- data/test/unit/resources/npm_test.rb +20 -0
- data/test/unit/resources/ntp_conf_test.rb +16 -0
- data/test/unit/resources/oneget_test.rb +45 -0
- data/test/unit/resources/os_env_test.rb +13 -0
- data/test/unit/resources/package_test.rb +51 -0
- data/test/unit/resources/passwd_test.rb +24 -0
- data/test/unit/resources/pip_test.rb +15 -0
- data/test/unit/resources/port_test.rb +46 -0
- data/test/unit/resources/processes_test.rb +32 -0
- data/test/unit/resources/registry_key_test.rb +19 -0
- data/test/unit/resources/script_test.rb +19 -0
- data/test/unit/resources/security_policy_test.rb +16 -0
- data/test/unit/resources/service_test.rb +116 -0
- data/test/unit/resources/ssh_conf_test.rb +33 -0
- data/test/unit/resources/user_test.rb +93 -0
- data/test/unit/resources/windows_feature.rb +17 -0
- data/test/unit/resources/yaml_test.rb +34 -0
- data/test/unit/resources/yum_test.rb +68 -0
- data/test/unit/simpleconfig_test.rb +80 -0
- data/test/unit/utils/content_parser_test.rb +30 -0
- metadata +555 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
# root test
|
|
4
|
+
if ['centos', 'fedora', 'opensuse', 'debian', 'ubuntu'].include?(os[:family])
|
|
5
|
+
|
|
6
|
+
userinfo = {
|
|
7
|
+
name: 'root',
|
|
8
|
+
group: 'root',
|
|
9
|
+
uid: 0,
|
|
10
|
+
gid: 0,
|
|
11
|
+
groups: ["root"],
|
|
12
|
+
home: '/root',
|
|
13
|
+
shell: '/bin/bash',
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
# different groupset for centos 5
|
|
17
|
+
userinfo[:groups] = ["root", "bin", "daemon", "sys", "adm", "disk", "wheel"] if os[:release].to_i == 5
|
|
18
|
+
|
|
19
|
+
elsif ['freebsd'].include?(os[:family])
|
|
20
|
+
|
|
21
|
+
userinfo = {
|
|
22
|
+
name: 'root',
|
|
23
|
+
group: 'wheel',
|
|
24
|
+
uid: 0,
|
|
25
|
+
gid: 0,
|
|
26
|
+
groups: ["wheel", "operator"],
|
|
27
|
+
home: '/root',
|
|
28
|
+
shell: '/bin/csh',
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
else
|
|
32
|
+
userinfo = {}
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe user(userinfo[:name]) do
|
|
36
|
+
it { should exist }
|
|
37
|
+
it { should belong_to_group userinfo[:group] }
|
|
38
|
+
its('uid') { should eq userinfo[:uid] }
|
|
39
|
+
its('gid') { should eq userinfo[:gid] }
|
|
40
|
+
its('group') { should eq userinfo[:group] }
|
|
41
|
+
its('groups') { should eq userinfo[:groups] }
|
|
42
|
+
its('home') { should eq userinfo[:home] }
|
|
43
|
+
its('shell') { should eq userinfo[:shell] }
|
|
44
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Dominik Richter
|
|
3
|
+
# author: Christoph Hartmann
|
|
4
|
+
|
|
5
|
+
describe command('echo hello') do
|
|
6
|
+
its(:stdout) { should eq "hello\n" }
|
|
7
|
+
its(:stderr) { should eq '' }
|
|
8
|
+
its(:exit_status) { should eq 0 }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
describe command('>&2 echo error') do
|
|
12
|
+
its(:stdout) { should eq '' }
|
|
13
|
+
its(:stderr) { should eq "error\n" }
|
|
14
|
+
its(:exit_status) { should eq 0 }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe command('exit 123') do
|
|
18
|
+
its(:stdout) { should eq '' }
|
|
19
|
+
its(:stderr) { should eq '' }
|
|
20
|
+
its(:exit_status) { should eq 123 }
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
describe command('/bin/sh').exist? do
|
|
24
|
+
it { should eq true }
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe command('sh').exist? do
|
|
28
|
+
it { should eq true }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe command('this is not existing').exist? do
|
|
32
|
+
it { should eq false }
|
|
33
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Dominik Richter
|
|
3
|
+
# author: Christoph Hartmann
|
|
4
|
+
|
|
5
|
+
describe command('echo hello') do
|
|
6
|
+
its(:stdout) { should eq "hello\n" }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe 'describe + it + expect' do
|
|
10
|
+
it 'should echo something' do
|
|
11
|
+
out = rand.to_s
|
|
12
|
+
expect(command("echo -n #{out}").stdout).to eq(out)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
describe 'describe and expect without it' do
|
|
17
|
+
it 'will raise an error' do
|
|
18
|
+
expect(proc{
|
|
19
|
+
describe rand.to_s do
|
|
20
|
+
expect(true).to eq(true)
|
|
21
|
+
end
|
|
22
|
+
}).to raise_error StandardError
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
rule 'rule + describe' do
|
|
27
|
+
out = rand.to_s
|
|
28
|
+
describe command("echo -n #{out}") do
|
|
29
|
+
its('stdout') { should eq out }
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
rule 'rule + describe + it + expect' do
|
|
34
|
+
out = rand.to_s
|
|
35
|
+
describe 'a rule' do
|
|
36
|
+
it 'must echo something' do
|
|
37
|
+
expect(command("echo -n #{out}").stdout).to eq(out)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
rule 'rule + expect only' do
|
|
43
|
+
out = rand.to_s
|
|
44
|
+
expect(command("echo -n #{out}").stdout).to eq(out)
|
|
45
|
+
end
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
# author: Dominik Richter
|
|
3
|
+
# author: Christoph Hartmann
|
|
4
|
+
|
|
5
|
+
describe file('/tmp') do
|
|
6
|
+
it { should exist }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe file('/tmpest') do
|
|
10
|
+
it { should_not exist }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe file('/tmp') do
|
|
14
|
+
its(:type) { should eq :directory }
|
|
15
|
+
it { should be_directory }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe file('/proc/version') do
|
|
19
|
+
its(:type) { should eq :file }
|
|
20
|
+
it { should be_file }
|
|
21
|
+
it { should_not be_directory }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe file('/dev/stdout') do
|
|
25
|
+
its(:type) { should eq :symlink }
|
|
26
|
+
it { should be_symlink }
|
|
27
|
+
it { should_not be_file }
|
|
28
|
+
it { should_not be_directory }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe file('/dev/zero') do
|
|
32
|
+
its(:type) { should eq :character_device }
|
|
33
|
+
it { should be_character_device }
|
|
34
|
+
it { should_not be_file }
|
|
35
|
+
it { should_not be_directory }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# describe file('...') do
|
|
39
|
+
# its(:type) { should eq :block_device }
|
|
40
|
+
# it { should be_block_device }
|
|
41
|
+
# end
|
|
42
|
+
|
|
43
|
+
# describe file('...') do
|
|
44
|
+
# its(:type) { should eq :socket }
|
|
45
|
+
# it { should be_socket }
|
|
46
|
+
# end
|
|
47
|
+
|
|
48
|
+
# describe file('...') do
|
|
49
|
+
# its(:type) { should eq :pipe }
|
|
50
|
+
# it { should be_pipe }
|
|
51
|
+
# end
|
|
52
|
+
|
|
53
|
+
describe file('/dev') do
|
|
54
|
+
its(:mode) { should eq 00755 }
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe file('/dev') do
|
|
58
|
+
it { should be_mode 00755 }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe file('/root') do
|
|
62
|
+
its(:owner) { should eq 'root' }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
describe file('/dev') do
|
|
66
|
+
it { should be_owned_by 'root' }
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe file('/root') do
|
|
70
|
+
its(:group) { should eq 'root' }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
describe file('/dev') do
|
|
74
|
+
it { should be_grouped_into 'root' }
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
describe file('/dev/kcore') do
|
|
78
|
+
its(:link_path) { should eq '/proc/kcore' }
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
describe file('/dev/kcore') do
|
|
82
|
+
it { should be_linked_to '/proc/kcore' }
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
describe file('/proc/cpuinfo') do
|
|
86
|
+
its(:content) { should match /^processor/ }
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
describe file('/').mtime.to_i do
|
|
90
|
+
it { should <= Time.now.to_i }
|
|
91
|
+
it { should >= Time.now.to_i - 1000}
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
describe file('/') do
|
|
95
|
+
its(:size) { should be > 64 }
|
|
96
|
+
its(:size) { should be < 10240 }
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
describe file('/proc/cpuinfo') do
|
|
100
|
+
its(:size) { should be 0 }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @TODO selinux_label
|
|
104
|
+
|
|
105
|
+
# @TODO skip as the mount command is not reliably present on all test containers
|
|
106
|
+
# describe file('/proc') do
|
|
107
|
+
# it { should be_mounted }
|
|
108
|
+
# end
|
|
109
|
+
|
|
110
|
+
describe file('/proc/cpuinfo') do
|
|
111
|
+
it { should_not be_mounted }
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# @TODO immutable?
|
|
115
|
+
# @TODO product_version
|
|
116
|
+
# @TODO file_version
|
|
117
|
+
# @TODO version?
|
|
118
|
+
|
|
119
|
+
require 'digest'
|
|
120
|
+
cpuinfo = file('/proc/cpuinfo').content
|
|
121
|
+
|
|
122
|
+
md5sum = Digest::MD5.hexdigest(cpuinfo)
|
|
123
|
+
describe file('/proc/cpuinfo') do
|
|
124
|
+
its(:md5sum) { should eq md5sum }
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
sha256sum = Digest::SHA256.hexdigest(cpuinfo)
|
|
128
|
+
describe file('/proc/cpuinfo') do
|
|
129
|
+
its(:sha256sum) { should eq sha256sum }
|
|
130
|
+
end
|
data/test/test.yaml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"Name": "vEthernet (Intel(R) PRO 1000 MT Network Connection - Virtual Switch)",
|
|
4
|
+
"InterfaceDescription": "Hyper-V Virtual Ethernet Adapter #2",
|
|
5
|
+
"Status": "Up",
|
|
6
|
+
"State": 2,
|
|
7
|
+
"MacAddress": "00-0C-29-E3-48-9B",
|
|
8
|
+
"LinkSpeed": "10 Gbps",
|
|
9
|
+
"ReceiveLinkSpeed": 10000000000,
|
|
10
|
+
"TransmitLinkSpeed": 10000000000,
|
|
11
|
+
"Virtual": true
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"Name": "Ethernet0",
|
|
15
|
+
"InterfaceDescription": "Intel(R) PRO/1000 MT Network Connection",
|
|
16
|
+
"Status": "Not Present",
|
|
17
|
+
"State": 3,
|
|
18
|
+
"MacAddress": "00-0C-29-E3-48-9B",
|
|
19
|
+
"LinkSpeed": "0 bps",
|
|
20
|
+
"ReceiveLinkSpeed": 0,
|
|
21
|
+
"TransmitLinkSpeed": 0,
|
|
22
|
+
"Virtual": false
|
|
23
|
+
}
|
|
24
|
+
]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"User": {
|
|
3
|
+
"Caption": "EXAMPLE\\Administrator",
|
|
4
|
+
"Description": "Built-in account for administering the computer/domain",
|
|
5
|
+
"Domain": "EXAMPLE",
|
|
6
|
+
"Name": "Administrator",
|
|
7
|
+
"LocalAccount": false,
|
|
8
|
+
"Lockout": false,
|
|
9
|
+
"PasswordChangeable": true,
|
|
10
|
+
"PasswordExpires": true,
|
|
11
|
+
"PasswordRequired": true,
|
|
12
|
+
"SID": "S-1-5-21-725088257-906184668-2367214287-500",
|
|
13
|
+
"SIDType": 1,
|
|
14
|
+
"Status": "OK"
|
|
15
|
+
},
|
|
16
|
+
"Groups": [{
|
|
17
|
+
"Caption": "WIN-K0AKLED332V\\Administrators",
|
|
18
|
+
"Domain": "WIN-K0AKLED332V",
|
|
19
|
+
"Name": "Administrators",
|
|
20
|
+
"LocalAccount": true,
|
|
21
|
+
"SID": "S-1-5-32-544",
|
|
22
|
+
"SIDType": 4,
|
|
23
|
+
"Status": "OK"
|
|
24
|
+
}, {
|
|
25
|
+
"Caption": "EXAMPLE\\Domain Admins",
|
|
26
|
+
"Domain": "EXAMPLE",
|
|
27
|
+
"Name": "Domain Admins",
|
|
28
|
+
"LocalAccount": false,
|
|
29
|
+
"SID": "S-1-5-21-725088257-906184668-2367214287-512",
|
|
30
|
+
"SIDType": 2,
|
|
31
|
+
"Status": "OK"
|
|
32
|
+
}]
|
|
33
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"Caption": "WIN-K0AKLED332V\\Administrators",
|
|
4
|
+
"Domain": "WIN-K0AKLED332V",
|
|
5
|
+
"Name": "Administrators",
|
|
6
|
+
"SID": "S-1-5-32-544",
|
|
7
|
+
"LocalAccount": true
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"Caption": "WIN-K0AKLED332V\\Users",
|
|
11
|
+
"Domain": "WIN-K0AKLED332V",
|
|
12
|
+
"Name": "Users",
|
|
13
|
+
"SID": "S-1-5-32-545",
|
|
14
|
+
"LocalAccount": true
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"Caption": "EXAMPLE\\Domain Admins",
|
|
18
|
+
"Domain": "EXAMPLE",
|
|
19
|
+
"Name": "Domain Admins",
|
|
20
|
+
"SID": "S-1-5-21-725088257-906184668-2367214287-512",
|
|
21
|
+
"LocalAccount": false
|
|
22
|
+
}
|
|
23
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"IP4Address": "134.170.185.46",
|
|
4
|
+
"Name": "microsoft.com",
|
|
5
|
+
"Type": 1,
|
|
6
|
+
"CharacterSet": 1,
|
|
7
|
+
"Section": 1,
|
|
8
|
+
"DataLength": 4,
|
|
9
|
+
"TTL": 5,
|
|
10
|
+
"Address": "134.170.185.46",
|
|
11
|
+
"IPAddress": "134.170.185.46",
|
|
12
|
+
"QueryType": 1
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"IP4Address": "134.170.188.221",
|
|
16
|
+
"Name": "microsoft.com",
|
|
17
|
+
"Type": 1,
|
|
18
|
+
"CharacterSet": 1,
|
|
19
|
+
"Section": 1,
|
|
20
|
+
"DataLength": 4,
|
|
21
|
+
"TTL": 5,
|
|
22
|
+
"Address": "134.170.188.221",
|
|
23
|
+
"IPAddress": "134.170.188.221",
|
|
24
|
+
"QueryType": 1
|
|
25
|
+
}
|
|
26
|
+
]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
LIST_RULES: exit,always syscall=rmdir,unlink
|
|
2
|
+
LIST_RULES: exit,always auid=1001 (0x3e9) syscall=open
|
|
3
|
+
LIST_RULES: exit,always watch=/etc/group perm=wa
|
|
4
|
+
LIST_RULES: exit,always watch=/etc/passwd perm=wa
|
|
5
|
+
LIST_RULES: exit,always watch=/etc/shadow perm=wa
|
|
6
|
+
LIST_RULES: exit,always watch=/etc/sudoers perm=wa
|
|
7
|
+
LIST_RULES: exit,always watch=/etc/secret_directory perm=r
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[{"name":"jq","full_name":"jq","desc":"Lightweight and flexible command-line JSON processor","homepage":"https://stedolan.github.io/jq/","versions":{"stable":"1.4","bottle":true,"devel":"1.5rc2","head":"HEAD"},"revision":0,"installed":[{"version":"1.4","used_options":[],"built_as_bottle":null,"poured_from_bottle":true}],"linked_keg":"1.4","keg_only":null,"dependencies":["bison"],"conflicts_with":[],"caveats":null,"requirements":[],"options":[]}]
|