Pack Camo

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

Права доступа Unix флажками, в восьмеричном виде как 755 и символьном как rwxr-xr-x.

Всё выполняется локально — ничего не отправляется на сервер.

Права доступа

КтоЧтение (4)Запись (2)Выполнение (1)Значение
Владелец7
Группа5
Остальные5
Специальные биты

Частые режимы

Команда

  • Числовая
    chmod 755 script.sh
  • Символьная
    chmod u=rwx,g=rx,o=rx script.sh
Восьмеричный
0755
Символьный
rwxr-xr-x
ls -l
-rwxr-xr-x
Форма chmod
u=rwx,g=rx,o=rx

Кто что может

  • Владелец: может читать его, изменять его и запускать его как программу.
  • Участники группы: может читать его и запускать его как программу.
  • Все остальные: может читать его и запускать его как программу.

Рассчитайте права доступа Unix и команду chmod

Этот калькулятор chmod показывает права доступа к файлам в Linux и macOS во всех нужных формах: отметьте чтение, запись и выполнение для владельца, группы и всех остальных или введите восьмеричный режим вроде <code>755</code> либо символьный вроде <code>rwxr-xr-x</code> — остальные представления обновятся сами. Вы получите готовую команду <code>chmod</code> в числовой и символьной форме, биты setuid, setgid и sticky и понятное описание того, кто что может делать. Всё считается в вашем браузере.

Как рассчитать права chmod

  1. 1Отметьте нужные права для Владельца, Группы и Остальных или введите восьмеричный режим, например 644, либо символьный, например rw-r--r--. Можно вставить и целый столбец из ls -l, например drwxr-sr-x.
  2. 2Выберите Файл или Каталог: чтение, запись и выполнение означают для них разное, и пояснение меняется соответственно.
  3. 3При необходимости добавьте бит setuid, setgid или sticky либо начните с готового режима, например 755 или 600.
  4. 4Введите путь, включите Рекурсивно, если права нужно применить ко всему дереву, и скопируйте команду chmod.

Как устроены восьмеричные права

У каждого файла три набора прав: для владельца (u), для группы (g) и для остальных (o), то есть всех прочих. Каждый набор — это три бита: чтение, запись и выполнение, а восьмеричная цифра — просто их сумма: чтение — 4, запись — 2, выполнение — 1. Значит, 7 — это rwx (4+2+1), 6 — rw- (4+2), 5 — r-x (4+1), а 4 — только r--.

Три цифры образуют весь режим в порядке владелец, группа, остальные. Поэтому chmod 755 даёт владельцу rwx, а всем остальным r-x, что записывается как rwxr-xr-x, а chmod 644 даёт владельцу rw-, а остальным r--, то есть rw-r--r--. Четвёртая цифра в начале хранит специальные биты: 4 — setuid, 2 — setgid, 1 — sticky, как в chmod 1777.

Частые значения chmod

644 (rw-r--r--)
Стандарт для обычных файлов: владелец может редактировать, все могут читать. Подходит для HTML, изображений и большинства конфигов.
755 (rwxr-xr-x)
Стандарт для каталогов, скриптов и программ: все могут читать и запускать, изменять — только владелец.
600 (rw-------)
Личные файлы, которые читает только владелец: закрытые ключи SSH, файлы .env, учётные данные. ssh отказывается использовать закрытый ключ, доступный для чтения другим.
700 (rwx------)
Личный каталог, например ~/.ssh, в который может войти только владелец.
664 / 775
Как 644 и 755, но группа тоже может писать: для общих папок проекта, где коллеги состоят в одной группе.
777 (rwxrwxrwx)
Любой может читать, изменять и запускать. Почти никогда не правильное решение ошибки доступа и угроза безопасности на веб-сервере.
1777 (rwxrwxrwt)
Запись для всех плюс sticky bit, как у /tmp: все могут создавать файлы, но удалить файл может только его владелец.

Права на каталоги

У каталога эти три буквы значат другое. Чтение позволяет видеть имена внутри; запись — создавать, переименовывать и удалять записи в нём; выполнение (часто его называют поиском) — входить в него через cd и обращаться к файлам по имени. Без выполнения чтение и запись почти бесполезны, поэтому у каталогов x почти всегда стоит там же, где r, — 755, а не 644.

Удаление файла — это изменение каталога, а не самого файла. Любой, у кого есть права на запись и выполнение в каталоге, может удалить в нём любой файл, даже чужой и доступный только для чтения, — если только у каталога нет sticky bit.

Setuid, setgid и sticky bit

В символьной форме специальные биты заменяют букву выполнения: s, если выполнение тоже установлено, и S, если нет, а для sticky bit — t или T. Заглавная буква обычно означает ошибку: программа с setuid, которую никто не может запустить, ничего не делает.

Особенность GNU coreutils: chmod 755 для каталога сохраняет уже установленные биты setuid или setgid. Чтобы сбросить их числом, укажите пять цифр — chmod 00755 — или используйте chmod g-s.

Setuid (4000, u+s)
Исполняемый файл запускается с правами своего владельца, а не вызывающего. Так passwd записывает /etc/shadow от имени root. Linux игнорирует его для скриптов и каталогов.
Setgid (2000, g+s)
Исполняемый файл запускается с правами своей группы. В каталоге новые файлы наследуют группу каталога, а не основную группу создателя, — обычная настройка для общих командных папок (2775).
Sticky bit (1000, +t)
В каталоге удалять или переименовывать файлы может только владелец файла, владелец каталога или root. Современный Linux игнорирует его для файлов.

Числовой или символьный chmod?

Числовой режим, например chmod 644 file, задаёт все биты сразу — это то, что нужно, когда вы знаете итоговое состояние. Символьная форма гибче: chmod u=rw,g=r,o=r file задаёт то же самое, а chmod g+w file или chmod o-rwx file меняют только указанные биты и не трогают остальные.

Осторожнее с chmod -R: один режим для всех файлов и каталогов дерева обычно даёт файлам лишний бит выполнения. Используйте find . -type d -exec chmod 755 {} + и find . -type f -exec chmod 644 {} +, чтобы обработать их по отдельности, или заглавную X в chmod -R u=rwX,go=rX, которая добавляет выполнение только каталогам и файлам, где оно уже было. Начальные права новых файлов задаёт umask: при umask 022 файлы получают 644, а каталоги 755. Чтобы подбирать имена файлов в shell-скриптах, попробуйте тестер регулярных выражений.

Часто задаваемые вопросы

Что означает chmod 755?
755 даёт владельцу чтение, запись и выполнение (7), а группе и всем остальным — чтение и выполнение (5 и 5), что записывается как rwxr-xr-x. Это обычный режим для каталогов, скриптов и программ.
Что означает chmod 644?
644 даёт владельцу чтение и запись (6), а всем остальным — только чтение (4 и 4), что записывается как rw-r--r--. Это обычный режим для обычных файлов: веб-страниц, изображений и конфигов.
Чем отличаются 755 и 644?
755 добавляет выполнение для всех. Файл с ним можно запустить как программу, а в каталог — войти. Используйте 644 для файлов, которые только читаются, и 755 для каталогов и исполняемых файлов.
Безопасен ли chmod 777?
Редко. 777 позволяет любому пользователю системы изменить или заменить файл, а на веб-сервере злоумышленник, проникший через один сайт, сможет менять другие. Лучше исправьте владельца через chown или дайте доступ группе (775 или 664).
Какие права должны быть у закрытого ключа SSH?
600 (rw-------) или 400 только для чтения, а у самого ~/.ssh — 700. OpenSSH отказывается использовать закрытый ключ, который могут читать другие, и сообщает "UNPROTECTED PRIVATE KEY FILE".
Что означают s или t в rwsr-xr-x?
s в позиции владельца или группы — это бит setuid или setgid при установленном выполнении; t в позиции остальных — sticky bit. Заглавные S или T означают, что специальный бит установлен без права выполнения под ним.
Как перевести rwxr-xr-x в число?
Разбейте на три группы — rwx, r-x, r-x — и сложите в каждой r=4, w=2 и x=1: 7, 5, 5, получится 755. Введите строку в символьное поле выше, чтобы перевести её мгновенно.
Изменяет ли этот инструмент файлы?
Нет. Он только рассчитывает режим и команду, а запускаете её вы сами. Всё происходит в вашем браузере.