Права файла index php

Какие правильные права на файлы и директории web-проекта?

Имеется сервер на Linux (nginx + php5-fpm) с web-проектом. В общем случае, имеются папки с кодом проекта, папка web с фронт-контроллером и ресурсами, папки с загружаемыми пользователями файлами, а также папка с логами и кэшем.

Подскажите, пожалуйста, какие права на какие папки/файлы должны быть и у какого пользователя? Для nginx в конфиге прописан пользователь www, но сейчас nginx запускается из-под рута, в связи с чем в браузере открываются даже файлы из папки web с отключенными разрешениями на чтение, как правильно исправить эту проблему?

1. зачем было менять дефотного юзера, www создан?
2. а как по вашему должен стартовать nignx? Рекомендую к прочтению. Так же уделите внимание на master process и worker process
3. Надеюсь, что к настройке php5-fpm был подход с толком и поэтому для каждого домена был создан свой пул. Ну так вот, в пуле php5-fpm требует валидных user и group для document root.
4. Подводя итог, права на папки — 755, на файлы — 644, owner user:group
hint:
find /var/www/vhosts/myperfectwebsite.com -type d -exec chmod 0755 <> \;
find /var/www/vhosts/myperfectwebsite.com -type f -exec chmod 0644 <> \;

совет: эта тема очень важна, поэтому на неё стоит потратить 2-4 часа.

miraage

Запускать nginx под www (или www-data, как там).
Весь /var/www у меня 664 на файлы, 775 на папки, owner www-data:www-data.
Мой ssh юзер состоит в группе www-data.

Самой правильной(броневой) практикой вроде как считается — создание двух пользователей для проекта: для деплоя и для работы сервера. Помещение их в одну группу.
Выставление прав на большинство (по возможности все) фалы проекта — 644.
Выставление прав на большинство (вот тут скорее всего не все) директории проекта — 755.
Для тех фалов/директорий, куда должен мочь писать сервер (логи, кеш и т.п.) — 664 и 775 соответственно.
Owner у всего, что не создал сервер: пользователь_для_деплоя:общая_группа .

Войдите, чтобы написать ответ

Как поправить зависимости в rpm пакете?

Источник

Права на файлы и каталоги

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

Какие бывают права на файлы и папки

Права можно разделить на 3 группы:

  1. Чтение — отвечает за просмотр файла или содержимого папки.
  2. Запись — возможность записи в файл, создание элементов в папке.
  3. Исполнение — запуск скрипта или открытие каталога.
Читайте также:  Json формат php encode

Есть три категории, наделяемых разными правами:

Расшифровка прав

Права доступа записываются цифрами или буквами в определенном порядке: владелец — группа — остальные пользователи.

  • r – чтение (Read)
  • w – запись и редактирование (Write)
  • x – исполнение скрипта (eXecute)

В цифровом виде права записываются от 0 до 7 в порядке возрастания прав (0 — запрещено, 7 — полный доступ).

Соотношение цифровых и буквенных значений:

Цифровая запись Буквенная запись Права
7 rwx чтение, запись и исполнение
6 rw- чтение и запись
5 r-x чтение и исполнение
4 r— чтение
3 -wx запись и исполнение
2 -w- запись
1 —x исполнение
0 отсутствие прав

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

На практике преимущественно используются права 644 (rw-r—r—) на файлы и 755 (rwxr-xr-x) на папки. Они предоставляют полный доступ владельцам файлов и каталогов, а остальные пользователи смогут их только просматривать.

На хостингах без изоляции клиентов друг от друга на уровне операционной системы можно увидеть права 600 (rw——) на файлы и 700 (rwx— —) на каталоги — они позволяют владельцу работать с ними и запрещают любые действия другим пользователям.

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

В инструкциях к скриптам также часто упоминаются права 444 (r—r—r—) и 555 (r-xr-xr-x), либо 666 (rw-rw-rw-) и 777 (rwxrwxrwx) на файлы и каталоги. Низкие права предназначены для защиты от изменения файлов и записи в каталоги, другие наоборот, позволяют записывать данные любому пользователю.

На наш взгляд, подобные рекомендации имели смысл в начале 2000 годов, когда все скрипты на хостингах часто выполнялись из-под одного пользователя. На современных хостингах, где веб-сервер настроен правильно и скрипты выполняются не из-под общего пользователя, подобные рекомендации не имеют никакого смысла.

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

В DirectAdmin

  • Выделите файл или каталог, для которого нужно установить права доступа.
  • Откройте выпадающее меню в правом верхнем углу.
  • Выберите пункт «Указать права доступа».
  • Укажите права (впишите цифровое значение или выставьте галочками).
  • Нажмите «Save» (Сохранить).
Читайте также:  Creating text link html

Права доступа в DirectAdmin

Права доступа в DirectAdmin

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

Для рекурсивного изменения активируйте кнопку «Recursive» (метод неудобен тем, что рекурсивно выставляются единые права на файлы и каталоги).

Права доступа в DirectAdmin

Права доступа в DirectAdmin

В cPanel

  • Выделите файл или каталог, для которого нужно изменить права доступа.
  • Нажмите «Права» в верхнем меню.
  • Установите права доступа к файлам и папкам.
  • Нажмите «Change Permissions» для сохранения изменений.

Права доступа в cPanel

Права доступа в cPanel

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

Права доступа в cPanel

В ISPmanager

  • Выделите нужные элементы.
  • В подменю «Редактировать» выберите «Атрибуты».
  • Укажите права.
  • Нажмите «ОК» для сохранения.

Права доступа в ISPmanager

Права доступа в ISPmanager

Как изменить права по SSH

Изменение прав выполняется командой chmod . Соединитесь с сервером по SSH и введите команду:

chmod 600 public_html/index.php

Где chmod — команда на изменение прав, 600 — права доступа, public_html/index.php — путь до объекта, для которого меняются права доступа.

На скриншоте, войдя в каталог с сайтом, командой stat мы проверили имеющиеся права доступа на файл index.php (было 644) и установили 600. Для каталогов выполняется аналогично.

Права доступа по SSH

По SSH можно удобным способом рекурсивно менять права на файлы и каталоги. Для этого используйте следующие команды:

find /path -type d -exec chmod 755 <> \; find /path -type f -exec chmod 644 <> \;

Первая команда установит права 755 на все каталоги и подкаталоги, а вторая команда поставит 644 права на файлы аналогичным способом. /path в команде нужно заменить на путь до каталога с сайтом.

Источник

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

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

  • чтение содержимого файла или просмотр перечня имен файлов в каталоге;
  • запись файла или создание и удаление файлов из каталога;
  • запуск файлов (например, скриптов) или доступ к файлам в каталоге.

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

  • user (владелец файла) – это пользователь, который создает данный файл или папку, и затем подключается к серверу, например, по протоколу FTP под своим именем и паролем;
  • group (группа, к которой принадлежит владелец файла) – это другие пользователи, которые также подключаются к серверу по протоколу FTP и пытаются получить доступ к файлам или каталогам непосредственного владельца;
  • other (все остальные пользователи) – это все посетители сайта, которые заходят на него через свой браузер.
Читайте также:  Github java example code

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

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

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

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

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

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


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

'; echo '-------- chmod() --------

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

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

Быстрый переход к другим страницам

html.okpython.net Copyright © 2016-2023.

Источник

Оцените статью