Работа с правами доступа к файлам через PHP


У файла всегда есть владелец, и у каждого файла имеется информация о его владельце. Каждый пользователь имеет свой UID (уникальный идентификатор), и именно этот идентификатор хранится в каждом файле. Чтобы узнать его, используется функция fileowner():

<?php
echo fileowner("myfile.txt");
?>

После этого будет получен UID владельца файла "myfile.txt". Чтобы сменить владельца файла, надо воспользоваться функцией chown():

<?php
chown("myuser", "myfile.txt");
?>

В данном примере мы передали права владельца "myfile.txt" пользователю myuser. Также вместо имени пользователя можно указывать его UID. Следующая пара PHP-функций - это filegroup() и chgrp(), которые работают аналогично функциям fileowner() и chown(), но отвечают за группу пользователей:

<?php
echo filegroup("myfile.txt");
chgrp("mygroup", "myfile.txt");
?>

И, наконец, последние, но самые важные функции для работы с правами доступа к файлам через PHP - это fileperms() и chmod():

<?php
echo fileperms("myfile.txt");
chmod("myfile.txt", "0777");
?>

Как Вы уже догадались, функция fileperms() возвращает права доступа к файлу. А функция chmod() устанавливает новые права доступа к файлу. Также заметьте, что права задаются с обязательным указанием ведущего нуля! Это самые основные и самые важные функции PHP для работы с правами доступа. Я бы даже сказал, что реально используются только последние две, поэтому с ними потренируйтесь в работе. Права доступа имеются только в Unix-системах, а в Windows их вообще нет, поэтому и данные функции там так же будут работать некорректно.