Код и данные · права доступаКалькулятор прав доступа (chmod)

Посчитайте права Unix во всех формах — галочками, в цифрах (755) или символами (rwxr-xr-x), — вставьте строку ls -l и получите готовую команду chmod. С объяснением по-русски и предупреждениями о рисках.

Всё считается в браузере — строка ls -l и путь никуда не отправляются
01Калькулятор02Частые режимы03О правах04Вопросы05Похожие
01

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

галочки, цифры, символы и строка ls -l — всё связано
Кто и что может
Чтениеr = 4
Записьw = 2
Выполнениеx = 1
Владелец7
Группа5
Остальные5
Спецбиты
Готовые рецепты
Результат
Восьмерично0755
Символьноrwxr-xr-x
Строка ls -l-rwxr-xr-x
Команда
chmod 755 deploy.sh
Что это значит
7
Владелец
Читать содержимое, изменять и сохранять, запускать.
5
Группа
Читать содержимое, запускать.
5
Остальные
Читать содержимое, запускать.
Рискованных прав нет — набор выглядит безопасно
02

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

нажмите режим — подставим его в калькулятор
РежимСимвольноКогда применять
644rw-r--r--обычный файл: владелец правит, остальные читаютПрава по умолчанию для текста, картинки, конфига и страницы сайта. Выполнение никому не нужно — файл не программа.
755rwxr-xr-xпапка, скрипт, файл на веб-сервереВладелец правит, остальные читают и заходят. Папке право x нужно, чтобы в неё можно было войти, скрипту — чтобы запуститься.
600rw-------приватный файл: SSH-ключ, .env, токенНикто, кроме владельца, не может даже прочитать. Для приватного ключа это не пожелание: ssh отказывается работать с ключом шире 600.
700rwx------приватная папка только для владельца: ~/.ssh, ~/.gnupgНи зайти, ни посмотреть список посторонним. Пара к 600: сам ключ 600, папка вокруг него 700.
640rw-r-----файл, читаемый своей группойВладелец правит, группа читает, посторонние не видят вовсе. Так держат конфиги, которые должен читать сервис, работающий от своей группы.
750rwxr-x---папка для владельца и его группыГруппа заходит и читает, но не создаёт файлов; посторонние не заходят. Папочная пара к 640.
400r--------только чтение: ключ, защита от случайной правкиДаже владелец не изменит файл, пока не вернёт себе запись. Способ защититься от собственной ошибки, а не от чужого доступа.
775rwxrwxr-xобщая папка группы с записьюГруппа создаёт и удаляет файлы наравне с владельцем. Обычно дополняется setgid (2775), иначе новые файлы попадут в личную группу автора.
1777rwxrwxrwt/tmp: пишут все, удаляет только владелец файлаЗапись открыта всем, но sticky-бит запрещает трогать чужое. Без него общая папка превращается в место, где любой удаляет любой файл.
4755rwsr-xr-xsetuid: запуск с правами владельца (passwd)Программа выполняется от имени владельца, а не запустившего. Нужно системным утилитам вроде passwd и почти никогда — своим скриптам.
777rwxrwxrwxне ставить: полный доступ вообще всемЛюбой пользователь системы может изменить или подменить файл. Ставят «чтобы заработало» — а работает потом и у посторонних; в 99 случаях из 100 нужны 755 или 644.
03

О правах доступа

В Unix у каждого файла три класса — владелец, группа и остальные, — и для каждого три права: чтение (4), запись (2), выполнение (1). Их сумма по классу даёт одну восьмеричную цифру, а три цифры — привычные 755 или 644. Те же права записывают и символами (rwxr-xr-x), и командой chmod задают на файле.

Классы и права

Основа
r = 4 · w = 2 · x = 1
Три класса — владелец, группа, остальные, — и три права у каждого. Сумма прав внутри класса даёт одну цифру: rwx = 4+2+1 = 7, r-x = 5, rw- = 6.

Цифры и символы

Запись
755 = rwxr-xr-x
Одни и те же права пишут восьмерично (755 — компактно) или символами (rwxr-xr-x — наглядно). Команда chmod понимает оба варианта, а ls -l показывает второй.

Спецбиты

4-я цифра
4755 · rwsr-xr-x
setuid, setgid и sticky добавляют ведущую цифру и меняют x на s, S, t или T. Прописная буква означает, что спецбит стоит, а права на выполнение нет, — почти всегда это ошибка.

Файл или папка

Нюанс
x = вход внутрь
У файла «выполнение» — запуск программы, у папки — право войти. «Чтение» папки — посмотреть список имён, а не содержимое файлов. Отсюда правило: папке нужен x везде, где есть r.

Безопасность

Риски
777 · 600
777 открывает запись всем и почти всегда означает, что настоящую причину не нашли. Приватные ключи держат в 600 — с более открытым ключом ssh просто откажется работать.

umask

По умолчанию
022 → 644 / 755
umask не задаёт права, а вычитает их из базовых: 666 у файлов и 777 у папок. При umask 022 файл создаётся как 644, папка — как 755.
umask · права у новых файловumask вычитает права
Новые файлы644rw-r--r--
Новые папки755rwxr-xr-x
04

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

Владелец получает чтение, запись и выполнение (`rwx` = 4+2+1 = 7), группа и остальные — чтение и выполнение (`r-x` = 4+1 = 5). Это обычные права для папки, скрипта и файла на веб-сервере: владелец правит, остальные читают и заходят. Полная запись — `rwxr-xr-x`.

Обновлено

«» добавлен в избранное