(PHP 4, PHP 5, PHP 7, PHP 8)
chmod — Изменяет режим доступа к файлу
Осуществляет попытку изменения режима доступа указанного файла
на режим, переданный в параметре permissions
.
filename
Путь к файлу.
permissions
Обратите внимание, что значение параметра permissions
не переводится автоматически в восьмеричную систему счисления,
поэтому, чтобы удостовериться в том, что режим
был установлен верно, предваряйте нулём (0) значение
передаваемое в параметре permissions
.
Строки, такие как "g+w", не будут работать
должным образом.
<?php
chmod("/somedir/somefile", 755); // десятичное, скорее всего, указано неверно
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755); // восьмеричное, верный способ
?>
Значение параметра permissions
состоит
из трёх восьмеричных чисел, определяющих уровень доступа
для владельца файла, для группы, в которую входит владелец,
и для других пользователей, соответственно. Число, определяющее
уровень пользователя, может быть вычислено путём суммирования
значений, определяющих права: 1 - доступ на выполнение, 2 -
доступ на запись, 4 - доступ на чтение. Сложите эти числа для
указания нужного права доступа. Более подробно о системе
прав в системах Unix вы можете узнать с помощью команд
'man 1 chmod' и 'man 2 chmod'.
<?php
// Доступ на запись и чтение для владельца, нет доступа для других
chmod("/somedir/somefile", 0600);
// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod("/somedir/somefile", 0644);
// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod("/somedir/somefile", 0755);
// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod("/somedir/somefile", 0750);
?>
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
В случае возникновения ошибки выдаётся ошибка уровня E_WARNING
.
Замечание:
Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учётной записи FTP. На большинстве систем режим доступа к файлу может быть изменён только его владельцем.
Замечание: Функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.