Буква 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")

Практический совет для разработчиков и фрилансеров

  1. Для общих временных каталогов (/tmp, ~/projects/tmp) ставьте 1777. Это стандартная защита от "перехвата" файлов другими процессами.
  2. Для совместных репозиториев конфигураций создайте каталог с правами 2775 (set‑gid + sticky) - файлы будут наследовать группу, а удалять их смогут только их создатели.
  3. Проверяйте состояние: ls -ld /path/to/dir сразу покажет t/T в конце строки.

Краткое резюме

  • Sticky‑bit - способ контроля над удалением в каталоге.
  • Устанавливается chmod +t (символьный) или chmod 1xxx (восьмеричный).
  • t = sticky + исполняемый бит для others, T = sticky без x.
  • Применяется в /tmp, общих папках проектов, файлах‑шаблонах, где важна защита от потери данных.

Используйте эту информацию, чтобы делать свои Linux‑системы более безопасными и удобными для совместной работы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *