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