Как сделать права доступа php

Обновлено: 07.07.2024

Примеры использования команды chmod в символьном режиме

Права:

(Изначальное значение прав доступа файла file - rwxrwxrwx – полный доступ для всех) Отмена разрешения на выполнение файла для всех пользователей и групп:

Отмена записи в файл группой и остальными пользователями:

Разрешение выполнения файла владельцем:

Предоставление группе тех прав доступа, которыми владеет владелец файла:

Отмена чтения и запись в файл пользователям группы и другим пользователям:

Примеры использования команды chmod в абсолютном режиме

Разрешение чтения, записи, выполнения файла file всеми пользователями и группами (полный доступ):

Установка разрешений на чтение и запись для владельца, группы и остальных пользователей:

Установка полного доступа к файлу для владельца и лишь чтения для группы и остальных пользователей:

Установка полного доступа к файлу владельцу файла и запрет доступа группе и другим пользователям:

Установка разрешений на чтение и запись для владельца файла и лишь чтения для группы и остальных:

Установка разрешений на чтение и запись владельцу файлу и его группе и запрет доступа для других:

Установка доступа к файлу с разрешением чтения для всех пользователей и групп:

Права доступа к файлу для чтения, записи, выполнения владельцем и чтения, выполнения группе и другим:

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

Если вы хотите назначить права доступа на все файлы в текущем каталоге, просто поставьте после назначаемых прав доступа знак * (звездочка):

В результате выполнения этой команды владелец получит полные права (чтение, изменение, выполнение) на все файлы текущего каталога, а группа и другие пользователи – только чтение и выполнение. Если вы хотите, чтобы ваши действия распространились рекурсивно (включая все подкаталоги), воспользуйтесь опцией -R:

Результатом выполнения вышеприведенной команды будет рекурсивный “обход” всех подкаталогов текущего каталога и назначение полного доступа для всех пользователей и групп. В этой статье рассмотрены лишь некоторые примеры применения команды chmod. Если вы хотите узнать подробнее о работе команды chmod и правах доступа в Linux, обратите внимание на эту статью.

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

Одной из важнейших составляющих безопасности сайта явлются правильные права доступа к файлам. Думаю, что многие из Вас видели подобные права, например, "777", "755", "444" и другие. Иногда перед ними идёт ещё ведущий "0", но в этой статье мы его опустим. Вот что они означают и как составляются, а также как правильно их использовать, я попытаюсь объяснить в сегодняшней статье.

Права доступа к файлам определяются 3-мя составляющими: разрешение на чтение, на запись и на выполнение. Также существует три группы пользователей: владелец файла, группа, к которой принадлежит владелец, и все другие пользователи. Вот на основании 3-х составляющих прав и групп пользователей и строятся эти числа, обозначающие права доступа к файлам.

Продолжим. Права состоят из трёх цифр. Первая цифра отвечает за права владельца файла, вторая цифра - за группу владельца, а третья цифра - за права других пользователей.

Далее. Каждая цифра отвечает за количество прав. Считается она следующим образом: за права чтения даётся 4, за право записи даётся ещё 2, за выполнение ещё 1. Получается, что максимально возможные права - это 4+2+1=7 (чтение+запись+выполнение). Если группа может читать и выполнять файл, но не может записывать, то права будут 4+1=5 (чтение+выполнение).

Чтобы стало ещё понятнее, возьмём пример: права "754", и подробно разберём их:

  • 7 - владелец файла может читать (4), записывать (2) и выполнять (1) файл.
  • 5 - группа владельца может читать (4) и выполнять (1) файл.
  • 4 - все остальные пользователи могут только читать (4) файл.

Многие могут спросить: "А что же с каталогами?". Каталоги - это те же файлы, поэтому на них распространяются те же правила.

Теперь о том, как нужно выставлять права доступа к файлам на Вашем сайте:

  • На все файлы поставить права "644".
  • На все директории поставить права "755".
  • На особо важные файлы (как правило, это файл config.php, в котором содержатся пароли от базы данных) необходимо поставить права "444".
  • На все директории, в которые пользователь может загружать файлы, надо ставить права 777. Например, это папка с аватарками.

И последний момент, который хотелось бы осветить - это права в системе Windows. Самое главное - это понять, что в Windows нет никаких прав доступа вообще. Они относятся только к Unix-системам. Поэтому бесполезно на каком-нибудь Denwer узнавать, какие права доступа к файлам у Вас стоят.

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


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

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

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

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

Она выглядит вот так:

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

Как дать права доступа файлу?

Либо через FTP-клиент (например, Filezilla), либо через PHP, о чём я напишу в следующей статье.

А что если файлзила пишет "644", а fileperms возвращает "33188"?

ну спасибо! О sprintf() раньше не знал. Тогда и задавать права функцией chmode() тоже придется с помощью восьмеричного числа. Не очень удобно как-то(

Получается ставить вот так: 0754? (владелец может читать, выполнять, записывать файл. Группа владельца может читать, выполнять файл. Пользователь может только читать файл)

Да всё так, даже ноль в начале можно опустить и будет просто 754

Из-за проблем с правами на файлы и папки могут не работают скрипты, не удаляются папки, возкникает ошибка 403 и ошибка 500. В этой статье разберёмся, какие бывают права и как их поменять.

С проблемой неправильных прав вы можете столкнуться при переезде от другого хостера. Например, вы решили купить доменное имя и хостинг у хостинг-провайдера с Windows OS. А потом увидели, что есть специализированный хостинг для CMS – как раз то, что вам нужно. И вы решили перебраться на хостинг для сайтов Joomla с Linux OS. Вот тут-то и начинаются проблемы. Но не отчаивайтесь, эта статья поможет вам во всем разобраться.

Рядовые пользователи Windows от таких нюансов далеки. Хотя понятие уровней доступа и существует в этой ОС, но используется редко. Поэтому, если вы хотите купить выделенный сервер с Windows, можете смело пропустить эту статью.

В случае с Linux дело обстоит иначе. UNIX-подобные системы предполагают разные уровни доступа и разные права на данные. Файлы и папки рассчитаны на работу трех категорий пользователей:

  • владельца (user);
  • группы (group), в которую входят другие пользователи и может входить владелец файла;
  • остальных (others) – например, посетителей сайта, которые должны хотя бы иметь права просматривать выставленный вами контент.

Права доступа Linux пользователей могут быть следующими:

К каждому файлу и директории применимы следующие права (используются и в буквенном, и в числовом виде):

read (4) – чтение – право на чтение содержимого файла;

write (2) – редактирование – право на создание, изменение, удаление файла или директории;

execute (1) – исполнение – право на исполнение файла и вход в директорию (проверяется в первую очередь).

Таким образом, права пользователей могут распределяться следующим образом:

Owner Group Other
r w x r w x r w x
4 2 1 4 2 1 4 2 1

Дальше они суммируются, и мы получаем число в уже знакомом виде 777:

4+2+1 4+2+1 4+2+1
= 7 7 7

Права 777 предоставляют все привилегии пользователю, группе и остальным пользователям системы.

Содержание

Какие права для файлов и папок использовать в cPanel

Стандартные права доступа, актуальные и для нашего виртуального хостинга:

Файлы – 644

Папки – 755.

Они предполагает следующие привилегии:

644 = rw- r– r–
Owner чтение и редактирование
Group только чтение
Others только чтение
755 = rwx r-x r-x
Owner чтение, редактирование и вход
Group только чтение и вход
Others только чтение и вход

Почему именно 755 и 644

Такие права позволяют владельцу свободно работать с данными в виртуальной учетной записи, и при этом меры безопасности соблюдены, ведь редактирование и исполнение файлов не доступно другим пользователям сервера, на котором размещен хостинг.

Работа сайта в большинстве случае связана с использованием различных скриптов, которые добавляют ему интерактивности. Для запуска скриптов на наших серверах виртуального хостинга реализован suPHP, который запускает PHP как cgi и исполняет скрипт от имени его владельца. Поэтому не нужно предоставлять права на запись всему веб-серверу Apache (777), как это бывает на некоторых хостингах с mod_PHP. Ведь если дать максимальные права на системные файлы и папки, есть риск, что открытым доступом воспользуются злоумышленники.

Работа со скриптами через suPHP, и соответственно, настройка прав 755 и 644 рекомендуется разработчиками многих cms, например, популярных WordPress и Joomla.

Как поменять права на файлы и папки в cPanel?

Иногда, при смене хостингового провайдера и переносе данных на новый сервер, на данных остаются старые права. Чтобы сменить их, нужно:

1. Зайти в cPanel от имени пользователя

2. В разделе Файлы выбрать Диспетчер файлов (в WHM недоступен, только через сPanel)

Как поменять права на файлы и папки в cPanel

3. Перейти в каталог, в котором необходимо изменить права для файлов/папок. Например, в каталог public_html.

4. Изменить права для файла/каталога можно двумя способами.

Первый способ изменения прав из меню Диспетчер Файлов:

1) Выделить нужную папку/файл и кликнуть на права (непосредственно на цифры, например, 0755):

Изменения прав из меню Диспетчер Файлов

2) Вписать нужные права и нажать Save:

Права файлов и директорий

Второй способ изменения прав из меню Диспетчер Файлов:

1) Выделить нужную папку или файл и нажать на иконку Разрешения (функция доступна также при нажатии правой клавиши мыши по файлу/папке).

Второй способ изменения прав из меню Диспетчер Файлов

2) В новом окне выставить нужные права и нажать Change Permissions.

Смена прав

Как поменять права на файлы и папки по FTP

1. Нужно подключиться к хостинговой учетной записи по FTP;

2. Нажать на файл или папку правой клавишей мыши и выбрать Права доступа к файлу.

Как поменять права на файлы и папки по SSH?

  • Например, настроить права 755 для папки media нужно следующим образом:

Обратите внимание: смена происходит в той директории, в которой вы сейчас находитесь.

  • Для смены прав для всех файлов текущей директории используется знак “звездочка”
  • Если нужно сменить права на файлы во всех подкаталогах определенной папки, то поможет рекурсивная смена, которая выполняется с помощью добавления ключа -R и звездочки:

Для установки прав на несколько файлов необходимо перечислить их названия:

Интересуетесь, сколько стоит хостинг для сайта? Хотите, чтобы хостинг и регистрация доменов дешево обходились? Наши предложения вам не просто понравятся! Вы сможете прилично сэкономить, выбрав любой из наших пакетов услуг.

DokuWiki хранит данные о правах доступа в простых текстовых файлах, так что для этих файлов необходимо настроить права доступа. Если их настроить неправильно, это может стать угрозой безопасности.

DokuWiki работает под управлением PHP, поэтому PHP должен иметь достаточно прав, чтобы перезаписывать эти файлы. Так как PHP обычно запускается под управлением веб-сервера, доступ к файлам на запись должен иметь веб-сервер.

Как правило, DokuWiki хранит файлы, к которым нужен доступ на запись, в каталоге data . Для работы инсталлятора, а также для последующей конфигурации, права на запись также должны быть установлены для каталога conf .

Microsoft IIS (Internet Information Services)

Эта статья поможет вам разобраться с правами доступа, если вы устанавливаете DokuWiki на Linux, MacOS X или другую юниксоподобную систему. Арендуемый веб-сервер с большой вероятностью является юниксоподобным.

Ключевые моменты системы прав доступа

Статья не ставит себе цель подробно описать систему прав доступа UNIX'ов - информацию об этом можно найти, например, в Википедии. Вот ключевые моменты:

Права доступа к файлу зависят от пользователя, который создал файл, и его группы, а также от того, кто пытается получить доступ.

DokuWiki необходимы права на чтение, запись и выполнение для каталогов, в которых нужно создавать файлы.

DokuWiki необходимы права на чтение и запись для файлов, которые нужно перезаписывать во время работы.

Чтобы узнать пользователя и группу, с правами которого выполняется PHP, можно выполнить следующий скрипт:

Какие выставлять права доступа?

Итак, какие же для упомянутых выше каталогов нужны права доступа? Общий совет состоит в том, чтобы они были как можно более ограниченными, но общего правила, какими они должны быть в вашей системе, не существует.

Обладая правами root'а (суперпользователя), вы можете менять владельцев файлов и каталогов. Это значит, что вы можете сменить владельца файлов DokuWiki на пользователя, с правами которого запускается веб-сервер (например, web-server , www-data или nobody ) и установить права доступа только для владельца. Например, 0600 для файлов и 0700 для каталогов.

Если вы обычный пользователь, но состоите в группе веб-сервера, то вы можете сделать эту группу основной для файлов DokuWiki, и после этого установить для этой группы права на запись этих файлов. Например, 0660 для файлов и 0770 каталогов.

Если вы абсолютно доверяете всем, кто имеет доступ к файловой системе сервера, вы можете дать доступ на запись всем пользователям. Например, 0666 для файлов и 0777 для каталогов.

Если вы используете общий сервер, настоятельно рекомендуется связаться с администратором или тех-поддержкой и спросить совета. Отправьте им эту статью, и вам помогут принять правильное решение.

Обратите внимание: когда вы выберете параметры прав доступа, не забудьте сменить настройки fmode и dmode, чтобы новые файлы создавались с корректными параметрами.

Как менять права доступа?

Чтобы изменить права доступа, в командной строке сервера используйте chmod. Чтобы изменить владельца файлов и каталогов, используйте chown. Чтобы изменить основную группу файлов и каталогов, используйте chgrp. (Имейте в виду, что chown и chgrp могут быть запрещены или работать не так, как ожидается, если вы используете общий сервер.)

Мнение одного пользователя Dokuwiki

add simple explanation here

DONE! :) see that was pretty easy, wasn't it? More details please. OK We just gave ownership of the docuwiki system to the Owner and Group the web server belongs to:

User: www, Group: www

DONE! :) We just gave ReadOnly permissions to All the files in the docuwiki folder. That was easy, wasn't it. You will need to determine IN ADVANCE what directories need which perms and which files need what perms. But to summarize:

chown = Change Owner/Group

chmod = Change/Modify permissions

always lead off with a 0 (zero) when chmodding

The other numbers have different meanings. But in most cases when setting up web space, those numbers will not be used/needed. What I've written here should get anyone well on their way to setting up/understanding how to set up a reasonably secure web space/site.

Best wishes and safe admining. :)

Если что-то пошло не так

В определённых ситуациях Вы можете обнаружить, что не можете удалять или редактировать файлы, созданные DokuWiki. Посмотрите fixperms.php для возможного решения проблемы.

Как запретить редактирование определённых страниц?

Убедитетесь, что вы понимаете? что такое настройка прав доступа к файлам и их важность (см. статью Безопасность)

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 4.0 International

Читайте также: