Sticky-бит
100%

Разрешения · Урок 8

Sticky-бит

Узнайте, как sticky-бит защищает записи в общих каталогах с правом записи, например /tmp.

Каталог с правом записи обычно позволяет авторизованному пользователю удалять или переименовывать записи в нём, даже если сами файлы принадлежат другому пользователю. Sticky-бит добавляет ограничение по владению, делая общие записываемые каталоги безопаснее.

Как sticky-бит ограничивает удаление

Если у каталога установлен sticky-бит, Linux обычно разрешает удалить или переименовать запись только процессу с подходящими привилегиями, владельцу каталога или владельцу записи. Обычные права записи и поиска каталога всё равно необходимы.

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

Какой обычный пользователь обычно может удалить конкретную запись в общем каталоге со sticky-битом?

Распознавание бита у `/tmp`

Распространённым примером служит системный каталог временных файлов:

$ ls -ld /tmp
drwxrwxrwt 17 root root 4096 Dec 15 11:45 /tmp

Конечная строчная t занимает позицию выполнения остальных. Она означает наличие и sticky-бита, и права выполнения остальных. Прописная T означает, что sticky-бит установлен, а право выполнения остальных отсутствует.

Поскольку /tmp обычно доступен всем для записи и поиска, несколько пользователей могут создавать в нём записи. Sticky-бит не позволяет обычному пользователю удалять записи другого лишь потому, что каталог доступен для записи всем. Приложения всё равно должны безопасно создавать временные объекты: предсказуемые имена, небезопасные ссылки и слабые режимы файлов несут отдельные риски.

Что означает строчная t в конце режима каталога?

Установка и удаление sticky-бита

Установите бит символически:

$ chmod +t shared-directory

В начальной восьмеричной цифре специальных битов sticky добавляет 1:

$ chmod 1777 shared-directory

Начальная 1 устанавливает sticky, а 777 задаёт обычный режим. Такой режим уместен только для каталога, намеренно общего для всех локальных пользователей. Для командного каталога могут быть предпочтительнее более узкие групповые права. Удалите только sticky-бит командой chmod -t shared-directory.

Какое начальное восьмеричное значение обозначает sticky-бит?

Проверка полной политики каталога

Sticky не предоставляет доступ на запись или поиск: он лишь ограничивает удаление и переименование после того, как обычные права разрешили изменение каталога. Проверяйте вместе владельца, группу, обычный режим, ACL и контекст подключения каталога. Тестируйте с непривилегированными учётными записями в изолированной среде, а не изменяйте /tmp рабочей системы.

Делает ли добавление sticky-бита незаписываемый каталог доступным для записи другим пользователям?

Для практики создайте одноразовый общий каталог, задайте подходящий обычный режим и sticky-бит, затем проверьте удаление записей от имени двух непривилегированных пользователей. Лаборатория Удаление и перемещение файлов поможет закрепить основные операции переименования и удаления.

Урок завершён

Вы завершили Sticky-бит

Теперь вы можете объяснять и проверять sticky-бит у общих каталогов.

  • Связывайте sticky с ограничениями по владению при удалении и переименовании.

  • Распознавайте строчную t и прописную T в подробном списке.

  • Устанавливайте бит символически или начальным восьмеричным значением 1.

  • Оценивайте sticky вместе с обычными правами каталога.

Сохраните прогресс

Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.

Создать бесплатный аккаунт
Назад к Разрешения