Инструменты разработчика · Калькулятор Chmod
Как восьмеричные цифры chmod сопоставляются с битами разрешения rwx (4, 2, 1)
· Как это работает
chmod Юникс рабочий процесс разработчика
Каждая восьмеричная цифра представляет собой три замаскированных двоичных флага. В этом посте показана арифметика, которая превращает 7 в rwx и 5 в rx, поэтому вы можете читать и писать в любом режиме без таблицы поиска.
Число, которое вы продолжаете вставлять — chmod 755 работает, но вы не можете сказать, что 5 предоставляет или кому
Запуск chmod 755, поскольку так сказано в ответе на форуме, может предоставить больший доступ, чем требуется приложению. Режим Unix — это компактное кодирование того, кто может читать, записывать или выполнять файл; номер не является произвольной настройкой, которую можно вставлять всякий раз, когда в разрешении отказано. Прежде чем изменить его, спросите, кому принадлежит файл, от какой группы запускается процесс и какое действие на самом деле не удалось. Синтаксически допустимый режим не решает проблему неправильного владельца или отсутствия разрешения на выполнение родительского каталога.
Три класса, три цифры — владелец, группа и другие получают по одной восьмеричной цифре в фиксированном порядке.
Три восьмеричные цифры описывают три класса по порядку: владелец, группа, другие. В 640 владелец получает 6, группа — 4, а все остальные — 0. «Другое» не означает root или учетную запись службы; это означает, что идентификаторы не совпадают ни с владельцем, ни с группой файла при обычных проверках битов режима. Необязательная начальная четвертая цифра обрабатывает специальные режимы, такие как setuid, setgid и Sticky, что является отдельной темой и не должно быть выведено из последних трех.
Прочитайте 4, напишите 2, выполните 1 — почему веса являются степенями двойки и как они добавляются к любому значению от 0 до 7
Каждый класс имеет три бита с весами read=4, write=2 и выполнение=1. Добавляйте только разрешенные веса: 7=4+2+1 (rwx), 6=4+2 (rw-), 5=4+1 (r-x) и 0=---. Это степени двойки, поэтому ни одна комбинация трех независимых флагов не дает той же суммы, что и другая. Выполнение каталога означает обход, а не «запуск этой папки»; каталогу часто требуется, чтобы пользователи могли получить доступ к файлам внутри, даже если сам файл имеет разрешение на чтение.
Рабочий пример: декодирование 640 и 751 вручную — превращение каждой цифры в двоичную тройку, а затем в буквы rwx.
Декодируйте 640 по классу: 6 -> двоичный 110 -> rw-; 4 -> 100 -> r--; 0 -> 000 -> ---. Девять букв разрешения: rw-r-----. Декодируйте 751: 7 -> rwx, 5 -> r-x, 1 -> --x, давая rwxr-x--x. Обратите внимание, как «другое» в 751 может проходить или выполняться без чтения или записи. Это может быть намеренно для каталога, но заслуживает проверки для конфиденциального файла. Используйте калькулятор Chmod для сравнения восьмеричных и символьных результатов, а не для запоминания примеров.
Идем другим путем: от ls -l к восьмеричному — чтение rwxr-x--- и добавление весов для каждого класса
Работайте в обратном направлении из символического режима, такого как rwxr-x---. У владельца есть 4+2+1=7, группа 4+1=5 и другие 0; результат — 750, а не 755. Длинное отображение ls -l также имеет начальный символ типа файла и может отображать завершающий знак + для списков ACL, поэтому не вводите всю отображаемую строку в трехзначную арифметику. Для каталога планируйте чтение/write/execute отдельно для каждого класса вместо копирования режима соседнего файла.
Что сюда не входит — первая четвертая цифра для setuid, setgid и Sticky, а также списки управления доступом, которые ls помечаются знаком плюс.
Это пошаговое руководство, состоящее из семи разделов, охватывает обычные девять битов разрешения. Здесь не объясняются ведущие 4, 2 или 1 для setuid, setgid и Sticky; эти биты меняют поведение программы или каталога и в символьном выводе представляются как s/S или t/T. Списки контроля доступа могут предоставлять или запрещать доступ за пределами этой простой картины. Калькулятор ToolAcre поддерживает дополнительные специальные биты, но вам следует прочитать их отдельное объяснение, прежде чем включать их в производственной системе.
Вывод: мода — это девять бит, которые вы можете вычислить, а калькулятор Chmod позволяет проверить преобразование в любом направлении в браузере.
Режим — это девять флагов, которые вы можете рассчитать, а не заклинание. Калькулятор Chmod преобразует восьмеричные и символьные формы в вашем браузере, поэтому вы можете протестировать предлагаемый режим, прежде чем самостоятельно выполнять любую команду chmod. Инструмент не меняет разрешения на вашем компьютере: он предоставляет строку и аргументацию, в то время как ваша оболочка и файловая система остаются под вашим контролем.