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

Довольно раздражительным может показаться тот факт, что на пути к счастью (читай, работающему сайту) могут стать 403 и 500 ошибки, неработающие скрипты, неудаляемые папки. Вышеперечисленные проблемы часто связаны с неправильно выставленными правами на файлы и папки.

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

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

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

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

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

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)

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

3. Перейти в каталог public_html

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

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

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

5. в новом окне выставить нужные права и сохранить изменения.

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

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

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

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

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

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

3. В новом окне выставить права. В случае директории, сменить права можно рекурсивно, выбрав опцию “Перенаправить во вложенные каталоги”.

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

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

Владельцы ВПС могут сменить права через терминал с помощью команды «chmod».

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

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

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

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

chmod 644 file1.txt file2.txt file3.txt