path - путь до файла которому необходимо изменить права доступа mode.
Права записываются сразу для трёх типов пользователей: владельца файла, группы, в которую он
входит и для прочих пользователей. chmod может быть записан в двух форматах: в числовом и в
символьном. Комбинация определяющая режим доступа определена в <sys/stat.h>:
S_ISUID 04000 владелец имеет право на чтение
S_ISGID 02000 группа имеет право на выполнение
S_ISVTX 01000 `sticky bit' (см. ниже)
S_IRWXU 00700 остальные имеют право на чтение, запись, выполнение
S_IRUSR 00400 остальные имеют право на чтение
S_IWUSR 00200 остальные имеют право на запись
S_IXUSR 00100 доступен для выполнения (в случае каталога для просмотра) владельцем
S_IRWXG 00070 группа имеет право на чтение, запись, выполнение
S_IRGRP 00040 группа имеет право на чтение
S_IWGRP 00020 группа имеет право на запись
S_IXGRP 00010 группа имеет право на выполнение
S_IRWXO 00007 остальные имеют право на запись, чтение, выполнение
S_IROTH 00004 остальные имеют право на чтение
S_IWOTH 00002 остальные имеют право на запись
S_IXOTH 00001 остальные имеют право на выполнение
'sticky bit' (бит фиксации) - это особый тип прав доступа к файлам. Программы с установленным
флагом "sticky bit" остаются в системном кэше после своего завершения, обеспечивая тем самым более
быстрый запуск. Если параметр установлен для каталога, то это приводит к ограничению прав на
запись. Установленный флаг "sticky bit" отображается в виде символа t в поле прав доступа.
Только владелец файла (или суперпользователь) может изменить режим.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успешного завершения операции, возвращаемое значение 0.
В противном случае, возвращаемое значение -1 и errno сообщит об ошибке.
ОШИБКИ
Chmod потерпит неудачу и права доступа не будут применены если:
[ENOTDIR] Компонент префикса пути - не каталог.
[ENAMETOOLONG] Имя пути превышает значения PATH_MAX.
[ENOENT] Указанный каталог не существует.
[EACCES] Поиск по указанному пути запрещен.
[ELOOP] Слишком много символическихи ссылок, столкновение в трансляции имени пути (Minix-vmd).
[EPERM] ID пользователя не соответствует владельцу файла и ID не имеет прав суперпользователя.
[EROFS] Указанный файл постоянно находится на файловой системе только для чтения.
[EFAULT] Указанный путь вне распределенного адресного пространства процесса
[EIO] Произошла ошибка ввода - вывода при чтении или записи в файловой системе.
СМ. ТАКЖЕ
chmod(1), open(2), chown(2), stat(2).
ПРИМЕЧАНИЕ
'sticky bit' (бит фиксации) исторически использовался чтобы блокировать важные исполняемые программы в памяти.