Что такое sticky bit в Linux?

«Что такое sticky bit в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Sticky bit — это специальный бит разрешений для каталогов в Linux. Когда он установлен, файлы внутри такого каталога могут быть удалены или переименованы только их владельцем, владельцем каталога или пользователем root, даже если другие пользователи имеют права на запись в этот каталог.

Практический пример: Чаще всего sticky bit применяется к общедоступным временным каталогам, таким как /tmp, чтобы предотвратить случайное или злонамеренное удаление файлов других пользователей.

Как установить и проверить:

# Установить sticky bit на каталог /shared_tmp
sudo chmod +t /shared_tmp

# Альтернативный способ с числовой записью (первая цифра '1')
sudo chmod 1777 /shared_tmp

# Проверить права. Буква 't' в конце указывает на sticky bit
ls -ld /shared_tmp
drwxrwxrwt 2 root root 4096 Mar 10 12:00 /shared_tmp

Как это работает: Без sticky bit любой пользователь с правами записи (w) в каталог может удалить любой файл внутри. Sticky bit добавляет дополнительное ограничение, требующее, чтобы пользователь также был владельцем удаляемого файла.