Работа с правами доступа к файлам через PHP
В прошлой статье я достаточно подробно рассказал о правах доступа к файлам. Разумеется, это только теория, которую необходимо знать, чтобы правильно использовать функции для работы с правами доступа к файлам через 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 их вообще нет, поэтому и данные функции там так же будут работать некорректно.
-
- Михаил Русаков
Комментарии (8):
А можно это как-то сделать чтобы это не видели пользователи? То есть, если они смотрят исходный код страницы и чтобы они в нем не увидели этого PHP-кода?
Ответить
Они его и не увидят. Этот код выполняется на сервере ещё до того, как пользователи увидят конечную HTML-страницу.
Ответить
Спасибо
Ответить
Здравствуйте! Извините за возможно глупый вопрос, но когда добавляешь файлы через Админ-панель в папку с правами, например 744, нужно сначала поменять права на 777, добавить файл и обратно поменять права???
Ответить
Да.
Ответить
По fileowner и filegroup выдаёт нули, а по fileperms выдаёт 33206. Такие дела.
Ответить
Дочитал и понял, в Windows не работает, можешь не замарачиваться
Ответить
Эта статья рассчитана на работу с хостингом (на Linux) через фтп-клиент к примеру. В Windows не много по-другому все устроено.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.