Буква t в конце строки разрешений (drwxrwxrwt или -rwxrwxrwt) - это sticky‑bit.
Он работает только с каталогами и меняет правило удаления/переименования файлов: при установленном sticky‑bit удалять или переименовывать объект может только его владелец, даже если остальные пользователи имеют право записи в каталог. Таким образом защищаются файлы от случайных или намеренных удалений другими участниками системы.
Когда стоит включать sticky‑bit?
| Сценарий | Почему нужен sticky‑bit |
|---|---|
| Общедоступный файл (например, расписание смен) | Все могут читать и писать, но только владелец может удалить файл, что сохраняет историю данных. |
| Каталог с данными приложения, используемого несколькими пользователями | Приложение может изменять свои файлы, а пользователи - не могут их полностью стереть, защищая работу сервиса. |
/tmp и аналогичные временные папки |
На публичных серверах многие процессы пишут в /tmp. Sticky‑bit гарантирует, что пользователь не удалит чужой временный файл. |
Как установить sticky‑bit
Через символьный режим
# создаём файл и делаем его доступным для всехtouch shared_filechmod a+rw shared_file # → -rw-rw-rw-
# ставим sticky‑bitchmod +t shared_file # → -rw-rw-rwT
Для каталога процесс полностью аналогичен:
mkdir shared_dirchmod 777 shared_dir # drwxrwxrwxchmod +t shared_dir # drwxrwxrwt
Через восьмеричную запись
- Обычные права
rw-rw-rw--666. - Добавляем sticky‑bit: первая цифра =
1.
chmod 1666 shared_file # то же, что chmod +tchmod 1777 shared_dir # типичный режим для /tmp
Как убрать sticky‑bit
chmod -t shared_file # → -rw-rw-rw-chmod 0666 shared_file # восьмеричный эквивалент
Разница между t и T
t- sticky‑bit и у остальных пользователей установлен исполняемый бит (x).- `T - sticky‑bit установлен, но у остальных пользователь‑ов нет исполняющего права.
Это различие помогает понять, разрешено ли другим пользователям выполнять файлы/каталоги, помимо ограничения удаления.
drwxrwxrwx → без sticky‑bit, все имеют xdrwxrwxrwt → sticky‑bit + x для others (нижняя "t")drwxrwxrwT → sticky‑bit, но x для others отсутствует (верхняя "T")
Практический совет для разработчиков и фрилансеров
- Для общих временных каталогов (
/tmp,~/projects/tmp) ставьте1777. Это стандартная защита от "перехвата" файлов другими процессами. - Для совместных репозиториев конфигураций создайте каталог с правами
2775(set‑gid + sticky) - файлы будут наследовать группу, а удалять их смогут только их создатели. - Проверяйте состояние:
ls -ld /path/to/dirсразу покажетt/Tв конце строки.
Краткое резюме
- Sticky‑bit - способ контроля над удалением в каталоге.
- Устанавливается
chmod +t(символьный) илиchmod 1xxx(восьмеричный). t= sticky + исполняемый бит для others,T= sticky безx.- Применяется в
/tmp, общих папках проектов, файлах‑шаблонах, где важна защита от потери данных.
Используйте эту информацию, чтобы делать свои Linux‑системы более безопасными и удобными для совместной работы.
