The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

chmod (2)
  • chmod (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
  • chmod (1) ( FreeBSD man: Команды и прикладные программы пользовательского уровня )
  • chmod (1) ( Русские man: Команды и прикладные программы пользовательского уровня )
  • chmod (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
  • chmod (1) ( POSIX man: Команды и прикладные программы пользовательского уровня )
  • chmod (2) ( Solaris man: Системные вызовы )
  • chmod (2) ( FreeBSD man: Системные вызовы )
  • >> chmod (2) ( Русские man: Системные вызовы )
  • chmod (2) ( Linux man: Системные вызовы )
  • chmod (3) ( Solaris man: Библиотечные вызовы )
  • chmod (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

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

    ОБЗОР

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

    int chmod(const char *path, mode_t mode);
    int fchmod(int fildes, mode_t mode);  

    ОПИСАНИЕ

    Изменяет права доступа к файлу, заданному параметром path или файловым дескриптором fildes.

    Права задаются применением логической операции OR (битовое сложение -- прим. пер.) к следующим константам:

    S_ISUID
    04000 установить при выполнении идентификатор пользователя (suid бит -- прим.пер.)
    S_ISGID
    02000 установить при выполнении идентификатор группы (sgid бит -- прим.пер.)
    S_ISVTX
    01000 sticky бит
    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 все остальные могут выполнять файл или искать в каталоге

    Эффективный идентификатор пользователя (UID) для вызывающего процесса должен быть нулем или совпадать с UID владельца файла.

    Если эффективный UID процесса не равен нулю, а группа-владелец файла не совпадает с фактическим GID процесса или одним из его дополнительных GID'ов, то бит S_ISGID будет сброшен, но ошибки при этом не возникнет.

    В зависимости от файловой системы, suid и sgid биты могут быть сброшены, когда происходит запись в файл. На некоторых файловых системах только суперпользователь может устанавливать sticky бит, который может иметь специальное значение. О значении sticky бита, а также suid и sgid битов на каталоги, см. stat(2). На файловых системах NFS отмена некоторых прав доступа немедленно повлияет на открытые файлы, потому что контроль доступа осуществляется сервером, а открытые файлы обрабатываются клиентом. Добавление новых прав доступа может произойти не сразу, если на клиенте включено кэширование атрибутов.  

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.

     

    ОШИБКИ

    В зависимости от файловой системы могут также появиться другие ошибки. Общий набор ошибок для chmod таков:

    EPERM
    Фактический UID не совпадает с владельцем файла и не равен нулю.
    EROFS
    Файл находится на файловой системе, смонтированной только для чтения.
    EFAULT
    path указывает за пределы доступного адресного пространства.
    ENAMETOOLONG
    path слишком длинно.
    ENOENT
    Файл не существует.
    ENOMEM
    Ядру не хватило памяти.
    ENOTDIR
    Компонент пути, использованный как каталог в path, в действительности таковым не является.
    EACCES
    Запрещен поиск в одном из каталогов, находящихся на пути к файлу.
    ELOOP
    При обработке path встречено слишком много символических ссылок.
    EIO
    Произошла ошибка ввода-вывода.

    Общий набор ошибок для fchmod таков:

    EBADF
    Неверный файловый дескриптор fildes.
    EROFS
    См. выше.
    EPERM
    См. выше.
    EIO
    См. выше.
     

    СООТВЕТСТВИЕ СТАНДАРТАМ

    Системный вызов chmod соответствует стандартам SVr4, SVID, POSIX, X/OPEN, 4.4BSD. SVr4 документирует EINTR, ENOLINK и EMULTIHOP, но не документирует ENOMEM. POSIX.1 не документирует ни коды ошибок EFAULT, ENOMEM, ELOOP и EIO, ни макросы S_IREAD, S_IWRITE и S_IEXEC.

    Системный вызов fchmod соответствует 4.4BSD и SVr4. SVr4 документирует дополнительные коды ошибок EINTR и ENOLINK. POSIX требует присутствия функции fchmod, если определены символы _POSIX_MAPPED_FILES или _POSIX_SHARED_MEMORY_OBJECTS, и документирует дополнительные коды ошибок ENOSYS и EINVAL, но не документирует EIO.

    POSIX и X/OPEN не документируют sticky бит.  

    СМОТРИ ТАКЖЕ

    open(2), chown(2), stat(2)  

    ПЕРЕВОД

    Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999, Виктор Вислобоков <corochoone@perm.ru> 2003


     

    Index

    НАЗВАНИЕ
    ОБЗОР
    ОПИСАНИЕ
    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
    ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМОТРИ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру