Ссылка CFFileSecurity
В OS X много различных систем авторизации влияют, может ли процесс получить доступ к файлам и каталогам, включая полномочия POSIX и списки управления доступом (ACLs).
Код, копирующий файлы и каталоги, должен получить и установить всю информацию о защите файлов, чтобы гарантировать, что сохраняется управление доступом. CFFileSecurity API обеспечивает отдельный объект, инкапсулирующий информацию о защите файлов из многократных источников, таким образом помогая Вам избегающий частых ошибок (таких как копирование полномочий POSIX файла, но не его списка управления доступом). Можно получить эту информацию путем выяснения NSURLFileSecurityKey свойство основанного на файле NSURL возразите или kCFURLFileSecurityKey свойство основанного на файле CFURLRef объект.
Кроме того, CFFileSecurity API обеспечивает путь к приложениям, чтобы получить и установить отдельные свойства так, чтобы они могли обеспечить пользовательский интерфейс для отображения и изменения полномочий.
Для получения дополнительной информации о том, как полномочия и списки управления доступом взаимодействуют для ограничения доступа к файлам, считайте Защиту файловой системы OS X в Руководстве по программированию Файловой системы.
-
Создает a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityCreate(_allocator: CFAllocator!) -> CFFileSecurity!Objective C
CFFileSecurityRef CFFileSecurityCreate ( CFAllocatorRef allocator );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.Возвращаемое значение
Возвращает новое
CFFileSecurityRefобъект, илиNULLесли произошла ошибка. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Создает копию a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityCreateCopy(_allocator: CFAllocator!, _fileSec: CFFileSecurity!) -> CFFileSecurity!Objective C
CFFileSecurityRef CFFileSecurityCreateCopy ( CFAllocatorRef allocator, CFFileSecurityRef fileSec );Параметры
allocatorСредство выделения для использования для выделения памяти для нового объекта. Передача
NULLилиkCFAllocatorDefaultиспользовать текущее средство выделения по умолчанию.fileSecCFFileSecurityRefвозразите для копирования.Возвращаемое значение
Возвращает новое
CFFileSecurityRefобъект, илиNULLесли произошла ошибка. Владение соблюдает Создать Правило.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Копирует список управления доступом, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityCopyAccessControlList(_fileSec: CFFileSecurity!, _accessControlList: UnsafeMutablePointer<acl_t>) -> BooleanObjective C
Boolean CFFileSecurityCopyAccessControlList ( CFFileSecurityRef fileSec, acl_t *accessControlList );Параметры
fileSecCFFileSecurityRefобъект.accessControlListУказатель на объект acl_t. Получающийся ACL может быть освобожден путем вызова
acl_free(3) OS X Manual Page.Возвращаемое значение
Возвраты
trueесли ACL был успешно скопирован, илиfalseесли нет никакого свойства ACL, связанного сCFFileSecurityRefобъект.Обсуждение
Можно управлять
acl_tобъект с помощью вызовов acl, определенных в<sys/acl.h>. Для получения дополнительной информации посмотритеaclстраница руководства.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Копирует группу UUID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityCopyGroupUUID(_fileSec: CFFileSecurity!, _groupUUID: UnsafeMutablePointer<Unmanaged<CFUUID>?>) -> BooleanObjective C
Boolean CFFileSecurityCopyGroupUUID ( CFFileSecurityRef fileSec, CFUUIDRef *groupUUID );Параметры
fileSecCFFileSecurityRefобъект.groupUUIDАдрес a
CFUUIDRefгде сохранены результаты.Возвращаемое значение
Возвраты
trueесли группа UUID была успешно скопирована, илиfalseесли нет никакого свойства UUID группы, связанного с этимCFFileSecurityRefобъект.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Копирует владельца UUID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityCopyOwnerUUID(_fileSec: CFFileSecurity!, _ownerUUID: UnsafeMutablePointer<Unmanaged<CFUUID>?>) -> BooleanObjective C
Boolean CFFileSecurityCopyOwnerUUID ( CFFileSecurityRef fileSec, CFUUIDRef *ownerUUID );Параметры
fileSecCFFileSecurityRefобъект.ownerUUIDАдрес a
CFUUIDRefгде сохранены результаты.Возвращаемое значение
Возвраты
trueесли владелец UUID был успешно скопирован, илиfalseесли нет никакого свойства UUID владельца, связанного с этимCFFileSecurityRefобъект.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Получает группу ID, связанный с a
CFFileSecurityRefобъектОбъявление
Swift
func CFFileSecurityGetGroup(_fileSec: CFFileSecurity!, _group: UnsafeMutablePointer<gid_t>) -> BooleanObjective C
Boolean CFFileSecurityGetGroup ( CFFileSecurityRef fileSec, gid_t *group );Параметры
fileSecCFFileSecurityRefобъект.groupАдрес целого числа типа
gid_t.Возвращаемое значение
Возвраты
trueесли группа ID была сохранена в адресе, которым указываютgroup, илиfalseесли нет никакого свойства адреса, связанного с этимCFFileSecurityRefобъект.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Связали режим файла с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityGetMode(_fileSec: CFFileSecurity!, _mode: UnsafeMutablePointer<mode_t>) -> BooleanObjective C
Boolean CFFileSecurityGetMode ( CFFileSecurityRef fileSec, mode_t *mode );Параметры
fileSecCFFileSecurityRefобъект.modeАдрес целого числа типа
mode_t.Возвращаемое значение
Возвраты
trueесли режим файла был сохранен в адресе, которым указываютmode, илиfalseесли нет никакого свойства режима файла, связанного с этимCFFileSecurityRefобъект.Обсуждение
Для получения дополнительной информации о числовых режимах файла посмотрите
chmod(2)страница руководства и определения в/usr/include/sys/stat.h.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Получает владельца ID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityGetOwner(_fileSec: CFFileSecurity!, _owner: UnsafeMutablePointer<uid_t>) -> BooleanObjective C
Boolean CFFileSecurityGetOwner ( CFFileSecurityRef fileSec, uid_t *owner );Параметры
fileSecCFFileSecurityRefобъект.ownerАдрес целого числа типа
uid_t.Возвращаемое значение
Возвраты
trueесли владелец ID был сохранен в адресе, которым указываютowner, илиfalseесли нет никакого свойства владельца ИДА, связанного с этимCFFileSecurityRefобъект.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Возвращает идентификатор типа для
CFFileSecurityRefнепрозрачный тип.Объявление
Swift
func CFFileSecurityGetTypeID() -> CFTypeIDObjective C
CFTypeID CFFileSecurityGetTypeID ( void );Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает список управления доступом, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetAccessControlList(_fileSec: CFFileSecurity!, _accessControlList: acl_t) -> BooleanObjective C
Boolean CFFileSecuritySetAccessControlList ( CFFileSecurityRef fileSec, acl_t accessControlList );Параметры
fileSecCFFileSecurityRefобъект изменить.accessControlListСписок управления доступом для установки, или
kCFFileSecurityRemoveACLуказать, что список управления доступом должен быть удален из файла, илиNULLсбрасывать свойство списка управления доступом в объекте.Возвращаемое значение
Возвраты
trueесли список управления доступом был успешно установлен, илиfalseиначе.Обсуждение
Удалить список управления доступом из объекта файловой системы, передачи
kCFFileSecurityRemoveACLкакaccessControlListпараметр. Затем вызовитеCFURLSetResourcePropertyForKeyустановитьkCFURLFileSecurityKeyк получающемусяfileSecобъект.Установка
accessControlListкNULLсбрасывает свойство ACLCFFileSecurityRefобъект. Путем выполнения этого список управления доступом файла будет неизменен при последующем использовании этого объекта установить полномочия на объекте фактической файловой системы.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает группу ID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetGroup(_fileSec: CFFileSecurity!, _group: gid_t) -> BooleanObjective C
Boolean CFFileSecuritySetGroup ( CFFileSecurityRef fileSec, gid_t group );Параметры
fileSecCFFileSecurityRefобъект изменить.groupЦелое число типа
gid_t.Возвращаемое значение
Возвраты
trueесли группа ID была успешно установлена, иначеfalse.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает группу UUID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetGroupUUID(_fileSec: CFFileSecurity!, _groupUUID: CFUUID!) -> BooleanObjective C
Boolean CFFileSecuritySetGroupUUID ( CFFileSecurityRef fileSec, CFUUIDRef groupUUID );Параметры
fileSecCFFileSecurityRefобъект изменить.groupUUIDГруппа UUID для установки.
Возвращаемое значение
Возвраты
trueесли группа UUID была успешно установлена, иначеfalse.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает режим файла, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetMode(_fileSec: CFFileSecurity!, _mode: mode_t) -> BooleanObjective C
Boolean CFFileSecuritySetMode ( CFFileSecurityRef fileSec, mode_t mode );Параметры
fileSecCFFileSecurityRefобъект изменить.modeЦелое число типа
mode_t.Возвращаемое значение
Возвраты
trueесли свойство режима файла было успешно установлено, иначеfalse.Обсуждение
Для получения дополнительной информации о числовых режимах файла посмотрите
chmod(2)страница руководства и определения в/usr/include/sys/stat.h.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает владельца ID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetOwner(_fileSec: CFFileSecurity!, _owner: uid_t) -> BooleanObjective C
Boolean CFFileSecuritySetOwner ( CFFileSecurityRef fileSec, uid_t owner );Параметры
fileSecCFFileSecurityRefобъект изменить.ownerЦелое число типа
uid_t.Возвращаемое значение
Возвраты
trueесли свойство владельца ИДА было успешно установлено, иначеfalse.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Устанавливает владельца UUID, связанный с a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecuritySetOwnerUUID(_fileSec: CFFileSecurity!, _ownerUUID: CFUUID!) -> BooleanObjective C
Boolean CFFileSecuritySetOwnerUUID ( CFFileSecurityRef fileSec, CFUUIDRef ownerUUID );Параметры
fileSecCFFileSecurityRefобъект изменить.ownerUUIDВладелец UUID для установки.
Возвращаемое значение
Возвраты
trueесли свойство UUID владельца было успешно установлено, иначеfalse.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Очищает свойства от a
CFFileSecurityRefобъект.Объявление
Swift
func CFFileSecurityClearProperties(_fileSec: CFFileSecurity!, _clearPropertyMask: CFFileSecurityClearOptions) -> BooleanObjective C
Boolean CFFileSecurityClearProperties ( CFFileSecurityRef fileSec, CFFileSecurityClearOptions clearPropertyMask );Параметры
clearPropertyMaskСвойства защиты файлов для очистки.
Возвращаемое значение
Возвраты
trueесли свойства защиты файлов были успешно очищены, илиfalseиначе.Обсуждение
Одно общее использование для
CFFileSecurityRefобъекты состоят в том, чтобы клонировать полномочия от одного файла до другого. В этом использовании можно хотеть скопировать только подмножество полномочий. Эта функция позволяет Вам удалить определенные полномочия, которые Вы не хотите изменять до применения набора полномочий к различному файлу.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.8 и позже.
-
Инкапсулирует информацию о безопасности объекта файловой системы в Базовом объекте Основы.
Объявление
Swift
typealias CFFileSecurityRef = CFFileSecurityObjective C
typedef struct __CFFileSecurity* CFFileSecurityRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.7 и позже.
-
Эти постоянные ACLs служат определенным целям, как описано индивидуально.
Объявление
Objective C
#define kCFFileSecurityRemoveACL (acl_t) _FILESEC_REMOVE_ACLКонстанты
-
kCFFileSecurityRemoveACLkCFFileSecurityRemoveACLСпециальный ACL, которому можно передать
CFFileSecuritySetAccessControlListудалить любой существующий список управления доступом из объекта файловой системы.Доступный в OS X v10.7 и позже.
-
-
Битовое «ИЛИ» значений из этого списка может использоваться в
clearPropertyMaskпараметрCFFileSecurityClearProperties.Объявление
Swift
struct CFFileSecurityClearOptions : RawOptionSetType { init(_rawValue: CFOptionFlags) init(rawValuerawValue: CFOptionFlags) static var Owner: CFFileSecurityClearOptions { get } static var Group: CFFileSecurityClearOptions { get } static var Mode: CFFileSecurityClearOptions { get } static var OwnerUUID: CFFileSecurityClearOptions { get } static var GroupUUID: CFFileSecurityClearOptions { get } static var AccessControlList: CFFileSecurityClearOptions { get } }Objective C
enum { kCFFileSecurityClearOwner = 1UL << 0, kCFFileSecurityClearGroup = 1UL << 1, kCFFileSecurityClearMode = 1UL << 2, kCFFileSecurityClearOwnerUUID = 1UL << 3, kCFFileSecurityClearGroupUUID = 1UL << 4, kCFFileSecurityClearAccessControlList = 1UL << 5 };Константы
-
OwnerkCFFileSecurityClearOwnerОчистите (POSIX) владельца ID.
Доступный в OS X v10.8 и позже.
-
GroupkCFFileSecurityClearGroupОчистите (POSIX) группу ID.
Доступный в OS X v10.8 и позже.
-
ModekCFFileSecurityClearModeОчистите режим файла (полномочия POSIX).
Доступный в OS X v10.8 и позже.
-
OwnerUUIDkCFFileSecurityClearOwnerUUIDОчистите владельца UUID (для списка управления доступом).
Доступный в OS X v10.8 и позже.
-
GroupUUIDkCFFileSecurityClearGroupUUIDОчистите группу UUID (для списка управления доступом).
Доступный в OS X v10.8 и позже.
-
AccessControlListkCFFileSecurityClearAccessControlListОчистите список управления доступом.
Доступный в OS X v10.8 и позже.
-
