Калькулятор прав доступа chmod
Перевод прав доступа между восьмеричной (755) и символьной (rwxr-xr-x) записью, расшифровка по классам владельца, группы и остальных, special-биты setuid, setgid и sticky.
Режим определяется сам: только цифры — восьмеричная запись (755,4755), иначе — символьная (rwxr-xr-x). Строку из ls -l можно вставлять целиком.
Расшифровка
- Владелец
- Группа
- Остальные
Как читать запись
r— чтение,w— запись,x— выполнение.- Три группы символов: владелец, группа, остальные. Цифра — сумма 4 (чтение) + 2 (запись) + 1 (выполнение).
sвместоx— setuid/setgid с правом на выполнение,S— без него.t— sticky с правом на выполнение,T— без него.
Последние права
Разобранные записи хранятся в истории этого браузера (localStorage) и попадают в экспорт на странице «Закладки». Права — не секрет: в ссылку шеринга они не попадают никогда.
Готовые примеры
Найдено: 7 из 7
- Права 644 (rw-r--r--)Обычный файл конфигурации: владелец читает и пишет, группа и остальные — только читают. Восьмерично 644, символьная запись rw-r--r--.
- Права 755 (rwxr-xr-x)Исполняемый файл или каталог: владелец может всё, группа и остальные — читать и выполнять. Восьмерично 755, символьная запись rwxr-xr-x.
- setuid-бит: права 4755 (rwsr-xr-x)setuid-программа: запускается с правами владельца файла. Старшая цифра 4 ставит бит, а буква «s» на месте права на выполнение показывает, что оно есть.
- sticky-бит: права 1777 (rwxrwxrwt)Общий каталог вроде /tmp: писать могут все, но удалить файл — только его владелец. Старшая цифра 1 даёт букву «t» в конце символьной записи.
- Права 777 (rwxrwxrwx)Полный доступ для всех: владелец, группа и остальные читают, пишут и выполняют. Осознанно ставится на разделяемые каталоги вроде /tmp; на файлах сайта и конфигах 777 — дыра в безопасности.
- Права 600 (rw-------)Приватный файл вроде ~/.ssh/id_rsa: владелец читает и пишет, группа и остальные не получают ничего. Восьмерично 600, символьная запись rw-------.
- Права 400 (r--------)Только чтение и только для владельца: группе и остальным доступ закрыт полностью. Типичные права системных конфигов и резервных копий, которые не должны меняться на ходу.
Что это и как пользоваться
Конвертер переводит права между восьмеричной записью (755, 0644, 4755) и символьной (rwxr-xr-x). Работает и обратное направление: строка rw-r--r-- превращается в 644, а rwsr-xr-x — в 4755 с расшифровкой setuid.
Четыре цифры читаются как special-бит плюс три класса: 4 — setuid, 2 — setgid, 1 — sticky. Каждый бит подписан отдельно, поэтому видно, что даёт s в позиции владельца и t в позиции остальных.
Символьная запись принимает ровно девять символов, но строка из вывода ls -l тоже разбирается: первый символ типа файла (d, l, -) отбрасывается, и права читаются из оставшихся девяти.
Восьмеричная запись понимается в три и в четыре цифры: 644 и 0644 — одно и то же, ведущий ноль указывает только систему счисления.
Помимо перевода есть сборка прав галочками: отметить чтение, запись и выполнение для владельца, группы и остальных и получить готовое восьмеричное число без сложения 4+2+1 в уме.
Результат показывается так, как его увидит ls -l, — с типом файла и разбивкой по классам, так что запись из документации можно сверить с тем, что реально стоит на файле.
Когда пригодится
- Прочитать чужую команду: понять, что даёт chmod 4755 в инструкции по установке.
- Подобрать права для скрипта: 700 для исполняемого файла, 644 для конфига, 755 для каталога.
- Проверить подозрительное: увидеть, что 777 открывает запись всем, и заменить на 755 или 644.
- Собрать запись галочками, когда проще отметить классы, чем вспоминать суммы битов.
Чего инструмент не делает
- Права только переводятся и собираются: на диске ничего не меняется, команда chmod не выполняется.
- Владелец и группа не показываются: числовые uid и gid, а также chown остаются вне этой страницы.
- ACL, атрибуты Windows и SELinux-контексты не поддерживаются — только девять классических битов плюс три special.
- Бит x у каталога и у файла означают разное, но в записи выглядят одинаково: страница не подсказывает, что перед вами.
- Соответствие политике безопасности не проверяется: страница не знает, какой режим требует ваша служба, и не сравнивает его с эталоном.
Примеры
- Вход
755- Выход
rwxr-xr-x (владелец rwx, группа r-x, остальные r-x)- Вход
4755- Выход
rwsr-xr-x — setuid плюс обычные 755
Частые вопросы
Что означают цифры в chmod 755?
Каждая цифра — это сумма прав: 4 за чтение, 2 за запись и 1 за выполнение. Три цифры подряд относятся к владельцу, группе и остальным. Так, 755 раскрывается как rwxr-xr-x.
Чем отличаются восьмеричная и символьная запись?
755 — это цифры, а rwxr-xr-x — буквы, где r, w и x означают чтение, запись и выполнение, а дефис — отсутствие права. Это одно и то же, просто разный синтаксис одной и той же записи.
Что такое setuid и setgid?
Это специальные биты: программа с setuid выполняется с правами владельца файла, а с setgid — с правами его группы. Это рискованно, потому что ошибка в такой программе может дать повышение привилегий.
Что делает sticky-бит, как в /tmp?
В каталоге с sticky-битом, например в /tmp, удалить файл может только его владелец, хотя писать туда могут все. В символьной записи это буква t в самом конце.
Почему права 777 — это плохо?
777 открывает файл всем на чтение, запись и выполнение. На сервере это дыра в безопасности: любой пользователь может изменить файл и затем выполнить его. Используйте минимально необходимые права.
Что значит ведущий ноль, например 0644?
В командной строке ведущий ноль означает восьмеричную систему счисления, как в C и Python. Сами права доступа от этого не меняются, но важно не потерять ноль, записывая значение в скрипт.