Калькулятор прав доступа chmod

Перевод прав доступа между восьмеричной (755) и символьной (rwxr-xr-x) записью, расшифровка по классам владельца, группы и остальных, special-биты setuid, setgid и sticky.

Режим определяется сам: только цифры — восьмеричная запись (755,4755), иначе — символьная (rwxr-xr-x). Строку из ls -l можно вставлять целиком.

Собрать права галочками
Класс правrwx
Владелец
Группа
Остальные

Галочки пересобирают поле выше — записи обновятся сами. Special-бит не включает право на выполнение: setuid при выключенном x даёт «rwSr--r--», как и в текстовом вводе.

Введите права — расшифровка появится сразу. Или начните с готового примера ниже.

Последние права

Разобранные записи хранятся в истории этого браузера (localStorage) и попадают в экспорт на странице «Закладки». Права — не секрет: в ссылку шеринга они не попадают никогда.

Готовые примеры

Найдено: 7 из 7

Что это и как пользоваться

Конвертер переводит права между восьмеричной записью (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. Сами права доступа от этого не меняются, но важно не потерять ноль, записывая значение в скрипт.