Ссылка 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
использовать текущее средство выделения по умолчанию.fileSec
CFFileSecurityRef
возразите для копирования.Возвращаемое значение
Возвращает новое
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 );
Параметры
fileSec
CFFileSecurityRef
объект.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 );
Параметры
fileSec
CFFileSecurityRef
объект.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 );
Параметры
fileSec
CFFileSecurityRef
объект.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 );
Параметры
fileSec
CFFileSecurityRef
объект.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 );
Параметры
fileSec
CFFileSecurityRef
объект.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 );
Параметры
fileSec
CFFileSecurityRef
объект.owner
Адрес целого числа типа
uid_t
.Возвращаемое значение
Возвраты
true
если владелец ID был сохранен в адресе, которым указываютowner
, илиfalse
если нет никакого свойства владельца ИДА, связанного с этимCFFileSecurityRef
объект.Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.7 и позже.
-
Возвращает идентификатор типа для
CFFileSecurityRef
непрозрачный тип.Объявление
Swift
func CFFileSecurityGetTypeID() -> CFTypeID
Objective 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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 );
Параметры
fileSec
CFFileSecurityRef
объект изменить.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 = CFFileSecurity
Objective 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
Константы
-
kCFFileSecurityRemoveACL
kCFFileSecurityRemoveACL
Специальный 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 };
Константы
-
Owner
kCFFileSecurityClearOwner
Очистите (POSIX) владельца ID.
Доступный в OS X v10.8 и позже.
-
Group
kCFFileSecurityClearGroup
Очистите (POSIX) группу ID.
Доступный в OS X v10.8 и позже.
-
Mode
kCFFileSecurityClearMode
Очистите режим файла (полномочия POSIX).
Доступный в OS X v10.8 и позже.
-
OwnerUUID
kCFFileSecurityClearOwnerUUID
Очистите владельца UUID (для списка управления доступом).
Доступный в OS X v10.8 и позже.
-
GroupUUID
kCFFileSecurityClearGroupUUID
Очистите группу UUID (для списка управления доступом).
Доступный в OS X v10.8 и позже.
-
AccessControlList
kCFFileSecurityClearAccessControlList
Очистите список управления доступом.
Доступный в OS X v10.8 и позже.
-