Короткий ответ SUID заставляет исполняемый файл запускаться с правами владельца файла (а не запускающего пользователя), SGID — с правами группы файла (а для каталога — что новые файлы внутри наследуют группу каталога), sticky bit на каталоге разрешает удалять файлы внутри только их владельцу, даже если каталог доступен на запись всем (классический пример — /tmp). Как это работает подробнее Ядро проверяет эти биты при exec() и chmod: при установленном SUID на бинарнике эффективный UID процесса при запуске становится равным UID владельца файла независимо от того, кто его запустил — это позволяет, например, обычному пользователю выполнить passwd, которому нужны права root для изменения /etc/shadow, не давая пользователю root-доступ напрямую. Пример кода Что использовать на практике Практика. SUID-бинарники — частая цель для эскалации привилегий: если такой файл имеет уязвимость или неправильно обрабатывает окружение/аргументы, его можно использовать для получения root; поэтому список SUID-файлов в системе стоит