10.3.2. Sticky-бит
10.3.2. Sticky-бит
Помимо обычных битов режима есть один особый бит, называемый sticky-битом ("липучкой").[33] Он применим только в отношении каталогов.
Обычно удалять файлы могут пользователи, имеющие право записи в каталог. Каталог, для которого установлен sticky-бит, допускает удаление файла только в том случае, когда пользователь является владельцем этого файла или самого каталога и имеет право записи в каталог.
В типичной Linux-системе есть несколько таких каталогов. Один из них — каталог /tmp, в котором любой пользователь может размещать временные файлы. Этот каталог специально сделан доступным для всех пользователей, поэтому он полностью открыт для записи. Однако нельзя допустить, чтобы пользователи удаляли чужие файлы, поэтому для каталога /tmp установлен sticky-бит.
О наличии sticky-бита говорит буква t в конце строки режима:
% ls -ld /trap
drwxrwxrwt 12 root root 2048 Jan 24 17:51 /tmp
Соответствующий флаг функций stat() и chmod() называется S_ISVTX.
Если требуется установить для каталога sticky-бит. следует воспользоваться такой командой:
% chmod o+t каталог
А вот как можно назначить каталогу те же права доступа, что и к каталогу /tmp:
chmod(dir_path, S_IRWXU | S_IRWXG | S_IRWXO | S_ISVTX);