Инструменты
Руководства

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

Разработка

Преобразование между восьмеричным chmod, символическим видом и матрицей прав 3×3 — в реальном времени, трёхсторонняя синхронизация.

100 % на клиенте Без бэкенда

Удалённые URL не запрашиваются; вставьте JSON напрямую.

Биты прав
чтение (4) запись (2) выполнение (1) Цифра
Владелец
0
Группа
0
Остальные
0
Специальные биты (префикс)
$ chmod 0000 file
Символическое: a=
На этой странице

Что такое калькулятор chmod?#

chmod — команда Unix, устанавливающая права на чтение, запись и выполнение для файла или каталога. Её модель прав — три группы: владелец, группа, остальные, — у каждой по три бита вкл/выкл: чтение (4), запись (2), выполнение (1), которые суммируются в одну цифру от 0 до 7. Сложите три цифры — и получите восьмеричный режим, который вводят в командной строке: 755 означает «владелец чтение+запись+выполнение (7), группа чтение+выполнение (5), остальные чтение+выполнение (5)». Есть и необязательная четвёртая специальная префиксная цифра для setuid, setgid и sticky-бита.

Причина, по которой калькулятор здесь реально полезен, — тройная эквивалентность между матрицей прав (флажки, которые вы ставите в файловом менеджере), восьмеричным числом (755) и символической строкой (rwxr-xr-x, как выводит ls -l). Большинство хорошо осваивает одно из этих представлений и буксует на двух остальных. Эта страница держит все три синхронно: меняете любое — два других мгновенно обновляются, а подходящая команда chmod собирается за вас.

Это важно, потому что неправильный бит прав — один из самых частых способов сломать деплой: каталог, который не может прочитать веб-сервер; закрытый ключ, слишком открытый и потому отбрасываемый SSH; исполняемый файл, потерявший бит x. Читать 755 и понимать, что это «world-readable, группа и остальные могут traverse, но не писать», — навык, который этот инструмент тренирует, показывая перевод вживую.

Как пользоваться#

  1. Работайте из того представления, что у вас уже есть:
    • Расставьте флажки в матрице прав (3 строки: владелец/группа/остальные, 3 столбца: чтение/запись/выполнение). Столбец Цифра справа у каждой строки показывает значение группы 0–7 по мере проставления.
    • Или введите значение Восьмеричное (1–4 цифры, принимается префикс 0o, например 755, 0644, 0o600).
    • Или введите значение Символическое (rwxr-xr-x, форма с запятыми rwx,r-x,r-x, либо chmod-выражение вроде u=rw,go=r).
  2. Если нужны специальные биты, отметьте setuid, setgid или sticky в группе Специальные биты. В символьной форме они занимают слот выполнения своего владельца: s/S для setuid/setgid, t/T для sticky.
  3. Читайте карточку результата:
    • Собранная команда, chmod <восьмеричное> файл, готова к копированию.
    • Символическая форма, например u=rwx,go=rx.
    • Разбор по группам: цифра каждого «кого» и его права на чтение/запись/выполнение.
  4. Нажмите Копировать, чтобы забрать командную строку.
  5. Строка состояния подтверждает разбор или сообщает, что восьмеричный или символьный ввод был недопустимым.

Ключевые возможности#

  • Трёхсторонняя живая синхронизация. Матрица, восьмеричное и символическое обновляют друг друга, поэтому можно вводить то, что знаете, и читать то, что нужно.
  • Специальные биты обработаны корректно. setuid, setgid и sticky-бит обрабатываются без потерь, включая нотацию нижнего/верхнего регистра в слоте выполнения (s против S, t против T), как их выводит ls.
  • Каноническое четырёхзначное восьмеричное. Вывод всегда четырёхзначный (0755, 4755, 0000), как показывают режимы chmod и stat, — никогда неоднозначная трёхзначная форма при установленных специальных битах.
  • Символическая форма выражениями. Выдаёт абсолютную форму присваивания, какую принимает shell (u=rw,go=rx), объединяя одинаковые соседние группы для краткости и добавляя специальные биты как u+s / g+s / +t.
  • Толерантный разбор ввода. Принимает 755, 0644, 0o600, девятисимвольную картинку, вариант с запятыми и chmod-выражения (u=rwx,go=rx, u+rwx,go-w).

Разбор примера#

Самый частый режим для развёрнутого веб-каталога. Введите 755 в поле «Восьмеричное». Матрица отметит владелец чтение+запись+выполнение, группа чтение+выполнение, остальные чтение+выполнение; символьное поле покажет rwxr-xr-x; карточка результата прочитает:

$ chmod 755 файл
Symbolic: u=rwx,go=rx

с разбором: владелец 7 (чтение, запись, выполнение), группа 5 (чтение, выполнение), остальные 5 (чтение, выполнение). Это стандартный режим для каталогов и исполняемых скриптов: владелец может всё, остальные — читать и traverse, но не изменять.

Теперь сравните с 644 — безопасным режимом для обычного обслуживаемого файла. Символическое становится rw-r--r--, а команда — chmod 644 файл: владелец может читать и писать, группа и остальные — только читать, и что важно, ни у кого нет выполнения (поэтому скачанный файл случайно не запустится). Для закрытого SSH-ключа введите 600 (rw-------) — единственный режим, который примет ssh.

Пример со специальным битом: бинарник, который должен работать с правами своего владельца. Введите 4755 — символьный слот становится rwsr-xr-x (обратите внимание на s в позиции выполнения владельца, маркирующий setuid). Команда читается chmod 4755 файл, а ведущая 4 — специальная префиксная цифра (setuid = 4), которую трёхзначная форма выразить не может, — именно поэтому этот инструмент всегда выдаёт четыре цифры.

FAQ#

В чём разница между 755 и 0755?#

В командной строке они эквивалентны — chmod 755 и chmod 0755 дают одинаковый режим, потому что ведущий 0 просто означает «без специальных битов». Этот инструмент всегда показывает четыре цифры (0755), чтобы позиция специальных битов была видна и согласована с тем, как stat и ls отчитывают режим. Когда вы копируете командную строку, используется общепринятая форма chmod 755 файл, потому что именно так её вводят люди.

Что значат s, S, t и T в символьном выводе?#

Это специальные биты, занимающие слот выполнения. Строчное s (в позиции владельца или группы) значит setuid/setgid и выполнение включено; заглавное S — бит установлен, но выполнения нет. Строчное t (в позиции остальных) значит sticky и выполнение включено; заглавное T — sticky установлен, выполнения нет. Это соглашение «заглавная = без выполнения» — способ, которым ls различает два состояния без дополнительной колонки.

Что использовать при реальном запуске chmod — восьмеричное или символьное?#

Работает и то, и другое, но ведёт себя по-разному. Восьмеричное (chmod 755 файл) задаёт режим абсолютно — каждый бит устанавливается ровно так, как вы написали. Символическое (chmod u+x файл) редактирует текущий режим — меняет только упомянутые биты, оставляя остальные нетронутыми. Используйте восьмеричное, когда нужно известное конечное состояние (deploy-скрипты, Dockerfile); символическое — когда слегка подправить одно право, не тревожа остальные.

Почему SSH отказывается принимать закрытый ключ с ошибкой «bad permissions»?#

Потому что ssh требует, чтобы у закрытых ключей был режим 0600 (чтение/запись только владельцу), и отвергает всё более открытое как небезопасное. Если у ключа 0644 или есть запись для группы/остальных, ssh считает его подверженным подмене и отказывается использовать. Установите chmod 600 id_ed25519 — и ошибка исчезнет. Точный режим можно проверить здесь перед запуском команды.