Обработать сообщение _IO_CHOWN
#include <sys/iofunc.h>int iofunc_chown( resmgr_context_t *ctp,io_chown_t *msg,iofunc_ocb_t *ocb,iofunc_attr_t *attr );
libc
Вспомогательная функция iofunc_chown() реализует POSIX семантику для клиентского вызова chown(), принимаемого как _IO_CHOWN
сообщение менеджером ресурсов.
Функция iofunc_chown() проверяет наличие у клиента необходимых разрешений для модификации структуры атрибутов функцией chown(). Если разрешений достаточно, то chown() выполняется, заменяя поля структуры ocb->attr. Согласно стандарту POSIX 1003.1, если клиент не является привилегированным (root) пользователем, iofunc_chown() снимает S_ISUID
(set-user-ID) и S_ISGID
(set-group-ID) в поле ocb->attr->mode.
Эта функция обновляет IOFUNC_ATTR_CTIME
, IOFUNC_ATTR_DIRTY_TIME
и IOFUNC_ATTR_DIRTY_MODE
биты в ocb->attr->flags. Пользователь может вызвать iofunc_time_update(), чтобы обновить поля времени в ocb->attr.
ЗОСРВ «Нейтрино»
chown(), io_chown_t, iofunc_attr_t, iofunc_chmod(), iofunc_chown_default(), iofunc_ocb_t, iofunc_time_update(), resmgr_attach(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки