belarusweb.net
© Петр Романовский Минск, 2016-2017.



belarusweb.net

Основы создания сайтов...
PHP+MySQL >>>
                          Учебник Задачник Справочник

9.6. Определение прав доступа к файлам и папкам

При размещении файлов сайта на веб-сервере Unix разработчик сталкивается с необходимостью определения прав доступа для каждого отдельного файла или каталога. Права доступа определяют кто и что может делать с данным файлом или каталогом. Существуют три основных вида прав доступа:

Все перечисленные виды прав назначаются одной из трех групп пользователей (отношение пользователей к той или иной группе определяется сервером в момент их подключения к нему):

Сами права доступа обозначаются либо при помощи букв 'r' (чтение), 'w' (запись), 'x' (исполнение) в формате 'ixxxyyyzzz', либо при помощи трехзначного числа в восьмеричной системе счисления (цифры от 0 до 7) в формате '0nnn'. Первая группа букв или цифра устанавливают права для владельца файла, вторая – для группы, а третья – для всех остальных. Что касается первой буквы в символьном формате, то она указывает на то, что права доступа назначаются либо директории, тогда ставится буква 'd', либо обычному файлу, тогда ставится дефис '-'. Если вместо буквы указан дефис, то данный вид прав для соответствующей группы отсутствует. Например, файл с правами доступа '-rwxrwxrwx' или '0777' могут читать, записывать и запускать все группы пользователей, а вот директорию с правами доступа 'drwxr--r--' или '0744' может просматривать, удалять и создавать в ней файлы, а также получать доступ к файлам только владелец. Остальным группам разрешается лишь просмотр каталога. Реальный пример отображения прав доступа к файлам на хостинге показан на рис. 9.1.

Рис. 9.1. Пример отображения прав доступа на сервере

Нас будет интересовать числовой формат определения прав доступа к файлам и каталогам, расшифровка цифр которого представлена в таблице 9.1.

Числовой формат Символьный формат Права доступа
0 --- Права отсутствуют
1 --x Только выполнение
2 -w- Только запись
3 -wx Запись и выполнение
4 r-- Только чтение
5 r-x Чтение и выполнение
6 rw- Чтение и запись
7 rwx Чтение, запись, выполнение

Таблица 9.1. Таблица прав доступа в цифровом формате

Теперь, когда мы получили некоторое представление о правах доступа к файлам и каталогам, продемонстрируем определение прав доступа к файлу на примере 9.10.

<?php
echo '-------- fileperms()  -------- <br><br>';

//fileperms()- возвращает  информацию о правах доступа в виде 10-го числа (или false)
//После перевода в восьмеричное число, последние 4 цифры будут содержать сведения 
//о правах доступа, а также (на большинстве платформ) информацию о типе файла
//Например, для файла test_2.php на рис. 9.1 получим 33188 или в 8-й 100644
echo substr(decoct(fileperms('test_2.php')), -4); //Выведет 0644
echo '<br><br>'; 


echo '-------- chmod()  -------- <br><br>';

//chmod() - изменяет режим доступа к файлу и возвращает true|false 
chmod('test_2.php', 0777); //Разрешили всем все права
chmod('test_2.php', 0744); //Владельцу все, остальным только чтение
chmod('test_2.php', 0755); //Владельцу все, остальным чтение и запись
?>

Пример 9.10.

Также обратите внимание на функции chown(), chgrp(), umask(). Все они находятся в 'Функции для работы с файловой системой'-> 'Файловая система'.

Словарь новых английских слов

directory [dɪˈrɛkt(ə)ri] – каталог, справочник.
hard [hɑːd] – жесткий, твердый.
symbolic [sɪmˈbɒlɪk] – символический.
touch [tʌtʃ] – касаться, трогать.
node [nəʊd] – узел, пункт.
descriptor [dɪˈskrɪptə] – дескриптор, идентификатор.
replace [rɪˈpleɪs] – заменять.
seek [siːk] – искать.
tell [tel] – говорить, сообщать.
put [pʊt] – помещать, класть.
rewind [ˌriːˈwaɪnd] – перематывать.
make [ˈmeɪk] – изготовлять, создавать.
scan [skæn] – просматривать, сканировать.
include [ɪnˈkluːd] – включать, содержать.
require [rɪˈkwʌɪə] – требовать, приказывать.
once [wʌns] – один раз, однажды.
mode [məʊd] – форма, вид, способ.
change [tʃeɪn(d)ʒ] – менять, изменять.
owner [ˈəʊnə] – владелец, хозяин.
flush [flʌʃ] – очищать, смывать.
permission [pəˈmɪʃ(ə)n] – разрешение.
stat [stat] – статистический.
glob [ɡlɒb] – комок.

Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2017.
Связаться с автором
Наверх