5.5.2. Изменение прав доступа: chmod() и fchmod()

5.5.2. Изменение прав доступа: chmod() и fchmod()

Изменение прав доступа осуществляется с помощью одного из двух системных вызовов, chmod() и fchmod():

#include <sys/types.h> /* POSIX */

#include <sys/stat.h>

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

int fchmod(int fildes, mode_t mode);

chmod() работает с аргументом имени файла, a fchmod() работает с открытым файлом. (В POSIX нет вызова lchmod(), поскольку система игнорирует установки прав доступа для символических ссылок. Хотя на некоторых системах такой вызов действительно есть). Как и для большинства других системных вызовов, они возвращают 0 в случае успеха и -1 при ошибке. Права доступа к файлу может изменить лишь владелец файла или root.

Значение mode создается таким же образом, как для open() и creat(), как обсуждалось в разделе 4.6 «Создание файлов». См. также табл. 5.2, в которой перечислены константы прав доступа.

Система не допустит установки бита setgid (S_ISGID), если группа файла не совпадает с ID действующей группы процесса или с одной из его дополнительных групп. (Мы пока не обсуждали подробно эти проблемы; см. раздел 11.1.1 «Реальные и действующие ID».) Разумеется, эта проверка не относится к root или коду, выполняющемуся как root.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Изменение прав

Из книги Linux From Scratch автора Бикманс Герард

Изменение прав Первое что мы сделаем в режиме пользователя root – передадим права файлов и директорий, установленных в Главе 5, пользователю root. Это необходимо, т.к. когда в дальнейшем мы оставим директорию /static добавим несколько пользователей, один из них может оказаться


Приложение В. Команды chmod и chown: изменение прав доступа

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

Приложение В. Команды chmod и chown: изменение прав доступа В Linux есть понятие владельца файла (каталога) и прав доступа к нему. С данными понятиями мы познакомились в главе I, но подробно не рассматривали их. Здесь мы поговорим об этом подробнее.В Linux существует три типа прав


Настройка прав доступа к файлам и ограничение прав пользователей

Из книги Настройка Windows 7 своими руками. Как сделать, чтобы работать было легко и удобно автора Гладкий Алексей Анатольевич

Настройка прав доступа к файлам и ограничение прав пользователей В процессе работы на компьютере часто возникает необходимость защитить те или иные свои данные от неквалифицированного и несанкционированного просмотра и редактирования. Эта задача обычно возникает при


11.1.2. Модификаторы прав доступа к файлам

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

11.1.2. Модификаторы прав доступа к файлам Модификаторы прав доступа файлов — это также битовые маски, значения которых представляют биты setuid, setgid и sticky-бит ("липкий" бит). Если бит setuid установлен для исполняемого файла, то эффективный идентификатор пользователя процесса


11.3.3. Простое определение прав доступа

Из книги Ubuntu 10. Краткое руководство пользователя автора Колисниченко Д. Н.

11.3.3. Простое определение прав доступа Хотя режим файла представляет всю информацию, которая может понадобиться программе, для определения того, имеет ли она доступ к файлу, тестирование набора прав — дело хитрое и чреватое ошибкам. Поскольку ядро ухе включает в себя код


11.3.4. Изменение прав доступа к файлу

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

11.3.4. Изменение прав доступа к файлу Права доступа и модификаторы прав доступа к файлу изменяются с помощью системного вызова chmod().#include <sys/stat.h>int chmod(const char *pathname, mode_t mode);int fchmod(int fd, mode_t mode);Хотя chmod() позволяет указать путь, помните, что права доступа к файлу определяет inode, а


5.8. Права доступа и атрибуты файла. Команды chown, chmod и chattr

Из книги Linux программирование в примерах автора Роббинс Арнольд

5.8. Права доступа и атрибуты файла. Команды chown, chmod и chattr 5.8.1. Права доступа к файлам и каталогам Для каждого каталога и файла вы можете задать права доступа. Точнее права доступа автоматически задаются при создании каталога (файла), а вы, при необходимости, можете их


Изменение режима доступа

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

Изменение режима доступа Используйте вариант gfix -mo[de] для переключения режима доступа любого соединения с базой данных между "только для чтения" и "для чтения/записи". В базу только для чтения нельзя совсем выполнить запись - даже пользователю SYSDBA, ее владельцу или любому


5.5. Смена владельца, прав доступа и времени изменения

Из книги автора

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


11.1. Проверка прав доступа

Из книги автора

11.1. Проверка прав доступа Как мы видели в разделе 5.4.2 «Получение информации о файлах», файловая система хранит идентификаторы владельца и группы файла в виде числовых значений; это типы uid_t и gid_t соответственно. Для краткости мы используем для «идентификатора владельца


8.2. Функция access(): проверка прав доступа к файлу

Из книги автора

8.2. Функция access(): проверка прав доступа к файлу Функция access() определяет, имеет ли вызывающий ее процесс право доступа к заданному файлу. Функция способна проверить любую комбинацию привилегий чтения, записи и выполнения, а также факт существования файла.Функция access()


8.9. Функция mprotect(): задание прав доступа к памяти

Из книги автора

8.9. Функция mprotect(): задание прав доступа к памяти В разделе 5.3, "Отображение файлов в памяти", рассказывалось о том, как осуществляется отображение файла в памяти. Вспомните, что третьим аргументом функции mmap() является битовое объединение флагов доступа: флаги PROT_READ, PROT_WRITE и


1.4. Изменение прав доступа к файлу

Из книги автора

1.4. Изменение прав доступа к файлу Вы можете изменять режим доступа к файлам, которыми владеете, с помощью команды chmod. Аргументы этой команды могут быть заданы либо в числовом виде (абсолютный режим), либо в символьном (символьный режим). Сначала рассмотрим символьный


17.1. Проверка прав доступа к файлу

Из книги автора

17.1. Проверка прав доступа к файлу Основные форматы команды test:test условиеили[ условие ]Обратите внимание, что с обеих сторон от условия обязательно остаются пробелы. При проверке права на доступ к файлу может применяться довольно много условий. В табл. 17.1 содержится


18.3.7. Проверка прав доступа к файлу

Из книги автора

18.3.7. Проверка прав доступа к файлу Вы можете также осуществлять контроль прав доступа к файлу. Ниже приводится несложная проверка на предмет того, можно ли вести записи в файле test.txt, который переприсвоен переменной logfile.$ pg ifwr#!/bin/sh# ifwrLOGFILE=test.txt echo $LOGFILEif [ ! —w "$LOGFILE" ]; thenecho " You