Калькулятор chmod

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

Кто что может
ЧтениеЗаписьВыполнение
Владелец 7
Группа 5
Остальные 5
Специальные биты
Число chmod 755 rwxr-xr-x
Буквы
rwxr-xr-x
ls -l, файл
-rwxr-xr-x
ls -l, папка
drwxr-xr-x
Числом
chmod 755 file
Буквами
chmod u=rwx,g=rx,o=rx file

На VPS вы задаёте права сами: у вас есть root-доступ, и каждому сайту можно дать отдельного пользователя Linux. Сейчас от 3,02 € в месяц, на выбор: 2 226 серверов.

Частые права

РежимБуквыНазначение
rwxr-xr-xПапки, скрипты и программы: владелец меняет их, все могут читать и запускать.
rw-r--r--Обычные файлы сайта: владелец пишет, все читают.
rwxr-x---Как 755, но пользователи вне группы не получают ничего.
rw-r-----Файлы настроек, которые должна читать группа веб-сервера, например wp-config.php.
rwx------Личные папки и скрипты, например ~/.ssh.
rw-------Секреты, которые читает и пишет только владелец: приватные ключи SSH, файлы .env.
r--------Только чтение для владельца, например для ключа, который не должен меняться.
rwxrwxrwxВсе могут читать, записывать и запускать. Избегайте: любой пользователь или взломанный скрипт на сервере может изменить файл.

Права для сайта

Папки с правами 755 и файлы с правами 644 подходят большинству сайтов: пользователь, который выкладывает сайт, пишет, а веб-сервер читает. Выполните эти команды в папке сайта, а затем выставьте секретным файлам, таким как wp-config.php или .env, права 640 или 600.

bash
find /var/www/example.com -type d -exec chmod 755 {} +
find /var/www/example.com -type f -exec chmod 644 {} +
chmod 640 /var/www/example.com/wp-config.php

Работает в вашем браузере: ничего из введённого не отправляется на сервер.

Как это считается

У каждого файла три набора прав: для владельца, для группы и для всех остальных. В каждом наборе три бита: чтение (4), запись (2) и выполнение (1), а восьмеричная цифра — их сумма.

цифра = чтение 4 + запись 2 + выполнение 1
режим = владелец, группа, остальные
755 = rwx (4+2+1) r-x (4+1) r-x (4+1)
644 = rw- (4+2) r-- (4) r-- (4)

Четвёртая цифра спереди хранит специальные биты: setuid 4, setgid 2 и sticky 1. ls показывает их на местах бита выполнения: s для setuid или setgid и t для sticky, заглавной буквой, если бит выполнения под ними выключен. Для папки выполнение — это право войти в неё, поэтому папкам нужен x там, где обычным файлам он не нужен.

Пример

chmod 640 wp-config.php: владелец читает и пишет (6 = 4 + 2), группа читает (4), остальные не получают ничего (0). ls -l покажет -rw-r-----, и веб-сервер сможет прочитать файл, только если он входит в группу файла.

Вопросы

Что означает chmod 755?

Владелец может читать, записывать и выполнять (7), а группа и все остальные — читать и выполнять (по 5). ls -l показывает это как rwxr-xr-x. Это обычный режим для папок, а также для скриптов и программ, которые должны запускать другие.

Чем отличается 644 от 755?

Только битом выполнения. 644 (rw-r--r--) позволяет владельцу писать, а всем читать; 755 дополнительно позволяет всем выполнять. Обычным файлам вроде HTML, изображений и файлов PHP нужен 644, а папкам и скриптам, которые запускаются сами, — 755.

Почему не стоит использовать chmod 777?

777 позволяет любому пользователю и процессу на сервере изменять файл. Если взломают один сайт или плагин, злоумышленник сможет переписать всё, у чего права 777. Ошибку прав лучше исправить, передав файл нужному пользователю командой chown или добавив веб-сервер в группу файла.

Как изменить права всех файлов в папке?

chmod -R 755 folder меняет всё внутри, включая файлы, и делает каждый файл исполняемым. Чтобы разделить папки и файлы, используйте find: find folder -type d -exec chmod 755 {} + для папок и find folder -type f -exec chmod 644 {} + для файлов.