serverspec-ruby19 2.24.3
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 +26 -0
- data/.gitmodules +3 -0
- data/.travis.yml +19 -0
- data/Gemfile +8 -0
- data/Guardfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +26 -0
- data/Rakefile +30 -0
- data/WINDOWS_SUPPORT.md +118 -0
- data/appveyor.yml +56 -0
- data/bin/serverspec-init +7 -0
- data/lib/serverspec.rb +63 -0
- data/lib/serverspec/commands/base.rb +7 -0
- data/lib/serverspec/helper.rb +8 -0
- data/lib/serverspec/helper/type.rb +26 -0
- data/lib/serverspec/matcher.rb +39 -0
- data/lib/serverspec/matcher/be_enabled.rb +13 -0
- data/lib/serverspec/matcher/be_enforcing.rb +10 -0
- data/lib/serverspec/matcher/be_executable.rb +13 -0
- data/lib/serverspec/matcher/be_installed.rb +13 -0
- data/lib/serverspec/matcher/be_listening.rb +13 -0
- data/lib/serverspec/matcher/be_mounted.rb +15 -0
- data/lib/serverspec/matcher/be_permissive.rb +10 -0
- data/lib/serverspec/matcher/be_reachable.rb +17 -0
- data/lib/serverspec/matcher/be_readable.rb +13 -0
- data/lib/serverspec/matcher/be_resolvable.rb +9 -0
- data/lib/serverspec/matcher/be_running.rb +13 -0
- data/lib/serverspec/matcher/be_writable.rb +13 -0
- data/lib/serverspec/matcher/belong_to_group.rb +5 -0
- data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
- data/lib/serverspec/matcher/contain.rb +28 -0
- data/lib/serverspec/matcher/have_entry.rb +14 -0
- data/lib/serverspec/matcher/have_rule.rb +17 -0
- data/lib/serverspec/matcher/have_site_application.rb +18 -0
- data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
- data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
- data/lib/serverspec/power_assert.rb +14 -0
- data/lib/serverspec/setup.rb +338 -0
- data/lib/serverspec/subject.rb +12 -0
- data/lib/serverspec/type/base.rb +30 -0
- data/lib/serverspec/type/bond.rb +11 -0
- data/lib/serverspec/type/bridge.rb +11 -0
- data/lib/serverspec/type/cgroup.rb +17 -0
- data/lib/serverspec/type/command.rb +20 -0
- data/lib/serverspec/type/cron.rb +15 -0
- data/lib/serverspec/type/default_gateway.rb +15 -0
- data/lib/serverspec/type/docker_base.rb +29 -0
- data/lib/serverspec/type/docker_container.rb +27 -0
- data/lib/serverspec/type/docker_image.rb +4 -0
- data/lib/serverspec/type/file.rb +133 -0
- data/lib/serverspec/type/fstab.rb +11 -0
- data/lib/serverspec/type/group.rb +11 -0
- data/lib/serverspec/type/host.rb +21 -0
- data/lib/serverspec/type/iis_app_pool.rb +43 -0
- data/lib/serverspec/type/iis_website.rb +40 -0
- data/lib/serverspec/type/interface.rb +27 -0
- data/lib/serverspec/type/ip6tables.rb +13 -0
- data/lib/serverspec/type/ipfilter.rb +11 -0
- data/lib/serverspec/type/ipnat.rb +11 -0
- data/lib/serverspec/type/iptables.rb +11 -0
- data/lib/serverspec/type/kernel_module.rb +7 -0
- data/lib/serverspec/type/linux_audit_system.rb +45 -0
- data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
- data/lib/serverspec/type/lxc.rb +15 -0
- data/lib/serverspec/type/mail_alias.rb +7 -0
- data/lib/serverspec/type/mysql_config.rb +10 -0
- data/lib/serverspec/type/package.rb +66 -0
- data/lib/serverspec/type/php_config.rb +10 -0
- data/lib/serverspec/type/port.rb +40 -0
- data/lib/serverspec/type/ppa.rb +11 -0
- data/lib/serverspec/type/process.rb +27 -0
- data/lib/serverspec/type/routing_table.rb +11 -0
- data/lib/serverspec/type/selinux.rb +19 -0
- data/lib/serverspec/type/selinux_module.rb +11 -0
- data/lib/serverspec/type/service.rb +52 -0
- data/lib/serverspec/type/user.rb +43 -0
- data/lib/serverspec/type/windows_feature.rb +7 -0
- data/lib/serverspec/type/windows_hot_fix.rb +7 -0
- data/lib/serverspec/type/windows_registry_key.rb +19 -0
- data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
- data/lib/serverspec/type/x509_certificate.rb +76 -0
- data/lib/serverspec/type/x509_private_key.rb +21 -0
- data/lib/serverspec/type/yumrepo.rb +11 -0
- data/lib/serverspec/type/zfs.rb +29 -0
- data/lib/serverspec/version.rb +3 -0
- data/serverspec.gemspec +28 -0
- data/spec/helper/type_spec.rb +6 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/type/aix/file_spec.rb +31 -0
- data/spec/type/aix/group_spec.rb +7 -0
- data/spec/type/aix/package_spec.rb +7 -0
- data/spec/type/aix/port_spec.rb +20 -0
- data/spec/type/aix/service_spec.rb +12 -0
- data/spec/type/aix/user_spec.rb +16 -0
- data/spec/type/arch/file_spec.rb +15 -0
- data/spec/type/arch/package_spec.rb +19 -0
- data/spec/type/arch/service_spec.rb +9 -0
- data/spec/type/base/command_spec.rb +67 -0
- data/spec/type/base/cron_spec.rb +11 -0
- data/spec/type/base/default_gateway_spec.rb +11 -0
- data/spec/type/base/file_spec.rb +356 -0
- data/spec/type/base/group_spec.rb +11 -0
- data/spec/type/base/host_spec.rb +47 -0
- data/spec/type/base/mail_alias_spec.rb +7 -0
- data/spec/type/base/mysql_config_spec.rb +13 -0
- data/spec/type/base/package_spec.rb +51 -0
- data/spec/type/base/php_config_spec.rb +33 -0
- data/spec/type/base/port_spec.rb +34 -0
- data/spec/type/base/process_spec.rb +35 -0
- data/spec/type/base/routing_table_spec.rb +63 -0
- data/spec/type/base/service_spec.rb +49 -0
- data/spec/type/base/user_spec.rb +44 -0
- data/spec/type/darwin/file_spec.rb +41 -0
- data/spec/type/darwin/package_spec.rb +19 -0
- data/spec/type/darwin/port_spec.rb +27 -0
- data/spec/type/darwin/service_spec.rb +16 -0
- data/spec/type/debian/package_spec.rb +23 -0
- data/spec/type/debian/service_spec.rb +11 -0
- data/spec/type/fedora/service_spec.rb +15 -0
- data/spec/type/fedora15/service_spec.rb +15 -0
- data/spec/type/fedora20/service_spec.rb +15 -0
- data/spec/type/freebsd/file_spec.rb +29 -0
- data/spec/type/freebsd/package_spec.rb +19 -0
- data/spec/type/freebsd/port_spec.rb +27 -0
- data/spec/type/freebsd/service_spec.rb +8 -0
- data/spec/type/freebsd10/package_spec.rb +19 -0
- data/spec/type/gentoo/package_spec.rb +7 -0
- data/spec/type/gentoo/service_spec.rb +12 -0
- data/spec/type/linux/bond_spec.rb +12 -0
- data/spec/type/linux/bridge_spec.rb +12 -0
- data/spec/type/linux/cgroup_spec.rb +13 -0
- data/spec/type/linux/docker_container_pre_1_8_spec.rb +124 -0
- data/spec/type/linux/docker_container_spec.rb +126 -0
- data/spec/type/linux/docker_image_spec.rb +94 -0
- data/spec/type/linux/file_spec.rb +27 -0
- data/spec/type/linux/fstab_spec.rb +31 -0
- data/spec/type/linux/interface_spec.rb +30 -0
- data/spec/type/linux/ip6tables_spec.rb +19 -0
- data/spec/type/linux/iptables_spec.rb +11 -0
- data/spec/type/linux/kernel_module_spec.rb +7 -0
- data/spec/type/linux/linux_audit_system_spec.rb +139 -0
- data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
- data/spec/type/linux/lxc_container_spec.rb +12 -0
- data/spec/type/linux/selinux_module_spec.rb +11 -0
- data/spec/type/linux/selinux_spec.rb +23 -0
- data/spec/type/linux/x509_certificate_spec.rb +62 -0
- data/spec/type/linux/x509_private_key_spec.rb +31 -0
- data/spec/type/linux/zfs_spec.rb +15 -0
- data/spec/type/nixos/package_spec.rb +15 -0
- data/spec/type/nixos/service_spec.rb +9 -0
- data/spec/type/openbsd/file_spec.rb +134 -0
- data/spec/type/openbsd/interface_spec.rb +21 -0
- data/spec/type/openbsd/mail_alias_spec.rb +7 -0
- data/spec/type/openbsd/package_spec.rb +11 -0
- data/spec/type/openbsd/port_spec.rb +7 -0
- data/spec/type/openbsd/service_spec.rb +13 -0
- data/spec/type/openbsd/user_spec.rb +12 -0
- data/spec/type/opensuse/service_spec.rb +16 -0
- data/spec/type/plamo/package_spec.rb +8 -0
- data/spec/type/plamo/service_spec.rb +8 -0
- data/spec/type/redhat/file_spec.rb +19 -0
- data/spec/type/redhat/package_spec.rb +23 -0
- data/spec/type/redhat/service_spec.rb +11 -0
- data/spec/type/redhat/yumrepo_spec.rb +11 -0
- data/spec/type/redhat5/iptables_spec.rb +11 -0
- data/spec/type/redhat7/service_spec.rb +9 -0
- data/spec/type/smartos/package_spec.rb +19 -0
- data/spec/type/smartos/service_spec.rb +16 -0
- data/spec/type/solaris/cron_spec.rb +11 -0
- data/spec/type/solaris/file_spec.rb +15 -0
- data/spec/type/solaris/group_spec.rb +7 -0
- data/spec/type/solaris/host_spec.rb +19 -0
- data/spec/type/solaris/ipfilter_spec.rb +7 -0
- data/spec/type/solaris/ipnat_spec.rb +7 -0
- data/spec/type/solaris/package_spec.rb +7 -0
- data/spec/type/solaris/port_spec.rb +34 -0
- data/spec/type/solaris/service_spec.rb +16 -0
- data/spec/type/solaris/user_spec.rb +16 -0
- data/spec/type/solaris/zfs_spec.rb +15 -0
- data/spec/type/solaris10/file_spec.rb +313 -0
- data/spec/type/solaris10/group_spec.rb +8 -0
- data/spec/type/solaris10/host_spec.rb +16 -0
- data/spec/type/solaris10/package_spec.rb +8 -0
- data/spec/type/solaris10/user_spec.rb +8 -0
- data/spec/type/suse/package_spec.rb +23 -0
- data/spec/type/suse/service_spec.rb +11 -0
- data/spec/type/ubuntu/ppa_spec.rb +11 -0
- data/spec/type/ubuntu/service_spec.rb +7 -0
- data/spec/type/windows/command_spec.rb +64 -0
- data/spec/type/windows/feature_spec.rb +17 -0
- data/spec/type/windows/file_spec.rb +120 -0
- data/spec/type/windows/group_spec.rb +23 -0
- data/spec/type/windows/host_spec.rb +32 -0
- data/spec/type/windows/hot_fix_spec.rb +22 -0
- data/spec/type/windows/iis_app_pool_spec.rb +17 -0
- data/spec/type/windows/iis_webisite_spec.rb +16 -0
- data/spec/type/windows/package_spec.rb +10 -0
- data/spec/type/windows/port_spec.rb +25 -0
- data/spec/type/windows/registry_key_spec.rb +58 -0
- data/spec/type/windows/scheduled_task_spec.rb +9 -0
- data/spec/type/windows/service_spec.rb +30 -0
- data/spec/type/windows/user_spec.rb +33 -0
- data/wercker.yml +1 -0
- metadata +450 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'redhat', :release => 5
|
|
4
|
+
|
|
5
|
+
describe iptables do
|
|
6
|
+
it { should have_rule '-P INPUT ACCEPT' }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe iptables do
|
|
10
|
+
it { should have_rule('-P INPUT ACCEPT').with_table('mangle').with_chain('INPUT') }
|
|
11
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'smartos'
|
|
4
|
+
|
|
5
|
+
describe package('httpd') do
|
|
6
|
+
it { should be_installed }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe package('httpd') do
|
|
10
|
+
it { should be_installed.with_version('2.2.15-28.el6') }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe package('httpd') do
|
|
14
|
+
let(:stdout) { "2.2.15\n" }
|
|
15
|
+
its(:version) { should eq '2.2.15' }
|
|
16
|
+
its(:version) { should > '2.2.14' }
|
|
17
|
+
its(:version) { should < '2.2.16' }
|
|
18
|
+
its(:version) { should > '2.2.9' }
|
|
19
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'smartos'
|
|
4
|
+
|
|
5
|
+
describe service('sshd') do
|
|
6
|
+
it { should be_enabled }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe service('sshd') do
|
|
10
|
+
it { should be_running }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe service('sshd') do
|
|
14
|
+
it { should have_property :foo => 'bar' }
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe file('/tmp') do
|
|
6
|
+
it { should be_readable.by_user('mail') }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe file('/tmp') do
|
|
10
|
+
it { should be_writable.by_user('mail') }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe file('/tmp') do
|
|
14
|
+
it { should be_executable.by_user('mail') }
|
|
15
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe host('127.0.0.1') do
|
|
6
|
+
it { should be_reachable }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe host('127.0.0.1') do
|
|
10
|
+
it { should be_reachable.with(:proto => 'icmp', :timeout=> 1) }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe host('127.0.0.1') do
|
|
14
|
+
it { should be_reachable.with(:proto => 'tcp', :port => 22, :timeout=> 1) }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe host('127.0.0.1') do
|
|
18
|
+
it { should be_reachable.with(:proto => 'udp', :port => 53, :timeout=> 1) }
|
|
19
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe port(80) do
|
|
6
|
+
it { should be_listening }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe port(80) do
|
|
10
|
+
it { should be_listening.with('tcp') }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe port(80) do
|
|
14
|
+
it do
|
|
15
|
+
expect {
|
|
16
|
+
should be_listening.with('not implemented')
|
|
17
|
+
}.to raise_error(ArgumentError, %r/\A`be_listening` matcher doesn\'t support/)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe port(80) do
|
|
22
|
+
it { should be_listening.on('127.0.0.1') }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe port(80) do
|
|
26
|
+
it do
|
|
27
|
+
expect{ should be_listening.on('') }.to raise_error(ArgumentError)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
describe port(123) do
|
|
32
|
+
it { should be_listening.with('udp') }
|
|
33
|
+
end
|
|
34
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe service('sshd') do
|
|
6
|
+
it { should be_enabled }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe service('sshd') do
|
|
10
|
+
it { should be_running }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe service('sshd') do
|
|
14
|
+
it { should have_property :foo => 'bar' }
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe user('root') do
|
|
6
|
+
it { should belong_to_group 'root' }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe user('root') do
|
|
10
|
+
it { should have_login_shell '/bin/bash' }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe user('root') do
|
|
14
|
+
it { should have_home_directory '/root' }
|
|
15
|
+
end
|
|
16
|
+
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris'
|
|
4
|
+
|
|
5
|
+
describe zfs('rpool') do
|
|
6
|
+
it { should exist }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe zfs('rpool') do
|
|
10
|
+
it { should have_property 'mountpoint' => '/rpool' }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe zfs('rpool') do
|
|
14
|
+
it { should have_property 'mountpoint' => '/rpool', 'compression' => 'off' }
|
|
15
|
+
end
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'solaris', :release => 10
|
|
4
|
+
|
|
5
|
+
describe file('/etc/ssh/sshd_config') do
|
|
6
|
+
it { should be_file }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe file('/etc/ssh') do
|
|
10
|
+
it { should be_directory }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe file('/var/run/unicorn.sock') do
|
|
14
|
+
it { should be_socket }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe file('/etc/ssh/sshd_config') do
|
|
18
|
+
it { should contain 'This is the sshd server system-wide configuration file' }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe file('/etc/ssh/sshd_config') do
|
|
22
|
+
it { should contain /^This is the sshd server system-wide configuration file/ }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe file('Gemfile') do
|
|
26
|
+
it { should contain('rspec').from(/^group :test do/).to(/^end/) }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe file('Gemfile') do
|
|
30
|
+
it { should contain('rspec').after(/^group :test do/) }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe file('Gemfile') do
|
|
34
|
+
it { should contain('rspec').before(/^end/) }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe file('/etc/passwd') do
|
|
38
|
+
it { should be_mode 644 }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe file('/etc/passwd') do
|
|
42
|
+
it { should be_owned_by 'root' }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe file('/etc/passwd') do
|
|
46
|
+
it { should be_grouped_into 'root' }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe file('/etc/pam.d/system-auth') do
|
|
50
|
+
it { should be_linked_to '/etc/pam.d/system-auth-ac' }
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe file('/dev') do
|
|
54
|
+
let(:stdout) { "755\r\n" }
|
|
55
|
+
it { should be_readable }
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe file('/dev') do
|
|
59
|
+
let(:stdout) { "333\r\n" }
|
|
60
|
+
it { should_not be_readable }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
describe file('/dev') do
|
|
64
|
+
let(:stdout) { "400\r\n" }
|
|
65
|
+
it { should be_readable.by('owner') }
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
describe file('/dev') do
|
|
69
|
+
let(:stdout) { "044\r\n" }
|
|
70
|
+
it { should_not be_readable.by('owner') }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
describe file('/dev') do
|
|
74
|
+
let(:stdout) { "040\r\n" }
|
|
75
|
+
it { should be_readable.by('group') }
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
describe file('/dev') do
|
|
79
|
+
let(:stdout) { "404\r\n" }
|
|
80
|
+
it { should_not be_readable.by('group') }
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe file('/dev') do
|
|
84
|
+
let(:stdout) { "044\r\n" }
|
|
85
|
+
it { should be_readable.by('others') }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
describe file('/dev') do
|
|
89
|
+
let(:stdout) { "443\r\n" }
|
|
90
|
+
it { should_not be_readable.by('others') }
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe file('/dev') do
|
|
94
|
+
let(:stdout) { "755\r\n" }
|
|
95
|
+
it { should be_writable }
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
describe file('/dev') do
|
|
99
|
+
let(:stdout) { "555\r\n" }
|
|
100
|
+
it { should_not be_writable }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
describe file('/dev') do
|
|
104
|
+
let(:stdout) { "200\r\n" }
|
|
105
|
+
it { should be_writable.by('owner') }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
describe file('/dev') do
|
|
109
|
+
let(:stdout) { "555\r\n" }
|
|
110
|
+
it { should_not be_writable.by('owner') }
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
describe file('/dev') do
|
|
114
|
+
let(:stdout) { "030\r\n" }
|
|
115
|
+
it { should be_writable.by('group') }
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
describe file('/dev') do
|
|
119
|
+
let(:stdout) { "555\r\n" }
|
|
120
|
+
it { should_not be_writable.by('group') }
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
describe file('/dev') do
|
|
124
|
+
let(:stdout) { "666\r\n" }
|
|
125
|
+
it { should be_writable.by('others') }
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
describe file('/dev') do
|
|
129
|
+
let(:stdout) { "555\r\n" }
|
|
130
|
+
it { should_not be_writable.by('others') }
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
describe file('/dev') do
|
|
135
|
+
let(:stdout) { "755\r\n" }
|
|
136
|
+
it { should be_executable }
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
describe file('/dev') do
|
|
140
|
+
let(:stdout) { "666\r\n" }
|
|
141
|
+
it { should_not be_executable }
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
describe file('/dev') do
|
|
145
|
+
let(:stdout) { "100\r\n" }
|
|
146
|
+
it { should be_executable.by('owner') }
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
describe file('/dev') do
|
|
150
|
+
let(:stdout) { "666\r\n" }
|
|
151
|
+
it { should_not be_executable.by('owner') }
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
describe file('/dev') do
|
|
155
|
+
let(:stdout) { "070\r\n" }
|
|
156
|
+
it { should be_executable.by('group') }
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
describe file('/dev') do
|
|
160
|
+
let(:stdout) { "666\r\n" }
|
|
161
|
+
it { should_not be_executable.by('group') }
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
describe file('/dev') do
|
|
165
|
+
let(:stdout) { "001\r\n" }
|
|
166
|
+
it { should be_executable.by('others') }
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
describe file('/dev') do
|
|
170
|
+
let(:stdout) { "666\r\n" }
|
|
171
|
+
it { should_not be_executable.by('others') }
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
describe file('/') do
|
|
175
|
+
it { should be_mounted }
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
describe file('/') do
|
|
179
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
180
|
+
it { should be_mounted.with( :type => 'ext4' ) }
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
describe file('/') do
|
|
184
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
185
|
+
it { should be_mounted.with( :type => 'ext4', :options => { :rw => true } ) }
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
describe file('/') do
|
|
189
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
190
|
+
it { should be_mounted.with( :type => 'ext4', :options => { :mode => 620 } ) }
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
describe file('/') do
|
|
194
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
195
|
+
it { should be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_root' ) }
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
describe file('/') do
|
|
199
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
200
|
+
it { should_not be_mounted.with( :type => 'xfs' ) }
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
describe file('/') do
|
|
204
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
205
|
+
it { should_not be_mounted.with( :type => 'ext4', :options => { :rw => false } ) }
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
describe file('/') do
|
|
209
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
210
|
+
it { should_not be_mounted.with( :type => 'ext4', :options => { :mode => 600 } ) }
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
describe file('/') do
|
|
214
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
215
|
+
it { should_not be_mounted.with( :type => 'xfs', :device => '/dev/mapper/VolGroup-lv_root' ) }
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
describe file('/') do
|
|
219
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
220
|
+
it { should_not be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_r00t' ) }
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
describe file('/') do
|
|
224
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
225
|
+
it do
|
|
226
|
+
should be_mounted.only_with(
|
|
227
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
228
|
+
:type => 'ext4',
|
|
229
|
+
:options => {
|
|
230
|
+
:rw => true,
|
|
231
|
+
:mode => 620,
|
|
232
|
+
}
|
|
233
|
+
)
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
describe file('/') do
|
|
238
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
239
|
+
it do
|
|
240
|
+
should_not be_mounted.only_with(
|
|
241
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
242
|
+
:type => 'ext4',
|
|
243
|
+
:options => {
|
|
244
|
+
:rw => true,
|
|
245
|
+
:mode => 620,
|
|
246
|
+
:bind => true,
|
|
247
|
+
}
|
|
248
|
+
)
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
describe file('/') do
|
|
253
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
254
|
+
it do
|
|
255
|
+
should_not be_mounted.only_with(
|
|
256
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
257
|
+
:type => 'ext4',
|
|
258
|
+
:options => {
|
|
259
|
+
:rw => true,
|
|
260
|
+
}
|
|
261
|
+
)
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
describe file('/') do
|
|
266
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
267
|
+
it do
|
|
268
|
+
should_not be_mounted.only_with(
|
|
269
|
+
:device => '/dev/mapper/VolGroup-lv_roooooooooot',
|
|
270
|
+
:type => 'ext4',
|
|
271
|
+
:options => {
|
|
272
|
+
:rw => true,
|
|
273
|
+
:mode => 620,
|
|
274
|
+
}
|
|
275
|
+
)
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
describe file('/etc/services') do
|
|
280
|
+
let(:stdout) { "35435ea447c19f0ea5ef971837ab9ced\n" }
|
|
281
|
+
its(:md5sum) { should eq '35435ea447c19f0ea5ef971837ab9ced' }
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
describe file('/etc/services') do
|
|
285
|
+
let(:stdout) {"0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a" }
|
|
286
|
+
its(:md5sum) { should eq '0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a' }
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
describe file('/etc/passwd') do
|
|
290
|
+
let(:stdout) {<<EOF
|
|
291
|
+
root:x:0:0:root:/root:/bin/bash
|
|
292
|
+
bin:x:1:1:bin:/bin:/sbin/nologin
|
|
293
|
+
daemon:x:2:2:daemon:/sbin:/sbin/nologin
|
|
294
|
+
sync:x:5:0:sync:/sbin:/bin/sync
|
|
295
|
+
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
|
|
296
|
+
halt:x:7:0:halt:/sbin:/sbin/halt
|
|
297
|
+
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
|
|
298
|
+
operator:x:11:0:operator:/root:/sbin/nologin
|
|
299
|
+
nobody:x:99:99:Nobody:/:/sbin/nologin
|
|
300
|
+
dbus:x:81:81:System message bus:/:/sbin/nologin
|
|
301
|
+
EOF
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
its(:content) { should match /root:x:0:0/ }
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
describe file('/etc/passwd') do
|
|
308
|
+
it 'be_immutable is not implemented in base class' do
|
|
309
|
+
expect {
|
|
310
|
+
should be_immutable
|
|
311
|
+
}.to raise_exception
|
|
312
|
+
end
|
|
313
|
+
end
|