Module: Chef::Util::Selinux

Includes:
Mixin::ShellOut, Mixin::Which
Included in:
Provider::File
Defined in:
lib/chef/util/selinux.rb

Overview

IMPORTANT: We assume that selinux utilities are installed on an selinux enabled server. Provisioning an selinux enabled server without selinux utilities is not supported.

Constant Summary collapse

@@selinux_enabled =

We want to initialize below variables once during a chef-client run therefore they are class variables.

nil
@@restorecon_path =
nil
@@selinuxenabled_path =
nil

Instance Method Summary collapse

Methods included from Mixin::ShellOut

apply_default_env, maybe_add_timeout, #shell_out, #shell_out!

Instance Method Details

#restore_security_context(file_path, recursive = false) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/chef/util/selinux.rb', line 49

def restore_security_context(file_path, recursive = false)
  if restorecon_path
    restorecon_flags = [ "-R" ]
    restorecon_flags << "-r" if recursive
    restorecon_flags << file_path
    Chef::Log.trace("Restoring selinux security content with #{restorecon_path}")
    shell_out!(restorecon_path, restorecon_flags)
  else
    Chef::Log.warn "Can not find 'restorecon' on the system. Skipping selinux security context restore."
  end
end

#selinux_enabled?Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'lib/chef/util/selinux.rb', line 44

def selinux_enabled?
  @@selinux_enabled = check_selinux_enabled? if @@selinux_enabled.nil?
  @@selinux_enabled
end