Инструменты разработчика · Калькулятор Chmod
chmod против chown: почему смена режима часто является неправильным рычагом
· Почему это важно
chmod Юникс контроль доступа
Биты режима означают что-то только относительно владельца и группы. В этом посте две команды разделены и показано, как на основании ошибки и идентификатора процесса решить, какая из них вам действительно нужна.
Две команды, одна ошибка — отказ в разрешении был «исправлен» трижды в этом месяце с тремя разными строками chmod и chown.
chmod и chown адресуют разную информацию, даже если оба появляются рядом с ошибкой разрешения. Калькулятор моделирует биты разрешений для владельца, группы и других лиц, а также специальные биты. Он не получает текущего владельца или группы и не выполняет никаких операций владения. Таким образом, модус может быть правильно переведен, в то время как отношение идентичности остается неизвестным и непроверенным.
Сначала разделите вопросы. «Что разрешает 750?» отвечает: владелец получает rwx, группа получает rx, а остальные ничего не получают. «Кому это принадлежит?» и «Какая личность управляет процессом?» требуют внешних доказательств. Редактирование режима до определения личности может расширить неправильный класс; синхронизированные представления не могут выбирать между chmod и сменой владельца.
Сначала владение, затем режим — как ядро выбирает владельца, группу или других лиц для процесса, прежде чем оно проверит какие-либо биты.
Выбор класса зависит от идентификатора, который калькулятор никогда не получает. Его владелец, группа и другие тройки являются категориями, а не обнаруженными аккаунтами. Он не может знать, соответствует ли процесс владельцу, принадлежит ли группе файла или попадает в другую. Он просто отображает все три набора разрешений из одного целого числа; удостоверения требуют внешнего осмотра.
Таким образом, идентичность является предпосылкой для оценки релевантности. В режиме 640 владелец читает и записывает, группа читает, а остальные ничего не имеют. Преобразование несомненно, но применимая тройка — нет. Никакие UID, членство, сопоставление контейнеров или ACL не входят в состояние. Сначала установите эти факты, а затем оцените соответствующие биты.
Выбор класса зависит от идентификатора, который калькулятор не получает.
Инструменты владения изменяют, кто занимает отношения владельца или группы, а chmod изменяет разрешения, присвоенные этим классам. Этот калькулятор реализует только сторону chmod. Он генерирует восьмеричный или символический текст chmod и никогда не генерирует chown или chgrp. Он также не изменяет файлы; поле пути создает только предварительный просмотр цитирования для внешнего просмотра.
Расширение режима может привести к появлению дополнительных классов без исправления владельца. Сравните 750 с 757: последний добавляет другие операции чтения и выполнения. Калькулятор отображает эту разницу, но не может сказать, были ли причиной сбоя преимущества или право собственности на другую учетную запись. Установите личность владельца, группы и процесса извне, а затем предоставьте только нужным классам необходимые биты.
Шаблон общей группы — chgrp плюс setgid для каталога плюс 2775 в качестве стандартного ответа для двух пользователей, которым обоим нужна запись.
Рабочий процесс в общей группе требует внешних инструментов и политики владения. Предустановка 775 помечена как «совместно используемая группой», поскольку включена групповая запись. Пресет 2775 добавляет setgid, отображающий rwxrwsr-x; для каталогов новые файлы наследуют группу каталога. Эти описания битов не представляют собой полную рекомендацию по проектированию совместной работы или развертыванию.
Страница не может создавать группы, выбирать участников, запускать chgrp или устанавливать, что 2775 соответствует рабочей нагрузке. Он также не может проверять списки ACL по умолчанию, umasks или поведение приложений. Относитесь к предустановке как к арифметике, а не как к политике. Определите право собственности и членство в другом месте, затем сравните возможные режимы, обосновывая фактическую структуру общего каталога данными из окружающей среды.
Для рабочего процесса в общей группе требуются внешние инструменты и политика владения.
После разрешения права собственности в другом месте проверьте режим каталога 750. Владелец получает право чтения, записи и выполнения; группа получает чтение и выполнение; другой ничего не получает. Группа может перечислять и вводить записи, но не может создавать, переименовывать или удалять записи. Калькулятор отображает rwxr-x--- и u=rwx,g=rx,o= без проверки фактического каталога или учетной записи.
Проверьте 640 отдельно на наличие обычного файла. Это становится rw-r-----: чтение и запись владельца, чтение группы и ничего для остальных. На странице отображаются оба результата, но невозможно назначить их рекурсивно, определить учетную запись развертывания или выбрать группу служб. Для заявления о пригодности для /var/www требуется рабочая нагрузка и доказательства личности, которые здесь отсутствуют.
Рабочий пример: проверьте 750 и 640 после того, как право собственности будет разрешено в другом месте.
Обнаружение идентификации процесса находится за пределами этого инструмента браузера. Ни один источник не вызывает ps, не читает конфигурацию службы, не проверяет пространства имен контейнеров и не запрашивает базы данных учетных записей. Калькулятор не может идентифицировать действующую учетную запись или дополнительные группы, поэтому он не может определить, какой класс разрешений управляет операцией. Эта классификация требует текущих данных от ответственной среды выполнения и файловой системы.
Как только личность будет установлена извне, внимательно просмотрите соответствующий класс. Если процесс должен использовать групповой доступ, 640 разрешает этому классу чтение, но не запись, а 660 добавляет групповую запись. Эта арифметика не является рекомендацией; правильный бит зависит от требуемых операций. Сохраняйте обнаружение и политику вне преобразователя, используя его для предотвращения ошибок представления.
Обнаружение идентификаторов процессов находится за пределами этого инструмента браузера.
Списки ACL и сопоставление контейнера UID отсутствуют в калькуляторе. Его модель включает три обычных класса и специальные биты, но не содержит именованных записей ACL, масок или трансляции пространства имен. Режим может выглядеть достаточным, пока другой уровень ограничивает доступ, или ограничительным, пока ACL расширяет его. Указанное целое число само по себе не может решить ни одну из возможностей.
Отсутствие входных данных ограничивает как диагностику, так и устранение проблем. Маршрут не может выбирать между изменениями chmod, chown, ACL или исправлениями отображения. Он может декодировать предоставленный базовый режим и отображать специальные буквы, такие как s, S, t и T. Считайте это одним из слоев доказательства, а не доказательством доступа третьих лиц или контейнера.
Вывод: определите идентичность перед битами, а затем используйте калькулятор Chmod, чтобы сделать биты ровно такой ширины, которая необходима для идентичности.
Решите идентичность перед битами. Режим работает через классы владельца, группы и другие, но калькулятор знает разрешения, а не учетные записи, занимающие их. После того, как внешняя проверка установит право собственности и идентификацию процесса, введите кандидата и проверьте каждый предполагаемый флаг чтения, записи и выполнения. Сравнение соседних значений выявляет случайное расширение до того, как команды покинут браузер.
Конечным результатом остается предложение. Страница отклоняет неверный ввод, синхронизирует восьмеричные и символические формы, объясняет значения файлов и каталогов, заключает пути в кавычки и генерирует текст chmod. Он не может выполнять команды, менять владельца, оценивать списки управления доступом, проверять политику или тестировать приложения. Подтвердите любые предлагаемые изменения в ответственной системе после установления личности.