Права доступа к файлам в PHP: руководство

Права доступа к файлам — важная концепция в Unix-подобных системах, на которых основано большинство веб-хостингов. Понимание этих прав необходимо при работе с PHP на сервере.

Таблица прав доступа

Пользователь Чтение (4) Запись (2) Выполнение (1) Сумма
Владелец 7
Группа 4
Другие 4

Таблица показывает права для владельца файла, группы и остальных пользователей. Каждая операция (чтение, запись, выполнение) имеет числовое значение (4, 2 и 1 соответственно). Сумма значений определяет итоговое право доступа. Например, владелец имеет полный доступ (7), группа и другие пользователи — только чтение (4).

Расчет прав доступа

Права доступа представляются числом, полученным суммированием числовых значений разрешенных операций.

  • Владелец (7): 4 (чтение) + 2 (запись) + 1 (выполнение) = 7
  • Группа (4): 4 (чтение) + 0 (запись) + 0 (выполнение) = 4
  • Другие (4): 4 (чтение) + 0 (запись) + 0 (выполнение) = 4

Код 755 означает:

  • Владелец: полный доступ (7)
  • Группа: чтение и выполнение (4 + 1 = 5)
  • Другие: чтение и выполнение (4 + 1 = 5)

Код 777 предоставляет полный доступ (чтение, запись и выполнение) всем.

Работа с правами доступа в PHP

Для работы с правами доступа используются функции:

  • file_exists() — проверка существования файла. Например, file_exists(‘/путь/к/файлу.php’) вернет true, если файл существует.
  • chmod() — изменение прав доступа. Синтаксис: chmod($файл, $мода), где $файл — путь к файлу, а $мода — числовое значение прав доступа (октальное число, например, 0777 для полного доступа).

Пример изменения прав доступа на 777 для файла index.php:

chmod('index.php', 0777);

Изменение прав доступа часто не требуется, но может понадобиться при установке скриптов или работе с внешними системами.

Функция fileperms()

Функция fileperms() возвращает числовое значение текущих прав доступа к файлу. Пример:

$права = fileperms('index.php');
echo $права;

На Windows и macOS функция fileperms() может возвращать некорректные значения, так как эти операционные системы не используют систему прав доступа Unix.

Понимание прав доступа в Unix-системах важно для работы с PHP на сервере. Функции chmod() и fileperms() позволяют изменять и получать информацию о правах доступа к файлам. Хотя на практике вы будете использовать эти функции нечасто, знание их принципа работы необходимо.

Что будем искать? Например,программа