После деплоя возникли проблемы, девопс говорит проверить выставленный StickBid на определенной директории. Как проверить?

«После деплоя возникли проблемы, девопс говорит проверить выставленный StickBid на определенной директории. Как проверить?» — вопрос из категории Веб-серверы и балансировка, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Скорее всего, речь идет о Sticky Bit (специальный бит прав доступа для директорий), а не о балансировке сессий (session stickiness). В контексте DevOps это часто нужно проверить для общих директорий, например, /tmp или каталогов для загрузки файлов.

Как проверить Sticky Bit:

Выполните команду ls -ld, указав путь к директории:

ls -ld /путь/к/проблемной/директории

Анализ вывода: Посмотрите на строку прав доступа (первые 10 символов). Буква t или T в последней позиции (заменяющая x для «others») указывает на установленный Sticky Bit.

  • drwxrwxrwt — Sticky Bit установлен, у «others» есть право на выполнение (x).
  • drwxrwxrwT — Sticky Bit установлен, у «others» нет права на выполнение.

Классический пример — директория /tmp:

$ ls -ld /tmp
drwxrwxrwt 21 root root 4096 Apr 10 12:34 /tmp
# Наличие 't' означает, что любой пользователь может создавать файлы в /tmp,
# но удалить или переименовать сможет только файлы, владельцем которых он является.

Управление Sticky Bit:

  • Установить: sudo chmod +t /путь/к/директории
  • Снять: sudo chmod -t /путь/к/директории
  • Установить числовым методом: sudo chmod 1777 /путь/к/директории (где 1 в начале — это Sticky Bit).

Если же DevOps имел в виду Sticky Session (привязку сессии пользователя к конкретному backend-серверу), то проверять нужно конфигурацию балансировщика нагрузки (nginx, HAProxy). Например, в nginx это директива sticky в модуле ngx_http_upstream_module, а в HAProxy — опция cookie для бэкенда.