Утилита fchmod#

Утилита fchmod является псевдонимом chmod (см. Утилита chmod), используется для изменения прав доступа к файлам, определяемым файловыми уникальными идентификаторами - дескрипторами.

Синтаксис fchmod:

fchmod(<path/fildes> <mode>)

Где:

  • <path/fildes> - путь к файлу/файловые дескрипторы;

  • <mode> - режим прав доступа.

Новые права доступа к файлам задаются в режиме, представляющем собой растровую маску, созданную путем совмещения нуля или более из параметров, представленных в таблице ниже.

Параметр

Значение

Описание

S_ISUID

04000

Установить действующий идентификатор пользователя

S_ISGID

02000

Установить эффективный идентификатор группы

S_ISVTX

01000

Ограничить удаление. Фиксированный бит

S_IRUSR (S_IREAD)

00400

Предоставить владельцу право на чтение

S_IWUSR (S_IWRITE)

00200

Предоставить владельцу право на запись

S_IXUSR (S_IEXEC)

00100

Предоставить владельцу право на выполнение файла или его поиск в каталоге

S_IRGRP

00040

Предоставить группе право на чтение

S_IWGRP

00020

Предоставить группе право на запись

S_IXGRP

00010

Предоставить группе право на выполнение файла или его поиск в каталоге

S_IROTH

00004

Предоставить право на чтение всем остальным

S_IWOTH

00002

Предоставить право на запись всем остальным

S_IXOTH

00001

Предоставить право на выполнение файла или его поиск в каталоге всем остальным

Пример использования#

Для изменения прав доступа для файла /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) - открытие файла для чтения и записи.