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

Считайте права доступа к файлам Linux в обе стороны. Отметьте чтение, запись и запуск для владельца, группы и всех остальных, чтобы получить восьмеричный режим и команду для запуска, — или вставьте 755, rwxr-xr-x, u+x либо целую строку ls -l и посмотрите, что именно она значит.

Расчёт идёт в вашем браузере · ничего никуда не отправляется · поведение POSIX и GNU coreutils
Файлы
Каталоги

Введите 755, вставьте rwxr-xr-x или целую строку ls -l, либо измените режим выражением u+x или go-w.

Тип
Чтение4Запись2Запуск1Цифра
Владелец4+2+1=7
Группа4+1=5
Все остальные4+1=5
Особыеничего=0

Простыми словами

  • Владелец может читать его, изменять его и запускать его.
  • Группа и все остальные могут читать его и запускать его.
  • Этот файл можно запустить.

Расчёт идёт в вашем браузере. Ничего никуда не отправляется.

Что делает chmod?

chmod задаёт, кто может читать, изменять и запускать файл. Режим — это двенадцать битов, обычно записываемых тремя или четырьмя восьмеричными цифрами: 755, 644, 2775.

Каждая из трёх цифр относится к классу — владельцу файла, группе файла и всем остальным — и каждая цифра есть сумма трёх чисел: чтение — 4, запись — 2, выполнение — 1. Так, 7 — это чтение, запись и выполнение; 5 — чтение и выполнение; 6 — чтение и запись; 4 — только чтение. Вот и вся система. chmod 755 script.sh означает: владелец 7, группа 5, все остальные 5.

Четвёртая цифра, когда она есть, несёт три особых бита — setuid 4, setgid 2 и sticky-бит 1 — и опускается, если ни один из них не установлен. Калькулятор выше показывает все четыре цифры сразу и арифметику каждой, так что искать числа в справочнике больше не нужно.

Режим — это двенадцать битовchmod 755 script.sh
Былоscript.sh
Особыеs4s2t10
Владелецr4w2x16
Группаr4w2x14
Все остальныеr4w2x14
-rw-r--r--0644
Сталоscript.sh
Особыеs4s2t10
Владелецr4w2x17
Группаr4w2x15
Все остальныеr4w2x15
-rwxr-xr-x0755
chmod 755 задаёт сразу все биты режима: из 644 он включает три бита выполнения, по одному для каждого класса. Три бита каждого класса складываются в одну восьмеричную цифру.
Калькулятор chmod: режим 755 в виде таблицы прав, его восьмеричные цифры, символьная запись и команда chmodКалькулятор chmod: режим 755 в виде таблицы прав, его восьмеричные цифры, символьная запись и команда chmodОтмечайте или вводитеТаблица и поля — одно и то же: измените любое, и остальное изменится само.Каждая цифра4 + 2 + 1 для каждого класса, так что число больше не нужно заучивать.Вставьте что угодно755, rwxr-xr-x, u+x или целую строку ls -l — он читает все четыре вида.КомандаСтроится из выбранного вами режима, с нужным числом цифр и рекурсивной формой, которая не превращает все файлы в одинаковые.Что это значитПростое предложение и предупреждения, которых заслуживает режим.
Режим 755 по частям: таблица, арифметика каждой цифры, символьная запись и команда для запуска. Выберите номер, чтобы узнать, что показывает каждая часть.

Как работают права доступа к файлам в Linux

У каждого файла есть владелец, группа и режим. Режим даёт три права каждому из трёх классов — девять битов, — а сразу после символа типа файла ls -l печатает ровно эти девять символов.

-rw-r--r-- — это файл (-), который владелец может читать и изменять, а группа и все остальные — только читать: режим 644. drwxr-xr-x — каталог (d) с режимом 755. Первый символ — тип: - файл, d каталог, l символическая ссылка, а b, c, p или s — особые виды. Вставьте любую такую строку в калькулятор, и он прочитает из неё режим и тип.

У каталога те же три права значат не то же, что у файла. Чтение позволяет просматривать имена внутри него. Выполнение позволяет войти в него и добраться до файлов, имена которых вы уже знаете. Запись вместе с выполнением позволяет создавать и удалять записи — поэтому удаление файла зависит от прав каталога, а не файла. Каталог с чтением, но без выполнения можно просмотреть, но нельзя открыть.

Что ls -l печатает первымls -l notes.txt
ПравоУ файлаУ каталога
r4Читать, что в нёмПросматривать имена в нём
w2Изменять, что в нёмСоздавать, переименовывать и удалять записи
x1Запускать как программуВходить в него и открывать то, что внутри

Другие первые символы: d — каталог, l — символическая ссылка, а b, c, p или s — особые виды.

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

755 означает, что владелец может читать, изменять и запускать, а все остальные — читать и запускать, но не менять. Это обычный режим для каталога и для программы.

По цифрам: 7 = 4 + 2 + 1, значит, владелец читает, записывает и выполняет. 5 = 4 + 1 для группы и ещё раз для всех остальных, так что и те, и другие читают и выполняют. Буквами это rwxr-xr-x, а символьной командой — chmod u=rwx,g=rx,o=rx.

Используйте его для каталогов, в которые людям нужно входить, и для скриптов и бинарных файлов, которые им нужно запускать. Не применяйте его к секретным данным: последняя 5 означает, что файл может прочитать любая учётная запись на машине. Для файлов веб-сервера документация самого WordPress рекомендует 755 или 750 для каталогов и 644 или 640 для файлов.

755 по цифрамchmod 755
7=r4w2x14+2+1rwxВладелец
5=r4-2x14+1r-xГруппа
5=r4-2x14+1r-xВсе остальные
Подходит для
  • Каталогов, в которые людям нужно входить
  • Скриптов и программ
Не подходит для
  • Секретных данных: их может прочитать любой

Документация самого WordPress: каталоги 755 или 750, файлы 644 или 640.

chmod 644 или 755: какой мне нужен?

644 для файлов, 755 для каталогов и всего, что нужно запускать. Единственное отличие — бит выполнения.

644 — это rw-r--r--: владелец может менять, все могут читать, никто не может запускать. Это правильно для HTML, CSS, изображений, конфигурации и исходного кода. 755 — это rwxr-xr-x: то же плюс бит выполнения для всех трёх классов. Каталогу он нужен, иначе в него никто не войдёт, а скрипту — иначе оболочка откажется его запускать.

Ошибка, которой стоит избегать, — chmod -R 755 на целый сайт: из-за неё каждое изображение и каждый файл .php становится исполняемым. Две команды find, которые пишет калькулятор, за один проход задают каталогам и файлам разные режимы, причём те, что выбрали вы, а не пару из какого-нибудь блога.

Единственное отличие — бит выполнения644 · 755
644
ЧтениеЗаписьЗапуск
Владелецrw-6
Группаr--4
Остальныеr--4

Файлы: HTML, CSS, изображения, конфигурация, исходный код

755
ЧтениеЗаписьЗапуск
Владелецrwx7
Группаr-x5
Остальныеr-x5

Каталоги, скрипты и программы

Наоборот — неверно
  • 755Файл с режимом 755 можно запустить, как и каждое изображение и каждый файл .php после chmod -R 755.
  • 644Каталог с режимом 644 показывает имена, но войти в него и открыть что-либо внутри никто не может.

Что делает chmod 777 и безопасно ли это?

777 позволяет любой учётной записи на машине читать, изменять и запускать файл. Это почти никогда не правильный ответ, а документация WordPress прямо говорит, что ни одному каталогу нельзя давать 777.

Запись для всех означает, что любой, кто может войти в систему, — или любой процесс под любым пользователем, включая взломанный, — может заменить содержимое файла. Если это скрипт, который запускает веб-сервер, вы отдали сервер. На странице о правах WordPress рекомендует 755 или 750 для каталогов и 644 или 640 для файлов и говорит, что ни один каталог не должен иметь 777, даже каталог загрузок.

Если веб-приложение не может писать в каталог, исправлять нужно владельца или группу, а не режим: сделайте chown каталога на пользователя, от имени которого работает веб-сервер, либо добавьте этого пользователя в общую группу и используйте 775. Калькулятор предупреждает всякий раз, когда режим позволяет писать всем: для файла всегда, а для каталога — если только sticky-бит не мешает людям удалять чужие файлы.

Кто может писать при 777chmod 777
777Все могут это изменить
ЧтениеЗаписьЗапуск
Владелецrwx7
Группаrwx7
Остальныеrwx7
  1. 1Любая учётная запись или любой процесс под ней
  2. 2заменяет скрипт
  3. 3а веб-сервер его запускает
Что просит документация

WordPress · Каталоги 755 или 750, файлы 644 или 640.

«Ни одному каталогу никогда не следует давать 777, даже каталогам загрузки».

Исправлять нужно владельца или группу, а не режим: сделайте chown на пользователя веб-сервера или заведите общую группу и используйте 775.

Почему SSH пишет, что права моего ключа слишком открыты?

OpenSSH отказывается использовать закрытый ключ, который может прочитать кто-либо, кроме владельца. Задайте ключу 600, а каталогу .ssh — 700.

Точное сообщение — Permissions 0644 for '<path>' are too open., а следом It is required that your private key files are NOT accessible by others. Проверка за ним грубая: если файл ваш и установлен хотя бы один бит группы или остальных, ключ отвергается. Поэтому и 640 не проходит, и ответ — 600, а не «чуть меньше, чем 644».

chmod 600 ~/.ssh/id_ed25519 и chmod 700 ~/.ssh это исправляют. Открытый ключ может читать кто угодно — здесь важны только закрытый ключ и каталог. Выберите Ключ SSH среди частых режимов выше, и калькулятор напишет обе команды за вас.

Что печатает ssh
$ssh you@server.example
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/you/.ssh/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Что проверяет OpenSSH
Файлы и режимы, которые проходят
  • ~/.ssh/700drwx------Каталог
  • id_ed25519600-rw-------Ваш закрытый ключ
  • id_ed25519.pub644-rw-r--r--Открытый ключ: его может читать кто угодно
  • config600-rw-------Не доступен для записи другим
Проверка по битам
  • 644rw-r--r--Отвергнут
  • 640rw-r-----Отвергнут
  • 600rw-------Принят
  • 400r--------Принят

Группа и все остальные: все биты должны быть выключены

Символьный режим: u, g, o, a с +, - и =

chmod u+x script.sh добавляет один бит, не трогая остальные. + добавляет, - убирает, = задаёт классу ровно то, что вы перечислили.

Грамматика такая: [кто][действие][права], выражения через запятую: u — владелец, g — группа, o — все остальные, a — все три. Так, go-w отнимает запись у группы и остальных, a=rwx задаёт всё, а u=rw,go=r — ещё один способ записать 644. Вставьте любое из этого в калькулятор выше, и он покажет, какие биты меняются, до и после.

Две части грамматики легко понять неверно, и калькулятор следует обеим. X — заглавная X — добавляет бит выполнения только каталогу или файлу, который уже где-то исполняемый, и поэтому chmod -R u=rwX,go=rX безопасна для смешанного дерева. А выражение вообще без класса, как +x, — это не то же, что a+x: биты, установленные в вашей umask, остаются нетронутыми, поэтому при обычной umask 022 chmod +rwx на файле 644 даёт 755, а chmod a+rwx даёт 777.

кто · действие · праваchmod u+x script.sh
  • uвладелец
  • gгруппа
  • oвсе остальные
  • aвсе три
  • +добавить
  • -убрать
  • =задать ровно
  • rчтение
  • wзапись
  • xвыполнение
  • Xвыполнение, только у каталогов и у файлов, которые уже можно запускать
  • ssetuid или setgid
  • tsticky-бит
Разобранные примеры
ИзменениеБылоСтало
u+x644rw-r--r--744rwxr--r--Выполнение для владельца, остальное не тронуто.
go-w775rwxrwxr-x755rwxr-xr-xЗапись снята у группы и всех остальных.
a=r755rwxr-xr-x444r--r--r--Всем трём классам задано чтение и ничего больше.
u=rw,go=r777rwxrwxrwx644rw-r--r--Три выражения: ещё один способ записать 644.
+rwx644rw-r--r--755rwxr-xr-xБез класса: биты из umask (022) не устанавливаются, поэтому у группы и всех остальных нет записи.
a+rwx644rw-r--r--777rwxrwxrwxС a umask не учитывается: устанавливается всё.
a+Xу каталога644rw-r--r--755rwxr-xr-xЗаглавная X у каталога: выполнение добавлено, потому что это каталог.
a+Xу файла644rw-r--r--644rw-r--r--Заглавная X у файла, который никто не может запустить: ничего не добавлено.

Setuid, setgid и sticky-бит

Четвёртая цифра. У файла setuid и setgid меняют, от имени какой учётной записи запускается программа. У каталога setgid определяет группу новых файлов, а sticky-бит — кто может их удалять.

Setuid (4000) на исполняемом файле заставляет его работать от имени владельца файла, а не вашего — passwd устанавливается с setuid, чтобы при смене пароля работать с правами root. Setgid (2000) делает то же для группы. У каталога setgid делает другое и гораздо более полезное: новые файлы внутри наследуют группу каталога, а не создателя, и именно так общий каталог проекта остаётся общим. В Linux у бита setuid на каталоге нет описанного значения; в macOS и BSD он может сделать так, что новые файлы получают владельца каталога, если файловая система смонтирована с таким параметром.

Sticky-бит (1000) на каталоге не даёт людям удалять чужие файлы: удалить или переименовать запись могут только владелец файла, владелец каталога или root. Поэтому у /tmp режим 1777 — писать в него может каждый, но чужую работу удалить не может никто. У обычного файла macOS и BSD sticky-бит игнорируют, а руководство GNU придаёт ему там значение только в некоторых старых системах. Одна ловушка: chmod 755 somedir — или chmod 0755 somedir — не сбрасывает бит setgid, уже стоящий на каталоге, потому что GNU chmod намеренно сохраняет их при любом числовом режиме короче пяти цифр — POSIX требует сбрасывать их восьмеричной формой только у обычного файла. Используйте g-s или пятизначное chmod 00755; калькулятор пишет пятизначную форму сам, когда она нужна.

Setuid4755

Программа запускается от имени владельца файла, а не вашего.

Linux-rwsr-xr-x root root /usr/bin/passwd

passwd установлен так, поэтому при смене пароля он работает с правами root.

У каталога: в Linux описанного значения нет. В macOS и BSD новые файлы получают владельца каталога, если файловая система смонтирована с таким параметром.

Setgid2775

В каталоге новые файлы получают группу каталога, а не вашу.

Linuxdrwxrwsr-x you devs project/

Общий каталог проекта остаётся общим: каждый новый файл принадлежит команде.

В macOS и BSD новый файл всегда получает группу своего каталога, с этим битом или без него.

Sticky1777

В каталоге только владелец файла, владелец каталога или root могут удалять или переименовывать файл.

macOSdrwxrwxrwt root wheel /private/tmp

В /tmp может писать каждый, а чужие файлы не может удалять никто.

У файла sticky-бит в macOS и BSD игнорируется.

Ловушка GNU: chmod 755 на каталоге оставляет его бит setgid включённым.

$chmod 755 project → drwxr-sr-xСбросьте его пятью цифрами или буквами:$chmod 00755 project → drwxr-xr-x$chmod g-s project → drwxr-xr-x

umask: что получают новые файлы

Новый файл начинается с 666, а новый каталог — с 777, после чего выключается каждый бит, установленный в umask. Обычная umask 022 даёт 644 и 755.

umask — это не вычитание, а маска: каждый бит, установленный в umask, выключается в режиме, который запросила программа. С umask 077 новый файл получает 600, а новый каталог 700 — по умолчанию личные. С umask 002 получится 664 и 775: группа тоже может писать.

umask никогда не сделает файл исполняемым, потому что в базовом режиме файла нет битов выполнения — с 777 начинают только каталоги. Поэтому только что созданный скрипт нельзя запустить, пока вы не скажете chmod +x. Перейдите на вкладку umask выше, чтобы увидеть, что даёт любая umask, и откройте любой результат прямо в калькуляторе.

Выключено по битамumask 022
Новый файл
Начинается сrw-rw-rw-666
umask····w··w·022
Получаетrw-r--r--644
Новый каталог
Начинается сrwxrwxrwx777
umask····w··w·022
Получаетrwxr-xr-x755
Частые значения umask
umaskНовый файлНовый каталог
022644 rw-r--r--755 rwxr-xr-x
002664 rw-rw-r--775 rwxrwxr-x
027640 rw-r-----750 rwxr-x---
077600 rw-------700 rwx------

Никакая umask не сделает файл исполняемым: у нового файла нет бита выполнения, который можно было бы оставить.

Как изменить каталог и всё, что в нём

chmod -R 755 folder даёт каталогам и файлам один режим, из-за чего каждый файл становится исполняемым. Две команды find дают каждому виду нужный.

find folder -type d -exec chmod 755 {} + и find folder -type f -exec chmod 644 {} + обходят дерево по разу и задают режимы каталогам и файлам отдельно. Калькулятор пишет обе с выбранными вами режимами, а не с фиксированной парой. Знак + в конце собирает файлы в как можно меньшее число запусков chmod, что важно на большом дереве.

Другой безопасный путь — заглавная X: chmod -R u=rwX,go=rX folder добавляет выполнение только каталогам и файлам, которые уже можно запускать. А после любого рекурсивного изменения stat -c '%a %n' folder/* прочитает всё на один уровень вниз.

Один каталог, четыре способа
КаталогСейчас1234
site/755755644755755
index.html644755644644644
app.php644755644644644
deploy.sh755755644644755
img/755755644755755
logo.png644755644644644
  1. 1$chmod -R 755 siteКаждый файл можно запустить
  2. 2$chmod -R 644 siteНи в один каталог нельзя войти
  3. 3$find site -type d -exec chmod 755 {} +$find site -type f -exec chmod 644 {} +Каждый вид получает свой режимСкрипт тоже теряет x
  4. 4$chmod -R u=rwX,go=rX siteКаждый вид получает свой режимФайл, который уже можно было запускать, сохраняет x

Есть ли chmod в Windows?

Не то же самое. В Windows используются списки управления доступом, и ближайшая команда — icacls: icacls file /grant Users:(RX).

Права NTFS — это список записей, каждая из которых называет пользователя или группу и их права, поэтому единого трёхзначного числа для расчёта нет. Ближайший перевод по классам: чтение становится R, чтение и выполнение — RX, запись — W, а выполнение само по себе становится отдельным правом X; цифра, которой нужны два права, перечисляет оба: 7 — это (RX,W). Ни одна цифра не даёт «Изменение» (Modify, M), которое разрешает ещё и удаление, или «Полный доступ» (Full control, F), который разрешает ещё и менять разрешения и становиться владельцем. Калькулятор показывает это соответствие рядом с вашим режимом; это ближайшее приближение, а не эквивалент.

Внутри Windows Subsystem for Linux chmod нормально работает в файловой системе Linux. На диске Windows, смонтированном в /mnt/c, он работает, только если диск смонтирован с параметром metadata. Без него режим вычисляется из ваших прав Windows, одинаковый для владельца, группы и всех остальных, а chmod почти ничего не может, кроме установки атрибута «только чтение», — так что ключ, лежащий на стороне Windows, может выглядеть слишком открытым, а chmod 600 там не поможет.

Каждая цифра chmod и её ближайшее право icaclsicacls
ЦифраБуквыБлижайшее право
7rwx(RX,W)Чтение, запись и выполнение
6rw-(R,W)Чтение и запись
5r-x(RX)Чтение и выполнение
4r--(R)Чтение
3-wx(W,X)Запись и выполнение
2-w-(W)Запись
1--x(X)Выполнение
0---—Нет доступа

Ближайшее приближение, а не эквивалент: Windows хранит список записей, каждая из которых называет, кто какие права получает. Ни одна цифра не даёт «Изменение» (Modify, M), которое разрешает ещё и удаление, или «Полный доступ» (Full control, F), который разрешает ещё и менять разрешения (WDAC) и становиться владельцем (WO). В обеих системах владелец всегда может изменить права файла.

В WSL
  • /homeВ файловой системе Linux: chmod работает, как в любом Linux.
  • /mnt/cНа /mnt/c без параметра metadata: режимы берутся из прав Windows, а chmod почти ничего не меняет.
  • /mnt/c · metadataС metadata: chmod работает, но никогда не выходит за то, что Windows вам разрешает.

Как проверить права файла

ls -l показывает их буквами, а stat — числом. Вставьте любое из них в калькулятор, и он прочитает режим.

ls -l file печатает -rw-r--r-- 1 you staff 4096 25 Oct 09:26 file, и калькулятор принимает всю строку — выбирать из неё режим не нужно. stat -c '%a %n' file в Linux печатает 644 file; в macOS то же самое — stat -f '%Lp %N' file. Чтобы сразу получить весь каталог, GNU find . -maxdepth 1 -printf '%m %p\n' выводит каждый режим числом (у find в macOS нет -printf).

Знак + в конце строки прав означает, что здесь есть не только девять битов: в Linux это POSIX ACL, который показывает getfacl, и эти дополнительные записи вообще не входят в режим. В macOS @ означает расширенные атрибуты, а + — расширенные сведения о безопасности. В GNU ls точка (.) означает контекст безопасности, например SELinux. Калькулятор принимает все три знака и сообщает, что режим — лишь часть картины.

Строка ls -l по полямls -l notes.txt
-Типrw-r--r--Права+Знак1СсылкиyouВладелецstaffГруппа4096Размер25 Oct 09:26Изменёнnotes.txtИмя
Режим числом
  • Linux$stat -c '%a %n' notes.txt644 notes.txt
  • macOS$stat -f '%Lp %N' notes.txt644 notes.txt
Символ после режима
  • -rw-r--r--+Linux: POSIX ACL (его показывает getfacl). macOS: расширенные сведения о безопасности, например ACL.
  • -rw-r--r--@macOS: расширенные атрибуты.
  • -rw-r--r--.GNU ls: контекст безопасности, например SELinux, и больше ничего.
  • -rw-r--r-- Ничего больше: девять битов — это вся картина.

Калькулятор chmod: вопросы и ответы

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

Владелец получает чтение, запись и выполнение, а все остальные — чтение и выполнение. Буквами это rwxr-xr-x. Цифры — это суммы: 7 — это 4 + 2 + 1, а 5 — это 4 + 1. Используйте его для каталогов, которым нужен бит выполнения, чтобы в них можно было войти, и для скриптов и программ. Никогда — для файла, который должен оставаться личным.

Чем отличаются chmod 644 и 755?

Одним битом на класс: битом выполнения. 644 — это rw-r--r--, подходит для документов, изображений, конфигурации и исходного кода. 755 — это rwxr-xr-x, подходит для каталогов и всего, что нужно запускать. Если дать файлам 755, каждый из них станет исполняемым, поэтому рекурсивный chmod -R 755 на сайт — ошибка; задавайте режимы каталогам и файлам отдельно.

Что делает chmod 777 и безопасно ли это?

Он позволяет любой учётной записи на машине читать, изменять и запускать файл. Это почти никогда не нужно и это реальный риск на общем или доступном из интернета сервере: всё, что может записать скрипт, который запускает сервер, может захватить сервер. Документация самого WordPress просит 755 или 750 и 644 или 640 и говорит, что ни один каталог не должен иметь 777. Когда приложение не может куда-то писать, меняйте владельца или группу, а не режим.

Что делает chmod +x?

Он добавляет бит выполнения, чтобы файл можно было запустить. Заметьте, что +x без класса — не совсем a+x: выражение без класса не трогает биты из вашей umask, поэтому при обычной umask 022 выполнение получают владелец, группа и остальные, а более строгая umask, например 077, даёт его только владельцу. Пишите chmod a+x или chmod u+x, когда хотите быть уверены.

Что означает chmod 600 и почему его требует SSH?

600 — это rw-------: только владелец может читать или менять файл. OpenSSH отказывается принимать закрытый ключ, который может прочитать любая другая учётная запись, с сообщением Permissions 0644 for '<path>' are too open. Проверка строгая: если файл ваш и установлен хоть один бит группы или остальных, ключ отвергается, так что 640 тоже не проходит. Используйте chmod 600 для ключа и chmod 700 для ~/.ssh.

Что означает четвёртая цифра в chmod?

Она несёт три особых бита: setuid 4, setgid 2 и sticky-бит 1. chmod 2775 folder ставит setgid, чтобы новые файлы внутри получали группу каталога. chmod 1777 folder ставит sticky-бит, чтобы люди не удаляли чужие файлы, — так устроен /tmp. Цифра опускается, если ни один из них не установлен.

Почему chmod 755 не снял бит setgid с моего каталога?

Потому что GNU chmod сохраняет setuid и setgid у каталога, пока в числовом режиме меньше пяти цифр, включая 0755. Это намеренно и соответствует стандарту: POSIX требует, чтобы восьмеричная форма сбрасывала эти биты только у обычного файла. Используйте символьную форму chmod g-s folder или допишите нули: chmod 00755 folder. Этот калькулятор сам пишет пятизначную форму, когда она нужна для вашего изменения.

Чем отличаются chmod и chown?

chmod задаёт, что могут делать владелец, группа и все остальные. chown задаёт, кто на самом деле владелец и какая группа. Они отвечают на две половины одного вопроса, а «permission denied» на веб-сервере часто оказывается проблемой владельца, а не режима: файлы принадлежат не тому пользователю, и никакой режим, кроме 777, этого не скроет.

Можно ли вставить в этот калькулятор строку ls -l?

Да — всю строку, а не только режим. -rw-r--r-- 1 you staff 4096 25 Oct 09:26 notes.txt читается как режим 644 у файла, а drwxrwsr-x — как 2775 у каталога. Знак ACL +, точка контекста безопасности и @ из macOS тоже понимаются. Можно вставить и выражение с оператором вроде u+x или go-w и посмотреть, какие биты оно меняет.

Что означает + или @ после прав?

Они говорят, что девять битов — это не вся картина. В Linux + означает, что у файла есть POSIX ACL с записями помимо владельца, группы и остальных — их показывает getfacl, и в режим они не входят. В GNU ls точка означает контекст безопасности, например SELinux. В macOS @ означает расширенные атрибуты, а + — расширенные сведения о безопасности. Если права ведут себя странно при разумном режиме, смотрите там.

Есть ли аналог chmod в Windows?

В Windows используются списки управления доступом, а не режим, поэтому точного эквивалента нет. Ближайшая команда — icacls file /grant Users:(RX), а калькулятор показывает ближайшие права для вашего режима. В WSL chmod нормально работает в файловой системе Linux, но на диске Windows в /mnt/c почти ничего не меняет, если диск не смонтирован с параметром metadata.

Что даёт umask 022?

644 для нового файла и 755 для нового каталога. Новый файл начинается с 666, а каталог с 777, и каждый бит, установленный в umask, выключается. Поскольку у файла нет бита выполнения с самого начала, никакая umask не сделает его исполняемым — это всегда последующий chmod +x. Попробуйте любое значение на вкладке umask выше и откройте любой результат в калькуляторе.

Чего-то не хватает?Предложите функцию или новый инструмент