Что умеет инструмент
Калькулятор chmod переводит права доступа к файлам Unix и Linux между тремя привычными формами записи: сеткой флажков чтения, записи и выполнения, восьмеричным числом вроде 755 и символьной строкой вроде rwxr-xr-x. Он также формирует соответствующую команду chmod в восьмеричной и символьной форме, объясняет, кто что может делать, и поддерживает особые биты setuid, setgid и sticky. Всё работает в браузере.
Как пользоваться
- Отметьте флажки для владельца, группы и остальных или введите режим в поле. Поле принимает восьмеричную запись (
644,0644,4755), строки в стилеls -l(rw-r--r--или-rw-r--r--с типом файла впереди) и выражения chmod вродеu=rwx,g=rx,o=илиa+x. - Флажки и результаты следуют за вводом, а при щелчке по флажку режим переписывается в той же записи.
- Укажите имя файла в Параметрах и включите Рекурсивно (-R), если режим нужно применить ко всему дереву каталогов. Готовую команду можно скопировать одним щелчком.
Типичные режимы
chmod 755 deploy.sh # rwxr-xr-x
chmod 644 index.html # rw-r--r--
chmod 600 ~/.ssh/id_ed25519 # rw-------
chmod 1777 /tmp # rwxrwxrwt
- 755 для каталогов, скриптов и программ: владелец может их менять, все — читать и запускать.
- 644 для обычных файлов, например веб-страниц и изображений.
- 600 для личных файлов вроде SSH-ключей и
.env: читать их может только владелец. SSH отказывается использовать ключи, доступные другим. - 700 для личных каталогов и 775/664, когда проект делит группа пользователей.
Как устроены числа
Каждый класс пользователей получает одну восьмеричную цифру — сумму чтения = 4, записи = 2 и выполнения = 1. Для каталога чтение означает просмотр списка имён, запись — создание и удаление файлов внутри, а выполнение — вход в каталог и доступ к файлам в нём.
Необязательная ведущая цифра хранит особые биты: setuid = 4, setgid = 2, sticky = 1. В символьной записи они заменяют букву выполнения: s для setuid и setgid, t для sticky. Заглавная S или T означает, что особый бит есть, а права выполнения нет, — почти всегда это ошибка.
Калькулятор показывает и соответствующую umask — биты, которые стандартная umask убирает из 777, чтобы получить режим. При umask 022 каталоги получают 755, а файлы — 644.
Частые вопросы
› Что означает chmod 755?
Каждая цифра относится к классу пользователей: владелец, группа и остальные. 7 = чтение (4) + запись (2) + выполнение (1); 5 = чтение + выполнение. Значит, 755 разрешает владельцу всё, а остальным — читать и запускать файл; в символьной записи это rwxr-xr-x. Это обычный режим для скриптов и каталогов.
› Чем 644 отличается от 755?
У 644 (rw-r--r--) нет бита выполнения, поэтому он подходит для обычных файлов: HTML, изображений, конфигов. 755 добавляет выполнение для всех — оно нужно программам для запуска, а каталогам — чтобы в них можно было зайти.
› Почему chmod 777 — плохая идея?
777 позволяет любому пользователю системы изменить или подменить файл. На веб-сервере это значит, что любой скомпрометированный процесс может переписать ваш код. Лучше исправьте владельца через chown и используйте 755 для каталогов и 644 для файлов.
› Что такое setuid, setgid и sticky-бит?
Это четвёртая, ведущая восьмеричная цифра. setuid (4) запускает программу от имени владельца, setgid (2) — от имени группы либо заставляет новые файлы в каталоге наследовать группу, а sticky-бит (1) не даёт удалять чужие файлы в общем каталоге вроде /tmp. В выводе ls они видны как s и t на месте права выполнения.