Права доступа php chmod

chmod

Attempts to change the mode of the specified file to that given in permissions .

Parameters

Note that permissions is not automatically assumed to be an octal value, so to ensure the expected operation, you need to prefix permissions with a zero (0). Strings such as «g+w» will not work properly.

chmod ( «/somedir/somefile» , 755 ); // decimal; probably incorrect
chmod ( «/somedir/somefile» , «u+rwx,go+rx» ); // string; incorrect
chmod ( «/somedir/somefile» , 0755 ); // octal; correct value of mode
?>

The permissions parameter consists of three octal number components specifying access restrictions for the owner, the user group in which the owner is in, and to everybody else in this order. One component can be computed by adding up the needed permissions for that target user base. Number 1 means that you grant execute rights, number 2 means that you make the file writeable, number 4 means that you make the file readable. Add up these numbers to specify needed rights. You can also read more about modes on Unix systems with ‘man 1 chmod‘ and ‘man 2 chmod‘.

// Read and write for owner, nothing for everybody else
chmod ( «/somedir/somefile» , 0600 );

// Read and write for owner, read for everybody else
chmod ( «/somedir/somefile» , 0644 );

// Everything for owner, read and execute for others
chmod ( «/somedir/somefile» , 0755 );

// Everything for owner, read and execute for owner’s group
chmod ( «/somedir/somefile» , 0750 );
?>

Return Values

Returns true on success or false on failure.

Errors/Exceptions

Upon failure, an E_WARNING is emitted.

Notes

Note:

The current user is the user under which PHP runs. It is probably not the same user you use for normal shell or FTP access. The mode can be changed only by user who owns the file on most systems.

Note: This function will not work on remote files as the file to be examined must be accessible via the server’s filesystem.

See Also

  • chown() — Changes file owner
  • chgrp() — Changes file group
  • fileperms() — Gets file permissions
  • stat() — Gives information about a file

Источник

chmod

Осуществляет попытку изменения режима доступа указанного файла на режим, переданный в параметре mode .

Список параметров

Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому, чтобы удостовериться в том, что режим был установлен верно, предваряйте нулем (0) значение передаваемое в параметре mode . Строки, такие как «g+w», не будут работать должным образом.

chmod ( «/somedir/somefile» , 755 ); // десятичное, скорее всего, указано неверно
chmod ( «/somedir/somefile» , «u+rwx,go+rx» ); // строка, неверный способ
chmod ( «/somedir/somefile» , 0755 ); // восьмеричное, верный способ
?>

Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права: 1 — доступ на выполнение, 2 — доступ на запись, 4 — доступ на чтение. Сложите эти числа для указания нужного права доступа. Более подробно о системе прав в системах Unix вы можете узнать с помощью команд ‘man 1 chmod‘ и ‘man 2 chmod‘.

// Доступ на запись и чтение для владельца, нет доступа для других
chmod ( «/somedir/somefile» , 0600 );

// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod ( «/somedir/somefile» , 0644 );

// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod ( «/somedir/somefile» , 0755 );

// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod ( «/somedir/somefile» , 0750 );
?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP. На большинстве систем режим доступа к файлу может быть изменен только его владельцем.

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание:

При включенном безопасный режим PHP проверяет имеет ли файл или директория, с которой вы работаете, такой же UID (id владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и «липкие» (sticky) биты.

Смотрите также

  • chown() — Изменяет владельца файла
  • chgrp() — Изменяет группу владельцев файла
  • fileperms() — Возвращает информацию о правах на файл
  • stat() — Возвращает информацию о файле

Источник

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

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

В прошлой статье я достаточно подробно рассказал о правах доступа к файлам. Разумеется, это только теория, которую необходимо знать, чтобы правильно использовать функции для работы с правами доступа к файлам через PHP. Эту тему мы разберём в данной статье.

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

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

В данном примере мы передали права владельца «myfile.txt» пользователю myuser. Также вместо имени пользователя можно указывать его UID.

Следующая пара PHP-функций — это filegroup() и chgrp(), которые работают аналогично функциям fileowner() и chown(), но отвечают за группу пользователей:

echo filegroup(«myfile.txt»);
chgrp(«mygroup», «myfile.txt»);
?>

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

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

Это самые основные и самые важные функции PHP для работы с правами доступа. Я бы даже сказал, что реально используются только последние две, поэтому с ними потренируйтесь в работе. И ещё раз напоминаю, что права доступа имеются только в Unix-системах, а в Windows их вообще нет, поэтому и данные функции там так же будут работать некорректно.

Создано 27.06.2011 21:34:13

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 8 ):

    А можно это как-то сделать чтобы это не видели пользователи? То есть, если они смотрят исходный код страницы и чтобы они в нем не увидели этого PHP-кода?

    Они его и не увидят. Этот код выполняется на сервере ещё до того, как пользователи увидят конечную HTML-страницу.

    Здравствуйте! Извините за возможно глупый вопрос, но когда добавляешь файлы через Админ-панель в папку с правами, например 744, нужно сначала поменять права на 777, добавить файл и обратно поменять права.

    По fileowner и filegroup выдаёт нули, а по fileperms выдаёт 33206. Такие дела.

    Дочитал и понял, в Windows не работает, можешь не замарачиваться

    Эта статья рассчитана на работу с хостингом (на Linux) через фтп-клиент к примеру. В Windows не много по-другому все устроено.

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Источник

    Читайте также:  Java lang nullpointerexception ticking screen
    Оцените статью