Книга: Разработка приложений в среде Linux. Второе издание
11.3.4. Изменение прав доступа к файлу
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, а не имя файла. Если у файла есть множество жестких ссылок, то изменение прав доступа по одному из имен файла изменяет права доступа к нему везде, где он встречается в файловой системе. Параметр mode
может быть любой комбинацией прав доступа и модификаторов прав доступа, объединенных по логическому "И". Хотя это достаточно нормально — специфицировать по несколько этих значений за раз, общей практикой для программ является указание новых прав доступа непосредственно в восьмеричном виде. Только пользователь root и владелец файла могут изменять права доступа к файлу — все остальные, кто попытается это сделать, получат ошибку EPERM
.
- 11.3.3. Простое определение прав доступа
- 11.3. Запрос и изменение информации inode
- 11.5.1. Изменение режима доступа к открытому файлу
- 10.1.9. Манипулирование правами владения и разрешениями на доступ к файлу
- Режим доступа
- Правила творческой лени
- Права для выполнения резервного копирования
- Правильная стратегическая последовательность
- Ничего, кроме правды: поведение потребителей
- Заполнение справочников и каталогов
- Неисправности источника бесперебойного питания
- Неисправности акустических систем