Каталог с правом записи обычно позволяет авторизованному пользователю удалять или переименовывать записи в нём, даже если сами файлы принадлежат другому пользователю. Sticky-бит добавляет ограничение по владению, делая общие записываемые каталоги безопаснее.
Разрешения · Урок 8
Sticky-бит
Узнайте, как sticky-бит защищает записи в общих каталогах с правом записи, например /tmp.
Как 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 вместе с обычными правами каталога.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт