🔧Toolify

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

Интерактивный калькулятор chmod. Включайте и выключайте биты прав для владельца, группы и остальных — восьмеричное число и символьная запись обновляются в реальном времени. Введите восьмеричное число для его декодирования.

tools.unix-permissions-calculator.input.symbolic
rwxr-xr-x
tools.unix-permissions-calculator.label.readtools.unix-permissions-calculator.label.writetools.unix-permissions-calculator.label.executeOct
tools.unix-permissions-calculator.label.owner7
tools.unix-permissions-calculator.label.group5
tools.unix-permissions-calculator.label.other5
755= 755
tools.unix-permissions-calculator.label.ownertools.unix-permissions-calculator.label.grouptools.unix-permissions-calculator.label.other

Стандартные наборы

chmod 755 filename

Как это работает

История прав Unix и восьмеричной нотации

Права доступа к файлам в Unix были разработаны Кеном Томпсоном в 1969 году при создании оригинальной Unix на PDP-7. Каждый файл хранит девять битов прав в inode: три для владельца, три для группы и три для всех остальных. Объединение каждой тройки битов в одну восьмеричную цифру (0–7) было естественным выбором: одна цифра на объект, три цифры в сумме. Эта восьмеричная конвенция была закреплена в POSIX.1-1988 и остаётся неизменной во всех системах Linux, macOS, BSD и Unix-подобных ОС.

Символьная форма (rwxr-xr-x) появилась в выводе `ls -l` в первых дистрибутивах Unix и стала удобочитаемым дополнением к восьмеричному числу. POSIX определяет оба представления как нормативные. `chmod u+x файл` использует символьную форму; `chmod 755 файл` — восьмеричную. Оба выполняют одну и ту же операцию ядра: установку конкретных битов в поле режима inode.

Значение каждого бита прав

Для обычного файла: чтение (r=4) позволяет открыть и прочитать содержимое; запись (w=2) позволяет изменять или усекать файл; выполнение (x=1) позволяет запускать файл как программу. Каждый бит независим. Восьмеричная цифра объекта — сумма установленных битов: rwx=7, r-x=5, r--=4.

Для каталога значения меняются. Чтение (r) разрешает вывод содержимого через `ls`. Выполнение (x) — «бит поиска» — разрешает войти в каталог через `cd` и обращаться к файлам по имени. Запись (w) разрешает создавать, удалять или переименовывать файлы в каталоге. Каталог с чтением, но без выполнения почти бесполезен: имена файлов видны, но ни один из них нельзя открыть. Типичные каталоги имеют права 755.

Распространённые наборы прав и вопросы безопасности

644 (rw-r--r--) — стандарт для файлов конфигурации, HTML и текстовых файлов: владелец может редактировать, остальные — только читать. 755 (rwxr-xr-x) — стандарт для каталогов и исполняемых скриптов: владелец управляет содержимым, остальные могут просматривать и читать. 600 (rw-------) и 700 (rwx------) ограничивают доступ только владельцем — подходят для SSH-ключей и файлов паролей. Никогда не используйте 777 для файлов, доступных из интернета: предоставление записи «остальным» означает, что любой процесс в системе может перезаписать файл.

umask определяет права по умолчанию для новых файлов и каталогов. Значение umask 022 (типично для большинства систем) означает, что новые файлы получают права 644, а новые каталоги — 755, поскольку биты umask вычитаются из значений по умолчанию 666 (файлы) и 777 (каталоги). В системах с усиленной безопасностью часто используют umask 027 или 077.

Частые вопросы

Что означает 755?

755 означает: владелец имеет чтение+запись+выполнение (7=4+2+1), группа — чтение+выполнение (5=4+1), остальные — чтение+выполнение (5=4+1). Это стандартные права для каталогов и исполняемых скриптов.

Что означает 644?

644 означает: владелец имеет чтение+запись (6=4+2), группа — только чтение (4), остальные — только чтение (4). Это значение по умолчанию для обычных файлов: конфигураций, веб-страниц и текстовых документов.

Зачем каталогу нужно право на выполнение?

Для каталога бит выполнения является «битом поиска». Без него невозможно войти в каталог через `cd` или открыть файлы внутри по пути, даже если установлен бит чтения. Каталог с чтением, но без выполнения практически бесполезен.

В чём разница между владельцем, группой и остальными?

Владелец — учётная запись пользователя, которому принадлежит файл (устанавливается при создании или изменяется через chown). Группа — группа, назначенная файлу (изменяется через chgrp); все пользователи этой группы получают права группы. Остальные — все пользователи системы, не являющиеся ни владельцем, ни членами группы.

Что такое SUID и SGID?

SUID (Set User ID) и SGID (Set Group ID) — специальные биты прав сверх стандартных девяти. При установке SUID на исполняемый файл он запускается с привилегиями владельца файла, а не вызывающего — так работают команды passwd и sudo. SGID на каталоге заставляет новые файлы наследовать группу каталога. В символьной форме обозначается 's' (например, rwsr-xr-x), к восьмеричному значению прибавляется 4000 или 2000 (например, 4755).

Опасен ли chmod 777?

Да, особенно на совместно используемой системе или веб-сервере. 777 предоставляет полные права чтения, записи и выполнения всем пользователям системы. Любой процесс, включая скомпрометированные веб-приложения, может перезаписать или выполнить файл. На веб-серверах это часто приводит к выполнению произвольного кода. Ограничивайте права до необходимого минимума.

Как использовать команду chmod?

Используйте `chmod ВОСЬМЕРИЧНОЕ путь` для одного файла или `chmod -R ВОСЬМЕРИЧНОЕ каталог` для рекурсивного применения. Например: `chmod 644 index.html` или `chmod 755 /var/www`. Можно также использовать символьный синтаксис: `chmod u+x script.sh` добавляет выполнение владельцу, не затрагивая остальные биты.

Что такое umask и как он связан с правами?

umask — маска, применяемая к правам по умолчанию при создании нового файла или каталога. umask 022 убирает запись у группы и остальных, поэтому новые файлы получают 644, а новые каталоги — 755. Выполните `umask` в оболочке, чтобы увидеть текущее значение, и `umask ЗНАЧЕНИЕ`, чтобы изменить его для текущего сеанса.

Похожие инструменты

Обновлено:

Попробуйте наши ИИ-промпты →