SliTaz Man Pages

Community Doc Forum Pro Shop Bugs Hg Cook

facl.

Section: Misc. Reference Manual Pages ()
Updated: MOPS 1.0
Index Return to Main Contents

НАЗВАНИЕ

acl, facl - Выводят и изменяют списки прав доступа к файлу.

СИНТАКСИС

#include
#include

int acl(const char~*pathp, int cmd, int aclcnt, acl_entry_t~*aclentp);

int facl(int filedes, int cmd, int aclcnt, acl_entry_t~*aclentp);

ОПИСАНИЕ

Эти системные вызовы считывают и изменяют списки прав доступа (ACL) к файлам и директориям. Для считывания ACL требуется доступ к файлу. Установка параметров ACL разрешена только для пользователя-владельца файла и пользователя с именем root. acl управляет ACL с помощью файла с именем pathp. facl идентична acl, только управление ACL происходит с помощью открытого файла с файловым дескриптором filedes.

Параметр cmd может принимать одно из следующих значений для вывода списка ACL, номера элемента списка ACL или для изменения списка ACL:



ACL_GETACL
ACL_SETACL
ACL_GETACLCNT
ACL_HASACL
ACL_BLOCKS


Операция ACL_GETACL осуществляет поиск АCL к файлу. Параметр aclentp должен указать на буфер, который может хранить элементы aclcnt типа acl_entry_t.

Операция ACL_SETACL изменяет ACL. Новый ACL заменяет старый. Для изменения ACL параметр aclentp содержит элементы списка ACL. Параметр aclcnt содержит количество устанавливаемых элементов списка ACL.

Операция ACL_GETACLCNT осуществляет поиск номера элемента в списке ACL. Параметры aclentp и aclcnt не принимают никакого значения для этой операции.

Операция ACL_HASACL возвращает следующие значения: CL_HAS_TYPE_ACCESS, ACL_HAS_TYPE_DEFAULT. Бит ACL_HAS_TYPE_ACCESS установлен тогда, когда файл имеет ACL с установленными базовыми элементами (права доступа для владельца, группы-владельца и всех остальных).

Операция ACL_BLOCKS возвращает количество блоков (размером по 512 байт), распределенных для ACL. Параметры aclentp и aclcnt не принимают никакого значения в этой операции.

Тип acl_entry_t определяется следующим образом:


typedef unsigned int acl_perms;
typedef struct {

    unsigned int  a_type;

    unsigned int  a_id[1];

    acl_perms     a_perm;
} acl_entry_t;

Поле a_type определяет тип элемента списка ACL. Это поле може принимать одно из следующих значений:



ACL_USER_OBJ (владелец)
ACL_USER (отдельный пользователь)
ACL_GROUP_OBJ (группа)
ACL_GROUP (отдельная группа)
ACL_MASK (маска эффективных прав)
ACL_OTHER_OBJ (все остальные)
ACL_DEF_USER_OBJ (владелец по умолчанию)
ACL_DEF_USER (отдельный пользователь по умолчанию)
ACL_DEF_GROUP_OBJ (группа по умолчанию)
ACL_DEF_GROUP (отдельная группа по умолчанию)
ACL_DEF_MASK_OBJ (маска эффективных прав по умолчанию)
ACL_DEF_OTHER_OBJ (все остальные по умолчанию)


Первые шесть типов определяют элементы списка ACL; остальные шесть элементов определяют элементы ACL по умолчанию. Только директории могут иметь ACL по умолчанию. значение по умолчанию ACL вход.

Если типом элемента ACL является тип ACL_USER или ACL_DEF_USER, то поле a_id[0] должно содержать действительное значение идентификатора пользователя. Если типом элемента ACL является тип ACL_GROUP или ACL_DEF_GROUP, то поле a_id[0] должно содержать действительное значение идентификатора группы.

Во всех других случаях значения a_id[0] несущественны для операции ACL_SETACL.

Операция ACL_GETACL кроме того сохраняет идентификатор владельца в поле a_id[0] для элементов ACL_USER и ACL_DEF_USER и идентификатор группы-владельца в поле a_id[0] для элементов ACL_GROUP и ACL_DEF_GROUP.

Элемент a_perm содержит права доступа, связанные с элементом ACL. Необходимо использовать следующие константы (определённые в ):



 S_IROTH       (права доступа на чтение)

 S_IWOTH       (права доступа на запись)

 S_IXOTH       (права доступа на вывод/исполнение)


[S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)]

СМ. ТАКЖЕ

getacl(8), setacl(8), acl(5)

Index

НАЗВАНИЕ
СИНТАКСИС
ОПИСАНИЕ
СМ. ТАКЖЕ