Калькулятор прав Unix (chmod)
Интерактивный калькулятор chmod. Включайте и выключайте биты прав для владельца, группы и остальных — восьмеричное число и символьная запись обновляются в реальном времени. Введите восьмеричное число для его декодирования.
| tools.unix-permissions-calculator.label.read | tools.unix-permissions-calculator.label.write | tools.unix-permissions-calculator.label.execute | Oct | |
|---|---|---|---|---|
| tools.unix-permissions-calculator.label.owner | 7 | |||
| tools.unix-permissions-calculator.label.group | 5 | |||
| tools.unix-permissions-calculator.label.other | 5 |
Стандартные наборы
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 ЗНАЧЕНИЕ`, чтобы изменить его для текущего сеанса.
Похожие инструменты
Обновлено: