Системный вызов fchmod()#
Описание#
Системный вызов fchmod() — эквивалент системного вызова chmod(), используется для изменения прав доступа к файлам, определяемым файловыми уникальными идентификаторами — дескрипторами.
Синтаксис системного вызова:
fchmod(<path/fildes> <mode>)
Где:
<path/fildes>— путь к файлу/файловые дескрипторы;<mode>— режим прав доступа.
Параметры#
Новые права доступа к файлам задаются в режиме, представляющем собой растровую маску, созданную путем совмещения нуля или более из параметров, представленных в таблице ниже.
Параметр |
Значение |
Описание |
|---|---|---|
|
|
Установить действующий идентификатор пользователя |
|
|
Установить эффективный идентификатор группы |
|
|
Ограничить удаление. Фиксированный бит |
|
|
Предоставить владельцу право на чтение |
|
|
Предоставить владельцу право на запись |
|
|
Предоставить владельцу право на выполнение файла или его поиск в каталоге |
|
|
Предоставить группе право на чтение |
|
|
Предоставить группе право на запись |
|
|
Предоставить группе право на выполнение файла или его поиск в каталоге |
|
|
Предоставить право на чтение всем остальным |
|
|
Предоставить право на запись всем остальным |
|
|
Предоставить право на выполнение файла или его поиск в каталоге всем остальным |
Пример использования#
Для изменения прав доступа для файла /home/cnd/mod1, чтобы у владельца и группы были разрешения на чтение/запись/выполнение, а у всех остальных — только на чтение/запись, используйте:
#include <sys/stat.h>
#include <fcntl.h>
mode_t mode;
int fildes;
...
fildes = open("/home/cnd/mod1", O_RDWR);
fchmod(fildes, S_IRWXU | S_IRWXG | S_IROTH | S_IWOTH);
Где:
#include <sys/stat.h>и<fcntl.h>- включение в скрипт указанных библиотек, необходимых для работы с файлами и их правами доступа;mode_t modeиint fildes- объявление в скрипте указанных переменных;fildes = open("/home/cnd/mod1", O_RDWR)- открытие файла для чтения и записи.
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
man fchmod