Инструменты разработчика · Калькулятор Chmod
Две жизни липкого бита: от резидентного текста подкачки до /tmp
· Фон
chmod Юникс контроль доступа
t в режиме /tmp's означал нечто совершенно иное в Unix 1970-х годов. Этот пост следует за липким фрагментом от подсказки по производительности до правила удаления и объясняет, что он делает сегодня.
drwxrwxrwt на /tmp — последняя буква не r, w или x, и обычное объяснение в одно слово ничего не объясняет
Строка drwxrwxrwt показывает, почему обычная арифметика rwx — это еще не все. Прикрепленным является 1000 bit, отображаемый в конечной позиции выполнения. При наличии другого выполнения символ t находится в нижнем регистре; без него появляется прописная буква T. Таким образом, при вводе 1777 создается rwxrwxrwt, в то время как четырехзначная сводка сохраняет первую цифру специального бита.
Этот дисплей преобразует подаваемый режим; он не проверяет каталог. Страница разбивает одно значение на владельца, группу, другие и специальные биты, а затем перестраивает каждое представление из этих частей. Их соглашение проверяет арифметику, а не право собственности, списки ACL или политику файловой системы. Сгенерированная команда chmod остается в виде обычного текста, пока кто-нибудь не запустит ее где-нибудь еще.
Первоначальное значение — сохранять текстовый сегмент программы в подкачке после выхода, чтобы следующий запуск запускался быстрее на медленных дисках.
В пояснении к обычному файлу говорится, что он становится липким после того, как запросил, чтобы текст программы оставался в подкачке. Это полное историческое утверждение, подтвержденное этими источниками. Они не ссылаются на основное руководство Unix, дату, название системы или меру внедрения. Тщательный учет может сопоставить прежнее значение файла с текущим поведением каталога, не придумывая более широкую историю операционной системы.
Калькулятор определяет, как представлен бит. Sticky занимает восьмеричный номер 1000 и разделяет позицию другого выполнения в символьной записи. Таким образом, 1777 заканчивается на t, поскольку установлено выполнение, а 1644 заканчивается на T, поскольку оно отсутствует. Битовые маски, анализатор, рендерер и тесты туда и обратно подтверждают эти факты, а не хронологию поведения ядра.
Источник описывает предыдущую подсказку к файлу, но не содержит основной ссылки на историю.
Для обычных файлов инструмент описывает липкость как историческую подсказку о замене, которую современные ядра игнорируют. Эта формулировка не должна стать универсальным утверждением для каждого ядра или файловой системы. Этот репозиторий предлагает объяснение калькулятора, а не обзор платформы. Его защитная точка уже: липкий не изменяет отображаемые разрешения на чтение, запись или выполнение для обычного файла.
Представление остается точным даже в тех случаях, когда не требуется принудительного исполнения. Если установлено значение Other-execute, последний символ — это t; без него этот символ — T. Анализатор восстанавливает любую форму липкого бита, и тесты охватывают 1777, 1644 и каждый режим до 7777. Никто не запускает программы, не монтирует файловые системы и не запрашивает у ядра фактическое поведение.
В объяснении обычного файла говорится, что современные ядра игнорируют липкий; не делается никаких универсальных претензий
Поведение каталога — это современное использование, которое напрямую объясняется реализацией. В общем каталоге Sticky добавляет ограничение на удаление и переименование: люди могут создавать записи, но удаление ограничено владельцем или корнем записи. Пресеты фиксируют 1777 как шаблон /tmp, а объяснение предупреждает, когда каталог доступен для записи всем без привязки.
Дисплей демонстрирует это различие, не претендуя на проверку /tmp.. Режимы 777 и 1777 имеют обычные разрешения rwxrwxrwx. Добавление 1000 изменяет окончательный символ x на t и добавляет +t к сгенерированным назначениям. В остальном гранты владельца, группы и другие гранты остаются неизменными; реальное владение, списки ACL и правила файловой системы остаются вне расчета.
Прикрепленное поведение каталога — это реализованное современное объяснение.
В предложении о каталоге указано ограниченное правило: при использовании липкого набора только владелец или root файла может удалить или переименовать его. Инструмент не разрешает идентификационные данные, не проверяет владение каталогом и не пытается выполнить операцию. Отображаемый 1777 подтверждает универсальные биты rwx плюс липкий, но не может определить, кому принадлежит запись, участвующая в реальном споре.
Дополнительная политика должна быть изучена отдельно. Калькулятор не считывает списки ACL, возможности, параметры монтирования, обязательные элементы управления или состояние файловой системы. Переключение между файлом и каталогом меняет объяснение, а не режим. Если переименование завершается успешно или неожиданно завершается неудачей, страница не может объяснить причину; он только изолирует традиционные биты для исследования, специфичного для системы.
Инструмент описывает ограничения на удаление владельца или root без проверки расширений политики.
Сравните 1777 и 777 как режимы каталогов. Режим 777 отображает drwxrwxrwx и позволяет каждому классу просматривать, создавать, вводить, переименовывать и удалять. Инструмент предупреждает, что пользователи могут удалять записи, которыми они не владеют. Включение закрепления приводит к появлению drwxrwxrwt: разрешения rwx остаются фиксированными, в то время как ограничение на удаление владельца или root входит в объяснение.
Сгенерированные назначения показывают ту же разницу в один бит. Режим 777 становится u=rwx,g=rwx,o=rwx, а 1777 добавляет +t; восьмеричный предварительный просмотр также сохраняет первую цифру. Ни один из предварительных просмотров не открывает путь и не выполняет chmod. Сравнение доказывает, что изменился только 1000, и объясняет его t-форму, но владение и исполнение по-прежнему требуют внешнего контроля.
Рабочий пример: сравнить пояснения 1777 и 777 в калькуляторе.
История Сетгида этими материалами не подтверждается. Репозиторий может кодировать setgid как 2000, отображать s или S в позиции группового выполнения и объяснять наследование группы каталогов. Эти детали реализации не документируют происхождение setgid и не связывают его развитие с липким. Арифметика одного специального бита не является историческим свидетельством о другом.
Политика защищенных каталогов также выходит за рамки исходного набора. На странице отсутствуют настройки fs.protected, конфигурация системы, ACL, запись о владельце или попытка операции. Он может подтвердить, что предоставленный режим содержит липкий, и показать его базовые разрешения, но не может подтвердить, что липкий является единственным ограничением машины. Для более широкого диагноза необходимы доказательства из этой среды.
История Setgid и политика защищенных каталогов остаются за пределами исходного набора.
Практическое различие умещается в одном персонаже. Для каталогов t записывает липкие с другим выполнением, тогда как T записывает липкие без этого бита выполнения. Калькулятор сохраняет обе формы и отображает 1000 в сводке. В его источнике также упоминается намек на прежний регулярный файл, но он предоставляет слишком мало первичных доказательств, чтобы поддержать универсальную историческую хронологию.
Используйте эту страницу, чтобы договориться о представительстве перед обсуждением политики. Войдите в режим, выберите файл или каталог и сравните восьмеричные, символьные, матричные, сводные и присваивания. Соглашение подтверждает последовательное двенадцатибитное преобразование. Остановитесь на этом, если целевая система не предоставит дополнительные доказательства: инструмент не идентифицирует пользователей, не читает пути, не выполняет никаких команд и не проверяет никакие расширения политик.