Class: Chef::FileAccessControl

Inherits:
Object
  • Object
show all
Includes:
Unix, Windows
Defined in:
lib/chef/file_access_control.rb,
lib/chef/file_access_control/unix.rb,
lib/chef/file_access_control/windows.rb

Overview

Chef::FileAccessControl

FileAccessControl objects set the owner, group and mode of file to the values specified by a value object, usually a Chef::Resource.

Defined Under Namespace

Modules: Unix, Windows

Constant Summary

Constants included from Unix

Unix::UID_MAX, Unix::UINT

Constants included from Windows

Windows::ACE, Windows::ACL, Windows::SID, Windows::Security

Constants included from Win32::API::Security

Win32::API::Security::ACCESS_ALLOWED_ACE_TYPE, Win32::API::Security::ACCESS_ALLOWED_CALLBACK_ACE_TYPE, Win32::API::Security::ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_ALLOWED_COMPOUND_ACE_TYPE, Win32::API::Security::ACCESS_ALLOWED_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_DENIED_ACE_TYPE, Win32::API::Security::ACCESS_DENIED_CALLBACK_ACE_TYPE, Win32::API::Security::ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_DENIED_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_V2_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_V3_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_V4_ACE_TYPE, Win32::API::Security::ACCESS_MAX_MS_V5_ACE_TYPE, Win32::API::Security::ACCESS_MIN_MS_ACE_TYPE, Win32::API::Security::ACCESS_MIN_MS_OBJECT_ACE_TYPE, Win32::API::Security::ACCESS_SYSTEM_SECURITY, Win32::API::Security::ACL_REVISION, Win32::API::Security::ACL_REVISION1, Win32::API::Security::ACL_REVISION2, Win32::API::Security::ACL_REVISION3, Win32::API::Security::ACL_REVISION4, Win32::API::Security::ACL_REVISION_DS, Win32::API::Security::CONTAINER_INHERIT_ACE, Win32::API::Security::DACL_SECURITY_INFORMATION, Win32::API::Security::DELETE, Win32::API::Security::FAILED_ACCESS_ACE_FLAG, Win32::API::Security::FILE_ADD_FILE, Win32::API::Security::FILE_ADD_SUBDIRECTORY, Win32::API::Security::FILE_ALL_ACCESS, Win32::API::Security::FILE_APPEND_DATA, Win32::API::Security::FILE_CREATE_PIPE_INSTANCE, Win32::API::Security::FILE_DELETE_CHILD, Win32::API::Security::FILE_EXECUTE, Win32::API::Security::FILE_GENERIC_EXECUTE, Win32::API::Security::FILE_GENERIC_READ, Win32::API::Security::FILE_GENERIC_WRITE, Win32::API::Security::FILE_LIST_DIRECTORY, Win32::API::Security::FILE_READ_ATTRIBUTES, Win32::API::Security::FILE_READ_DATA, Win32::API::Security::FILE_READ_EA, Win32::API::Security::FILE_TRAVERSE, Win32::API::Security::FILE_WRITE_ATTRIBUTES, Win32::API::Security::FILE_WRITE_DATA, Win32::API::Security::FILE_WRITE_EA, Win32::API::Security::GENERIC_ALL, Win32::API::Security::GENERIC_EXECUTE, Win32::API::Security::GENERIC_READ, Win32::API::Security::GENERIC_WRITE, Win32::API::Security::GROUP_SECURITY_INFORMATION, Win32::API::Security::INHERITED_ACE, Win32::API::Security::INHERIT_ONLY_ACE, Win32::API::Security::LABEL_SECURITY_INFORMATION, Win32::API::Security::MAXDWORD, Win32::API::Security::MAX_ACL_REVISION, Win32::API::Security::MIN_ACL_REVISION, Win32::API::Security::NO_PROPAGATE_INHERIT_ACE, Win32::API::Security::OBJECT_INHERIT_ACE, Win32::API::Security::OWNER_SECURITY_INFORMATION, Win32::API::Security::PROTECTED_DACL_SECURITY_INFORMATION, Win32::API::Security::PROTECTED_SACL_SECURITY_INFORMATION, Win32::API::Security::READ_CONTROL, Win32::API::Security::SACL_SECURITY_INFORMATION, Win32::API::Security::SECURITY_DESCRIPTOR_MIN_LENGTH, Win32::API::Security::SECURITY_DESCRIPTOR_REVISION, Win32::API::Security::SECURITY_DESCRIPTOR_REVISION1, Win32::API::Security::SE_DACL_AUTO_INHERITED, Win32::API::Security::SE_DACL_AUTO_INHERIT_REQ, Win32::API::Security::SE_DACL_DEFAULTED, Win32::API::Security::SE_DACL_PRESENT, Win32::API::Security::SE_DACL_PROTECTED, Win32::API::Security::SE_GROUP_DEFAULTED, Win32::API::Security::SE_OBJECT_TYPE, Win32::API::Security::SE_OWNER_DEFAULTED, Win32::API::Security::SE_PRIVILEGE_ENABLED, Win32::API::Security::SE_PRIVILEGE_ENABLED_BY_DEFAULT, Win32::API::Security::SE_PRIVILEGE_REMOVED, Win32::API::Security::SE_PRIVILEGE_USED_FOR_ACCESS, Win32::API::Security::SE_PRIVILEGE_VALID_ATTRIBUTES, Win32::API::Security::SE_RM_CONTROL_VALID, Win32::API::Security::SE_SACL_AUTO_INHERITED, Win32::API::Security::SE_SACL_AUTO_INHERIT_REQ, Win32::API::Security::SE_SACL_DEFAULTED, Win32::API::Security::SE_SACL_PRESENT, Win32::API::Security::SE_SACL_PROTECTED, Win32::API::Security::SE_SELF_RELATIVE, Win32::API::Security::SID_NAME_USE, Win32::API::Security::SPECIFIC_RIGHTS_ALL, Win32::API::Security::STANDARD_RIGHTS_ALL, Win32::API::Security::STANDARD_RIGHTS_EXECUTE, Win32::API::Security::STANDARD_RIGHTS_READ, Win32::API::Security::STANDARD_RIGHTS_REQUIRED, Win32::API::Security::STANDARD_RIGHTS_WRITE, Win32::API::Security::SUCCESSFUL_ACCESS_ACE_FLAG, Win32::API::Security::SYNCHRONIZE, Win32::API::Security::SYSTEM_ALARM_ACE_TYPE, Win32::API::Security::SYSTEM_ALARM_CALLBACK_ACE_TYPE, Win32::API::Security::SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE, Win32::API::Security::SYSTEM_ALARM_OBJECT_ACE_TYPE, Win32::API::Security::SYSTEM_AUDIT_ACE_TYPE, Win32::API::Security::SYSTEM_AUDIT_CALLBACK_ACE_TYPE, Win32::API::Security::SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE, Win32::API::Security::SYSTEM_AUDIT_OBJECT_ACE_TYPE, Win32::API::Security::SYSTEM_MANDATORY_LABEL_ACE_TYPE, Win32::API::Security::TOKEN_ADJUST_DEFAULT, Win32::API::Security::TOKEN_ADJUST_GROUPS, Win32::API::Security::TOKEN_ADJUST_PRIVILEGES, Win32::API::Security::TOKEN_ADJUST_SESSIONID, Win32::API::Security::TOKEN_ALL_ACCESS, Win32::API::Security::TOKEN_ASSIGN_PRIMARY, Win32::API::Security::TOKEN_DUPLICATE, Win32::API::Security::TOKEN_IMPERSONATE, Win32::API::Security::TOKEN_QUERY, Win32::API::Security::TOKEN_QUERY_SOURCE, Win32::API::Security::TOKEN_READ, Win32::API::Security::UNPROTECTED_DACL_SECURITY_INFORMATION, Win32::API::Security::UNPROTECTED_SACL_SECURITY_INFORMATION, Win32::API::Security::VALID_INHERIT_FLAGS, Win32::API::Security::WRITE_DAC, Win32::API::Security::WRITE_OWNER

Constants included from Win32::API

Win32::API::WIN32_EPOC_MINUS_POSIX_EPOC

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Unix

#diminished_radix_complement, #set_all, #set_group, #set_mode, #set_owner, #stat, #target_gid, #target_mode, #target_uid

Methods included from Windows

#set_all

Methods included from Win32::API

extended, #make_uint64, #wtime_to_time

Constructor Details

#initialize(resource, file) ⇒ FileAccessControl

FileAccessControl objects set the owner, group and mode of file to the values specified by resource. file is completely independent of any file or path attribute on resource, so it is possible to set access control settings on a tempfile (for example).

Arguments:

resource: probably a Chef::Resource::File object (or subclass), but

this is not required. Must respond to +owner+, +group+,
and +mode+

file: The file whose access control settings you wish to modify,

given as a String.


50
51
52
53
# File 'lib/chef/file_access_control.rb', line 50

def initialize(resource, file)
  @resource, @file = resource, file
  @modified = false
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



38
39
40
# File 'lib/chef/file_access_control.rb', line 38

def file
  @file
end

#resourceObject (readonly)

Returns the value of attribute resource.



37
38
39
# File 'lib/chef/file_access_control.rb', line 37

def resource
  @resource
end

Instance Method Details

#modified?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/chef/file_access_control.rb', line 55

def modified?
  @modified
end