Sticky bit - це біт дозволу, який встановлюється у файлі чи каталозі, який дозволяє лише власникові файлу / каталогу чи кореневому користувачу видалити або перейменувати файл. Нікому іншому користувачеві не надано привілеїв видаляти файл, створений іншим користувачем.
Інколи трапляється, що вам потрібен каталог Linux, який можуть бути використані всіма користувачами системи Linux для створення файлів. Користувачі можуть створювати, видаляти або перейменувати файли відповідно до їх зручності в цьому каталозі.
А що робити, якщо користувач випадково чи навмисно видаляє (або перейменує) файл, створений іншим користувачем у цьому каталозі?
Ну, щоб уникнути подібних питань, використовується концепція липкого біта. Оскільки для цієї мети використовується / tmp . Отже, щоб уникнути описаного вище сценарію, / tmp використовуйте клейкий біт.
Наприклад:
mkdir demo
chmod 777 demo
Я також створив два файли з різним користувачем у цій папці, що мають дозвіл 777.
ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo
ls -l demo
-rwxrwxrwx 1 abhi abhi 0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu 0 Mar 11 18:15 file2
Тепер увімкніть цей клейкий шматочок
chmod +t demo/
ls -ld demo
drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo
Тепер, що відбувається, якщо один користувач (abhi) хоче перейменувати другий користувач (anshu)
mv /home/guru/demo/file2 /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
Походження клейкого шматочка
В Linux клейкий біт має лише використання, описане вище, у каталогах. Історично він використовувався для чогось зовсім іншого в звичайних файлах, і саме звідси походить назва.
Коли програма виконується, потрібен час, щоб завантажити програму в пам'ять, перш ніж користувач дійсно може почати її використовувати. Якщо програма, наприклад, редактор, часто використовується користувачами, тоді затримка часу запуску була накладною.
Щоб покращити цю часову затримку, було введено липкий біт. ОС перевірила, що якщо липкий біт на виконуваному файлі увімкнено, то текстовий сегмент виконуваного файлу зберігається в просторі swap. Це полегшило завантаження виконуваної програми в оперативну пам’ять при повторному запуску програми, мінімізуючи тимчасову затримку.
Сучасні системи, такі як Linux, керують кешем виконуваних файлів та інших файлів автоматично, і для цього не потрібен клейкий біт.
Джерело: «Концепція ліпкого біта Linux, пояснена прикладами» в Geek Stuff