НАЗВАНИЕ
setfsuid − установить идентификатор пользователя файловой системы
КРАТКАЯ СВОДКА
#include <unistd.h> /* glibc использует <sys/fsuid.h> */
int setfsuid(uid_t fsuid);
ОПИСАНИЕ
setfsuid устанавливает идентификатор пользователя, который используется ядром Linux для доступа к файловой системе. Обычно значение fsuid будет совпадать с фактическим идентификатором пользователя. В самом деле, когда изменяется фактический идентификатор пользователя, fsuid устанавливается в то же самое значение.
Явный вызов функции setfsuid обычно используется только программами типа NFS-сервера, которые хотят изменить идентификатор пользователя, используемый для доступа к файлам, без изменения действительного и фактического идентификаторов пользователя. Установка обычных идентификаторов пользователя для программы типа NFS-сервера -- это дыра в безопасности, приводящая к возможности получения нежелательных сигналов от других пользователей.
setfsuid выполняется успешно, только если она была вызвана суперпользователем или если fsuid совпадает с действительным, фактическим или сохраненным идентификатором пользователя, или же с текущим значением fsuid.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном завершении возвращается предыдущее значение fsuid. При ошибке возвращается текущее значение fsuid.
СООТВЕТСТВИЕ СТАНДАРТАМ
setfsuid является специфичной для Linux и не должна использоваться в переносимых программах.
ОШИБКИ В РЕАЛИЗАЦИИ
Вызвавшему процессу не возвращается никаких сообщений об ошибке. По меньшей мере, должно возвращаться хотя бы значение EPERM.
ЗАМЕЧАНИЕ
Когда glibc определяет, что аргумент не является правильным идентификатором группы, то возвращает −1 и устанавливает errno в значение EINVAL, не пытаясь совершить системный вызов.
СМОТРИ ТАКЖЕ
ПЕРЕВОД
Перевод Copyright (C) Alexey Mahotkin <alexm [AT] hsys.ru> 2000