other versions
- wheezy 0.98-4
other sections
CHMOD(2) | Руководство программиста Linux | CHMOD(2) |
НАЗВАНИЕ¶
chmod, fchmod - изменить права доступа к файлуОБЗОР¶
#include <sys/types.h>ОПИСАНИЕ¶
Изменяет права доступа к файлу, заданному параметром path или файловым дескриптором fildes.- 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 все
остальные
могут
выполнять
файл или
искать в
каталоге
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.ОШИБКИ¶
В зависимости от файловой системы могут также появиться другие ошибки. Общий набор ошибок для chmod таков:- EPERM
- Фактический UID не совпадает с владельцем файла и не равен нулю.
- EROFS
- Файл находится на файловой системе, смонтированной только для чтения.
- EFAULT
- path указывает за пределы доступного адресного пространства.
- ENAMETOOLONG
- path слишком длинно.
- ENOENT
- Файл не существует.
- ENOMEM
- Ядру не хватило памяти.
- ENOTDIR
- Компонент пути, использованный как каталог в path, в действительности таковым не является.
- EACCES
- Запрещен поиск в одном из каталогов, находящихся на пути к файлу.
- ELOOP
- При обработке path встречено слишком много символических ссылок.
- EIO
- Произошла ошибка ввода-вывода.
- 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> 20031997-12-10 | Linux 2.0.32 |