Инструменты разработчика · Калькулятор Chmod
Что делает бит выполнения с каталогом и почему папки 644 ломаются
· Как это работает
chmod Юникс рабочий процесс разработчика
В каталоге x не означает запуск чего-либо; это дает право на пересечение. В этом посте объясняется разделение read/search, странные случаи, которые оно создает, и режимы, позволяющие их избежать.
Отказано в доступе к файлу, который вы можете прочитать: файл 644, каталог 644, а cat по-прежнему не работает.
Читаемый файл может оставаться недоступным, если в его каталоге отсутствует выполнение соответствующего класса. Статья 501 вызывает обход каталога, а не запуск папки. Объяснение каталога калькулятора более подробное: чтение записей списков, разрешение на запись, изменение записей, а также разрешение на выполнение, вход в каталог и доступ к файлам внутри по имени. Режим 644 не имеет бита выполнения ни для одного класса.
Сравните 644 с 755, когда целью установлен каталог. Первый отображает rw-r--r--; второй отображает rwxr-xr-x. Каждый класс получает право выполнения, в то время как только владелец сохраняет право записи в обоих режимах. Этот контраст объясняет представленную разницу в разрешениях. Страница не проверяет файл, не идентифицирует процесс доступа и не проверяет, блокирует ли родительский каталог фактический путь.
Чтение списков, выполнение обходов — как каталог r отображает имена, а x позволяет открывать записи по имени и статизировать их.
Чтение и выполнение каталога — это отдельные флаги с отдельными пояснениями. Чтение соответствует записям списка. Выполнение соответствует входу в каталог и достижению именованных файлов внутри. Таким образом, класс может иметь одно без другого в числовой модели. Матрица сохраняет это различие видимым, размещая чтение с весом 4 и выполнение с весом 1 внутри каждой цифры класса.
Изменение цифры другого класса с 4 на 5 — это целенаправленная демонстрация. Символическая тройка перемещается от r-- к r-x, а объяснение каталога добавляет доступность на основе имени, сохраняя при этом список. Это факт конверсии, а не проверка доступа в реальном времени. Право собственности, идентификаторы, записи ACL и обязательная политика отсутствуют, поэтому калькулятор не может определить, какой класс управляет реальным запросом.
Четыре комбинации — r без x, x без r, обе и ни одна, и что каждая из них на самом деле позволяет пользователю делать.
Четыре комбинации чтения и выполнения можно представить без задания более широкого поведения системы. Цифра 4 — r--, цифра 1 — --x, цифра 5 — r-x, а цифра 0 — ---. Для целевого каталога сгенерированная проза связывает эти выбранные биты со списком и достижимостью на основе имени. Запись остается независимым флагом и не подразумевается ни чтением, ни выполнением.
Используйте матрицу для изоляции одного класса за раз, а не рассматривайте трехзначный режим как метку. Страница перестраивает целое число при каждом изменении поля, поэтому соответствующая цифра и символическая позиция перемещаются вместе. Он не может открыть каталог или попытаться выполнить поиск. Четыре комбинации представляют собой точно смоделированные разрешения, а любой эффективный результат зависит от отдельно наблюдаемого целевого контекста.
Обход применяется к каждому предку — почему один ограничительный каталог выше по пути нарушает доступ ко всему нижестоящему
Статья 501 определяет отсутствие разрешения на выполнение родительского каталога как причину, по которой действительный файловый режим может не разрешить доступ. Каждый компонент каталога в пути представляет свой собственный вопрос о режиме. Калькулятор может декодировать каждое предоставленное значение независимо и показывать, присутствует ли владелец, группа или другое исполнение. Он не может пройти путь или определить, какой класс относится к запрашивающему идентификатору.
Это делает анализ предков рабочим процессом внешней проверки, а не функцией калькулятора. Если родительский элемент указан как 750, на странице отображается rwxr-x---; если другой — 700, отображается rwx------. Это различие является конкретным, но никаких выводов не следует, пока не станет известно право собственности и членство в процессе. Предварительный просмотр команды остается инертным и не дает никаких доказательств того, что изменение любого каталога является целесообразным.
Рабочий пример: исправление корня веб-страницы — проверка каждой директории из/в обслуживаемый файл и выбор 755 или 750
В примере с веб-корнем проверяйте предоставленные режимы покомпонентно вместо того, чтобы прописывать одно значение для дерева. Режим 755 предоставляет владельцу права доступа, группе и другим правам доступа; режим 750 удаляет все остальные разрешения, сохраняя при этом группу r-x. Конвертер делает эту разницу видимой. Он не может идентифицировать веб-процесс, обнаружить путь или выбрать, какой класс необходимо пройти.
Проверьте обслуживаемый файл отдельно от его каталогов. Предоставленный файловый режим, такой как 644, отображает rw-r--r--, в то время как тот же номер, выбранный в качестве каталога, описывает различные действия и не выполняет везде. Эта чувствительная к цели формулировка не позволяет путать чтение файла с обходом каталога. Пригодность по-прежнему зависит от фактического владельца, идентификации процесса, предков и любых слоев управления доступом, отсутствующих на странице.
Рекурсия сделана правильно — почему chmod -R 644 на дереве является классической ошибкой и как ее можно избежать с заглавной буквы X или find -type d
Рекурсивное отображение намеренно скромное. При его выборе в сгенерированную команду chmod вставляется только -R; калькулятор не перечисляет дерево и не отличает файлы от каталогов. Применение завершенного режима 644 везде оставило бы выполнение каталога в каждом классе свободным. Страница может показать этот результат, но на ней не реализована заглавная буква X или рабочий процесс выбора типа файла.
Сгенерированные символические назначения также остаются фиксированными. Для 644 это u=rw,g=r,o=r, а не относительная команда, которая условно сохраняет обход. Поле в стиле ls отображает rw-r--r--, и его не следует путать со списком назначений. Любая внешняя стратегия рекурсии должна быть проверена вне этого маршрута, включая выбор цели, обработку ссылок и окончательные режимы, размещенные на разных типах объектов.
Чего это не касается — липкое поведение и поведение setgid в каталогах, а также маски ACL, которые описаны в отдельных сообщениях.
Маски Sticky, setgid и ACL отделены от обычного вопроса обхода. В калькуляторе реализовано фиксированное представление и представление setgid, а также пояснения, чувствительные к цели, но основное сравнение этой статьи нужно только прочитать и выполнить. Маски ACL вообще не представлены. Правильное преобразование базового режима не может определить, предоставляют ли дополнительные записи или ограничивают доступ для определенного идентификатора.
Umask также находится за пределами теста. Страница принимает завершенный режим, а не настройки процесса, которые могли ему предшествовать. Если каталог появляется с 644, преобразователь может показать недостающие позиции выполнения и сгенерировать команду-кандидат для другого предоставленного значения. Он не может сказать, почему возник этот режим, является ли право собственности неправильным или его изменение устраняет реальную ошибку.
Вывод: чтобы каталоги можно было использовать, необходимо x — и калькулятор делает разницу между 644 и 755 видимой как r-- и r-x.
Надежный вывод заключается в том, что в объяснении этого калькулятора каталог x представляет доступность записей и имен. Режим 644 отображает r-- для группы и других, тогда как 755 отображает r-x для обоих, а также добавляет выполнение владельца. Синхронизированное восьмеричное поле, символическое поле, матрица и проза делают это различие видимым, не рассматривая ни одно знакомое число как универсально правильное.
Прежде чем что-либо применять, поставьте диагноз, выходящий за рамки арифметики. Подтвердите соответствующую личность, право собственности, режим, предоставленный каждым предком, и целевой тип. Затем используйте калькулятор, чтобы проверить любое завершенное значение кандидата. Он отклонит неверную запись и покажет, какие именно биты изменяются, но никогда не откроет путь, не выполнит chmod, не оценит политику приложения и не докажет, что биты традиционного режима являются единственным авторитетом.