НАИМЕНОВАНИЕ

     chmod - изменение прав доступа к файлам и папкам


ОБЩИЕ СВЕДЕНИЯ

     #include <sys/types.h>
     #include <sys/stat.h>

     int chmod(const char *path, mode_t mode)


ОПИСАНИЕ

  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'  (бит фиксации)  исторически использовался чтобы блокировать важные исполняемые программы в памяти.




















Букеты для мужчин также читайте. Фланцы по ASME там.