Задача
Необходимо изменить права доступа к файлу или его владельца. Например, надо не дать возможности другим пользователям увидеть закрытые данные, хранящиеся в файле.
Решение
Для изменения прав доступа к файлу применяется функция chmod():
chmod('/home/user/secrets.txt',0400);
Функция chown() позволяет изменить владельца файла, а функция chgrp() – изменить группу файла:
chown('/tmp/myfile.txt','sklar'); // указываем пользователя по имени
chgrp('/home/sklar/schedule.txt','soccer'); // указываем группу по имени
chown('/tmp/myfile.txt',5001); // указываем пользователя по его идентификатору
chgrp('/home/sklar/schedule.txt',102); // указываем группу по ее идентификатору
Обсуждение
Права доступа, передаваемые функции chmod(), должны быть указаны в виде восьмеричного числа.
Суперпользователь может изменить права доступа, владельца и группу для любого файла. Для других пользователей имеются ограничения. Они могут только изменять права доступа и группу файлов, которыми владеют, но не могут менять владельца файлов. Несуперпользователи могут также изменять группу файла только на одну из групп,
к которым они принадлежат сами.
Функции chmod(), chgrp() и chown() не работают в Windows.