Разрешения 644. Определение прав доступа в виде числового кода
Для тех, кто ищет быстрый способ парой командой массово поменять права доступа на файлы и папки:
Cd /var/www/сайт find ./ -type f -exec chmod 0644 {} \; find ./ -type d -exec chmod 0755 {} \;
Что такое Chmod
Это UNIX-утилита, с помощью которой можно быстро через консоль изменить права на доступ для определённых владельцев (owner) и групп (group) для указанных категорий и файлов.
Зачем использовать Chmod
В UNIX-системах — FreeBSD, Ubuntu, Debian, Centos — у каждого файла и папки (каталога) есть свои , к которым они относятся. Сделано это с целью разграничения прав доступа на чтение (r, read), запись (w, write) и исполнение (x, execute) для разных пользователей: владельцев (u), пользователей, входящих в группу владельца (g) и остальных (o).
Например, если вы пользуетесь хостингом, то должны знать, что ваш сайт физически находится на одном сервере рядом со множеством других сайтов таких же, как вы, пользователей со своими сайтами. Чтобы вы не смогли помешать друг другу, у каждой директории с сайтами свой владелец и группа пользователей, к которым они относятся.
На shared хостинге о вас позаботятся профессиональные системные администраторы. А если вы имеете свой сервер VDS/VPS, то просто обязаны следить за прописанными правами на доступ к файлам. Например, если вдруг с помощью уязвимости на сайте злоумышленник сможет записать backdoor в директорию для загрузки файлов, то с правильно прописанными правами доступа он не сможет причинить большого вреда файловой системе. Конечно, в директории для загрузки файлов должно быть принудительно отключено исполнение скриптов, но это тема уже для другого разговора.
Синтаксис Chmod
chmod [-Rvf] [Правила доступа] [Файл/Файлы/Каталог, директория файлов]В части [Правила доступа] могут быть либо числовые, либо символьные значения.
[Файл/Файлы/Каталог файлов] — путь к файлу, файлам или к каталогу файлов, абсолютный или относительный.
Ключи -R, -v, -f
- -R
Рекурсивное изменение прав доступа для каталога и вложенных файлов и подкаталогов - -v
Подробное описание применения изменения прав доступа или невозможности этого действия - -f
Не выдавать сообщение об ошибке для тех файлов и каталогов, для которых невозможно изменить права доступа
Правила доступа Chmod
Как вы уже знаете, права доступа определяются тем, как пользователь может взаимодействовать с файлами и каталогами, а именно r — read (чтение), w — write (запись), x — execute (выполнение).
А также, вы знаете, что эти права должны быть прописаны для трёх групп пользователей:
- Владелец файла или каталога;
- Пользователи, входящие в группу владельца;
- Остальные.
Теперь посмотрим в таблицу определения прав:
То есть, для того, чтобы записать правило для владельца дать доступ на чтение и запись, остальным дать права только на чтение , мы должны дать права (rw-r--r--)
Теперь обратите внимание на столбец Символьная и Восьмеричная. Там визуально показано, что то, что выглядит символьно как (rw-r--r--), в восьмеричном виде выглядит как (644). Это выражение и будем использовать как числовую запись в команде.
Теперь осталось собрать всё воедино в одну запись. Для примера, изменим права на доступ «всем дать права на чтение, владельцу право изменять содержимое» для файла index.php:
Chmod -v 644 index.php
Как проверить права Chmod
ls -ld index.phpгде index.php — файл или каталог, который нужно проверить.
Пример правильного использования Chmod
Правила доступа по умолчанию для каталогов 755 , для файлов 644 . Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.
Довольно раздражительным может показаться тот факт, что на пути к счастью (читай, работающему сайту) могут стать 403 и 500 ошибки, неработающие скрипты, неудаляемые папки. Вышеперечисленные проблемы часто связаны с неправильно выставленными правами на файлы и папки.
С проблемой неправильных прав вы можете столкнуться при переезде от другого хостера. Например, вы решили у хостинг-провайдера с Windows OS. А потом увидели, что есть специализированный хостинг для CMS — как раз то, что вам нужно. И вы решили перебраться на с Linux OS. Вот тут-то и начинаются проблемы. Но не отчаивайтесь, эта статья поможет вам во всем разобраться.
Рядовые пользователи Windows от таких нюансов далеки. Хотя понятие уровней доступа и существует в этой ОС, но используется редко. Поэтому, если вы хотите , можете смело пропустить эту статью.
- владельца (user);
- группы (group), в которую входят другие пользователи и может входить владелец файла;
- остальных (others) – например, посетителей сайта, которые должны хотя бы иметь права просматривать выставленный вами контент.
Права доступа Linux пользователей могут быть следующими:
К каждому файлу и директории применимы следующие права (используются и в буквенном, и в числовом виде):
read (4 ) – чтение – право на чтение содержимого файла;
write (2 ) – редактирование – право на создание, изменение, удаление файла или директории;
execute (1 ) – исполнение – право на исполнение файла и вход в директорию (проверяется в первую очередь).
Таким образом, права пользователей могут распределяться следующим образом:
Права 777 предоставляют все привилегии пользователю, группе и остальным пользователям системы.
Какие права для файлов и папок использовать в cPanel?
Стандартные права доступа, актуальные и для нашего виртуального хостинга:
Файлы – 644
Папки – 755 .
Они предполагает следующие привилегии:
Почему именно 755 и 644?
Такие права позволяют владельцу свободно работать с данными в виртуальной учетной записи, и при этом меры безопасности соблюдены, ведь редактирование и исполнение файлов не доступно другим пользователям сервера, на котором размещен хостинг.
Работа сайта в большинстве случае связана с использованием различных скриптов, которые добавляют ему интерактивности. Для запуска скриптов на наших серверах виртуального хостинга реализован suPHP, который запускает и исполняет скрипт от имени его владельца. Поэтому не нужно предоставлять права на запись всему веб-серверу Apache (777), как это бывает на некоторых хостингах с mod_PHP. Ведь если дать максимальные права на системные файлы и папки, есть риск, что открытым доступом воспользуются злоумышленники.
Работа со скриптами через suPHP, и соответственно, настройка прав 755 и 644 рекомендуется разработчиками многих cms, например, популярных WordPress и Joomla.
Иногда, при смене хостингового провайдера и переносе данных на новый сервер, на данных остаются старые права. Чтобы сменить их, нужно:
1. Зайти в cPanel от имени пользователя
2. В разделе Файлы выбрать Диспетчер файлов (в WHM недоступен, только через сPanel)
3. Перейти в каталог, в котором необходимо изменить права для файлов/папок. Например, в каталог public_html .
4. Изменить права для файла/каталога можно двумя способами.
Первый способ изменения прав из меню Диспетчер Файлов:
1) Выделить нужную папку/файл и кликнуть на права (непосредственно на цифры, например, 0755 ). Подробнее на скриншоте ниже.
2) Вписать нужные права и нажать Save
.

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

1. Нужно подключиться к хостинговой учетной записи по FTP;
2. Нажать на файл или папку правой клавишей мыши и выбрать Права доступа к файлу .
3. В новом окне выставить права. В случае директории, сменить права можно рекурсивно, выбрав опцию “Перенаправить во вложенные каталоги
”.

Как поменять права на файлы и папки по SSH?
Владельцы могут сменить права через терминал с помощью команды «chmod».
- Например, настроить права 755 для папки media нужно следующим образом:
Обратите внимание: смена происходит в той директории, в которой вы сейчас находитесь.
- Для смены прав для всех файлов текущей директории используется знак “звездочка”
- Если нужно сменить права на файлы во всех подкаталогах определенной папки, то поможет рекурсивная смена, которая выполняется с помощью добавления ключа -R и звездочки:
Для установки прав на несколько файлов необходимо перечислить их названия:
Chmod 644 file1.txt file2.txt file3.txt
Интересуетесь, ? Хотите, чтобы хостинг и обходились? Наши предложения вам не просто понравятся! Вы сможете прилично сэкономить, выбрав любой из наших пакетов услуг.
У каждого файла и папки есть 3 атрибута (права) доступа:
- Право на чтение (обозначается буквой «r» от английского «read» ).
- Право на редактирование и запись в файл (обозначается буквой «w» от английского «write» ).
- Право на исполнение (запуск) скрипта (обозначается буквой «x» от английского «eXecute» ). На виртуальном хостинге право на исполнение применимо только к папкам и CGI-скриптам. Для обычных файлов (HTML-страницы, картинки, PHP скрипты и т.п.) право на исполнение не будет применяться.
Для папок эти атрибуты означают:
- Право на чтение позволяет пользователю получить список содержимого папки.
- Право на запись позволяет создавать и удалять файлы в этой папке.
- Право на исполнение разрешает перейти в эту папку.
Существует несколько способов записи прав доступа: буквенная и цифровая записи. Ниже приведены соответствия двух типов записи:
| Цифровая запись | Буквенная запись | Права |
|---|---|---|
| «0» | --- | Ничего не разрешено |
| 1 | --x | Исполнение |
| 2 | -w- | Запись |
| 3 | -wx | Запись и исполнение |
| 4 | r-- | Чтение |
| 5 | r-x | Чтение и исполнение |
| 6 | rw- | Чтение и запись |
| 7 | rwx | Чтение, запись и исполнение |
Категории пользователей
Для каждого файла (и папки) существует 3 категории пользователей:
- Владелец файла (папки).
- Группа пользователей, в которую входит владелец.
- Все остальные пользователи.
Если используется цифровая запись, первая цифра определяет права владельца, вторая — права группы, третья — права всех остальных пользователей.
При буквенной записи первые три символа определяют права владельца, вторые три определяют права группы, третьи три — права всех остальных пользователей.
Примеры прав доступа в цифровой и буквенной записях и пояснения к ним:
| Цифровая | Буквенная | Владелец | Группа | Все остальные |
|---|---|---|---|---|
| 755 | rwxr-xr-x | полный доступ | чтение и исполнение | чтение и исполнение |
| 644 | rw-r--r-- | запись и чтение | только чтение | только чтение |
| 555 | r-xr-xr-x | чтение и исполнение | чтение и исполнение | чтение и исполнение |
Какие права следует выставлять?
Обычно корректными правами для папок являются «755» , а для файлов — «644» , но возможны исключения, о которых должен знать разработчик сайта. Также информацию по используемым атрибутам доступа можно найти в документации или на тематических форумах используемой вами CMS.
Как изменить права на файлы и папки?
Изменить права доступа к файлу или папке можно двумя способами: в панели управления хостингом и по SSH .
Изменение прав в панели управления хостингом
Чтобы изменить права в панели управления хостингом:

Изменение прав по SSH
Чтобы настроить права доступа к отдельному файлу :
Готово! Права на файлы/папки будут изменены.
Помните сокращенный вариант записи аргументов команды chmod ? Рассмотрим теперь другой способ изменения прав доступа. На первый взгляд он выглядит более сложным.
Вернем первоначальные права доступа к файлу example1.txt:
-rw-rw-r-- 1 user user 42 Мар 24 22:07 example1.txt Каждый тип прав доступа может быть представлен в цифровом виде:
- r = 4
- w = 2
- x = 1
- - = 0
Для установки определенных прав доступа используется сумма этих значений. Например, если вы хотите дать право на чтение и запись, необходимо использовать число 6, так как 4 (чтение) + 2 (запись) = 6.
Вот цифровой эквивалент прав доступа для файла example1.txt:
- (rw-) (rw-) (r--)
| | |
4+2+0 4+2+0 4+0+0
Сумма прав пользователя равна 6, сумма прав группы равна 6, и сумма прав остальных пользователей равна 4. Права доступа читаются как 664 .
Если вы хотите изменить права доступа таким образом, чтобы пользователи, принадлежащие к вашей группе, могли читать файл, но не могли изменять его, отберите у них соответствующее право вычитанием двойки из соответствующего набора чисел.
Цифровой эквивалент станет равным числу 644.
Чтобы ввести в действие новые настройки, введите:
chmod 644 example1.txt
Теперь проверьте изменения, набрав следующую команду:
ls -l example1.txt
Вывод должен быть:
-rw-r--r-- 1 user user 42 Мар 24 22:17 example1.txt
Теперь ни у группы, ни у других пользователей нет права на запись в файл example1.txt . Чтобы вернуть право на запись группе, добавьте значение права на запись (2) ко второму набору разрешений.
chmod 664 example1.txt
Вот список некоторых часто используемых настроек, цифровых эквивалентов и их значения:
- -rw------- (600) — только владелец имеет права на чтение и изменение файла;
- -rw-r--r-- (644) — только у владельца есть права на чтение и изменение; у группы и остальных есть право только на чтение;
- -rwx------ (700) — только у владельца файла есть права на чтение, изменение и выполнение файла;
- -rwxr-xr-x (755) — у владельца есть права на чтение, изменение и выполнение, а у группы и остальных пользователей — на чтение и выполнение;
- -rwx--x--x (711) — у владельца есть права на чтение, изменение и выполнение, а у группы и остальных пользователей — только на выполнение;
- -rw-rw-rw- (666) — любой пользователь может читать и изменять файл (будьте осторожны с такими правами);
- -rwxrwxrwx (777) — любой пользователь может читать, изменять и выполнять файл (еще раз предупреждаем, что в общем случае использовать такие разрешения опасно).
Некоторые часто встречающиеся разрешения для каталогов:
- drwx------ (700) — только владелец может читать и изменять данный каталог;
- drwxr-xr-x (755) — владелец может читать и изменять каталог, у пользователей и группы есть право на чтение и выполнение.
Многие начинающие пользователи ОС Linux часто теряются при назначении прав доступа при помощи команды chmod .
В этом совете, доступно и наглядно, я приведу примеры использования команды chmod . Просто используйте эти примеры в своей работе, подставляя необходимые файлы или каталоги.
Команда chmod являет собой удобный инструмент для повышения безопасности операционной системы и позволяет назначать права доступа к файлам или каталогам.
Если вы работаете в системе, используя расширенные права суперпользователя root (или наделены ими), вы сможете изменять права доступа у любого файла и каталога, принадлежащих любому пользователю системы.
Если вы являетесь обычным пользователем, вы сможете назначать или изменять права доступа только на созданные вами каталоги и файлы.
Назначать права доступа на файлы или каталоги при помощи команды chmod можно двумя способами - при помощи символьного и абсолютных режимов.
Примеры использования команды chmod в символьном режиме :
(Изначальное значение прав доступа файла file - rwxrwxrwx - полный доступ для всех)
Отмена разрешения на выполнение файла для всех пользователей и групп:
$ chmod a-x file (rw-rw-rw-)
Отмена записи в файл группой и остальными пользователями:
$ chmod go-w file (rw-r--r--)
Разрешение выполнения файла владельцем:
$ chmod u+x file (rwxr--r--)
Предоставление группе тех прав доступа, которыми владеет владелец файла:
$ chmod g=u file (rwxrwxr--)
Отмена чтения и запись в файл пользователям группы и другим пользователям:
$ chmod go-rw file (rwx--x---)
Примеры использования команды chmod в абсолютном режиме :
Разрешение чтения, записи, выполнения файла file всеми пользователями и группами (полный доступ):
$ chmod 777 file (rwxrwxrwx)
Установка разрешений на чтение и запись для владельца, группы и остальных пользователей:
$ chmod 666 file (rw-rw-rw-)
Установка полного доступа к файлу для владельца и лишь чтения для группы и остальных пользователей:
$ chmod 744 file (rwxr--r--)
Установка полного доступа к файлу владельцу файла и запрет доступа группе и другим пользователям:
$ chmod 700 file (rwx------)
Установка разрешений на чтение и запись для владельца файла и лишь чтения для группы и остальных:
$ chmod 644 file (rw-r--r--)
Установка разрешений на чтение и запись владельцу файлу и его группе и запрет доступа для других:
$ chmod 640 file (rw-r-----)
Установка доступа к файлу с разрешением чтения для всех пользователей и групп:
$ chmod 444 file (r--r--r--)
Права доступа к файлу для чтения, записи, выполнения владельцем и чтения, выполнения группе и другим:
$ chmod 755 file (rwxr-xr-x)
Разрешение доступа к файлу на чтение и выполнение пользователю и остальным и запрет доступа для группы:
$ chmod 505 file (r-x---r-x)
Если вы хотите назначить права доступа на все файлы в текущем каталоге, просто поставьте после назначаемых прав доступа знак * (звездочка):
$ chmod 755 *
В результате выполнения этой команды владелец получит полные права (чтение, изменение, выполнение) на все файлы текущего каталога, а группа и другие пользователи - только чтение и выполнение.
Если вы хотите, чтобы ваши действия распространились рекурсивно (включая все подкаталоги), воспользуйтесь опцией -R:
$ chmod -R 777 *
Результатом выполнения вышеприведенной команды будет рекурсивный "обход" всех подкаталогов текущего каталога и назначение полного доступа для всех пользователей и групп.
В этой статье рассмотрены лишь некоторые примеры применения команды chmod . Если вы хотите узнать подробнее о работе команды chmod и правах доступа в Linux, обратите внимание на .