Права доступа в Linux определяют, какие действия разные пользователи могут совершать с файлами и папками. От них зависит безопасность ваших файлов на хостинге. А также из-за неправильных прав могут не работать скрипты, не удаляться папки, возникать ошибка 403 и ошибка 500.
В этой статье разбираемся, как в принципе устроены права доступа в Linux, какие права считаются безопасными, а также как изменить права на папки и файлы.
Содержание
- Какие бывают права доступа в Linux
- Как обозначаются права доступа в Linux
- Какие права доступа использовать на хостинге
- Как изменить права доступа к файлу или папке
Какие бывают права доступа в Linux
Права доступа выдаются для трёх действий:
- чтение — возможность просматривать содержимое файла или папки;
- запись — возможность менять содержимое файла или папки;
- выполнение — возможность запускать файл или входить в папку.
Правами могут обладать три категории пользователей:
- владелец — по умолчанию это тот, кто создал файл, но вообще, владельцем можно назначить любого другого пользователя;
- группа — несколько пользователей под общим именем;
- остальные — пользователи, которые не являются владельцем и не входят в группу.
У каждой категории пользователей могут быть права либо сразу на все действия, либо только на некоторые, либо вообще не быть прав. Исключение — пользователь root: у него будут все права на все файлы и папки на сервере независимо ни от чего.
Формат записи прав доступа
Права доступа записывают либо цифрами, либо буквами. В зависимости от формата у действий будут такие значения:
- чтение — 4 (r);
- запись — 2 (w);
- выполнение — 1 (x).
В цифровом формате права доступа записывают в виде числа из трёх цифр. Например, 755 или 644. Такой формат написания прав можно встретить в панелях управления хостингом и FTP-клиентах.
Первая цифра отвечает за права владельца файла, вторая — за права группы, а третья — за права остальных пользователей.
Каждая из трёх цифр представляет из себя сумму цифровых значений тех или иных действий. Цифра 0 означает «отсутствие права».
Например, права 755 означают, что владелец файла имеет права на чтение, запись и выполнение (4+2+1=7), а группа и остальные пользователи имеют права только на чтение и выполнение (4+0+1=5).
Права 644 означают, что владелец файла имеет права на чтение и запись (4+2+0=6), а группа и остальные пользователи — только на чтение (4+0+0=4).
В буквенном формате права доступа записывают в виде текстовой строки из девяти букв. Например, rwxr-xr-x или rw-r–r–. Такой формат написания прав можно встретить в командной строке.
Первые три буквы отвечают за права владельца, вторые — за права группы, а третьи — за права остальных пользователей. Буквы всегда должны идти только в одном порядке — rwx. Символ – означает «отсутствие права».
Например, права rwxr-xr-x означают то же самое, что и 755: владелец файла имеет права на чтение, запись и выполнение (rwx), а группа и остальные пользователи имеют права только на чтение и выполнение (r-x).
Права rw-r–r– означают, что владелец файла имеет права только на чтение и запись (rw-), а группа и остальные пользователи — только на чтение (r–).
Какие права доступа использовать на хостинге
Чтобы файлы на хостинге были в безопасности, не выдавайте группе и остальным пользователям право на запись. Пусть оно будет только у владельца.
Оптимальные права доступа к файлам и папкам на хостинге:
- 644 для файлов;
- 755 для папок.
Для критически важных файлов вроде php.ini или конфигурационного файла базы данных можно использовать более строгие права: 600 или 700.
Никогда не используйте права 777. Это слишком широкие права доступа, с которыми любой пользователь сможет управлять файлами у вас на хостинге наравне с вами. Такое решение может уничтожить ваш сайт.
Как изменить права доступа к файлам и папкам
Есть три способа изменить права для файлов и папок: 1) при помощи командной строки; 2) при помощи FTP-клиента; 3) при помощи панели управления хостингом.
В командной строке
Это делается при помощи команды chmod. Чтобы её использовать, нужно подключиться к хостингу по SSH, зайти в нужную папку и ввести команду в таком формате:
chmod права путь-к-файлу-или-папке
Например, чтобы сменить права на папку media, зайдите в папку уровнем выше, затем используйте такую команду:
chmod 755 media
Чтобы установить права на все файлы в текущей папке, используйте символ *:
chmod 644 *
Если хотите изменить права рекурсивно (изменить права доступа к папке и вложенным в неё файлам), используйте опцию -R:
chmod -R 644 *
Чтобы поменять права на несколько файлов сразу, перечислите их названия один за другим:
chmod 644 file1.txt file2.txt file3.txt
В FTP-клиенте
Как и командная строка, этот способ универсальный для любого хостинга. Скачиваете программу FileZilla, подключаетесь к серверу по FTP, находите нужную папку или файл на сервере, кликаете по ней правой кнопкой мыши и выбираете «Права доступа к файлу».
Во всплывающем окне вы сможете указать числовое значение прав или поставить галочку в нужном месте, чтобы выдать конкретные права отдельно для владельца, группы и остальных пользователей.
Более подробно и со скриншотами рассказываем, как работать в программе FileZilla, в отдельной статье:
Как пользоваться FTP-клиентом FileZilla
В панели управления хостингом
Это наименее универсальный способ, потому что у разных провайдеров хостинга панели управления обычно сильно отличаются. У себя на виртуальном хостинге мы используем cPanel — одну из самых популярных панелей в мире. Вот как изменить права на файл или папку в ней.
В приложении «Менеджер файлов» выберите нужную папку или файл и на панели инструментов нажмите «Права».
Во всплывающем окне вы сможете указать числовое значение прав или поставить галочку в нужном месте, чтобы выдать конкретные права отдельно для владельца, группы и остальных пользователей.
Альтернативный способ — выберите нужный файл в таблице и кликните по правам доступа (непосредственно по цифрам 0755). После этого поле откроется для редактирования. Впишите нужные цифры и нажмите «Save».
Более подробно и со скриншотами читайте, как работать в менеджере файлов cPanel, в нашей отдельной статье:
Как пользоваться диспетчером файлов cPanel
Что нужно запомнить
Кто может иметь права доступа в Linux
Владелец, группа, остальные пользователи.
На какие действия выдаются права
Чтение, запись, выполнение.
Числовые значения для каждого действия
Чтение — 4, запись — 2, выполнение — 1.
Оптимальные права доступа на хостинге
755 для папок, 644 для файлов
Как изменить права доступа в консоли
chmod права имя-файла-или-папки