Фиксированный бит - это бит разрешения, который устанавливается для файла или каталога и позволяет только владельцу файла/ каталога или пользователю root удалять или переименовывать файл. Ни одному другому пользователю не предоставляются права на удаление файла, созданного каким-либо другим пользователем.
Иногда случается так, что вам нужен каталог Linux, который может использоваться всеми пользователями системы Linux для создания файлов. Пользователи могут создавать, удалять или переименовывать файлы в соответствии с их удобством в этом каталоге.
Теперь, что, если пользователь случайно или намеренно удалит (или переименует) файл, созданный каким-либо другим пользователем в этом каталоге?
Что ж, чтобы избежать подобных проблем, используется концепция sticky bit. С /tmp используется для этой цели. Таким образом, чтобы избежать описанного выше сценария, /tmp используйте липкий бит.
Например:
mkdir demochmod 777 demo
Я также создал два файла с разными пользователями в этой папке, имеющими разрешение 777.
ls -ld demodrwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demols -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) захочет переименовать 2-го пользователя (anshu)
mv /home/guru/demo/file2 /home/guru/demo/file3mv: cannot move '/home/guru/demo/file2' to '/home/guru/demo/file3': Operation not permitted
Происхождение липкого кусочка
В Linux sticky bit используется только в описанных выше каталогах. Исторически сложилось так, что он использовался для чего-то совершенно другого в обычных файлах, и именно отсюда пошло это название.
Когда программа выполняется, требуется время для загрузки программы в память, прежде чем пользователь сможет фактически начать ее использовать. Если программа, например редактор, часто используется пользователями, то задержка запуска в то время была накладными расходами.
Чтобы улучшить эту временную задержку, был введен бит sticky. ОС проверила, что если бит sticky в исполняемом файле включен, то текстовый сегмент исполняемого файла сохранялся в пространстве подкачки. Это позволило легко загружать исполняемый файл обратно в оперативную память при повторном запуске программы, тем самым сводя к минимуму временную задержку.
Современные системы, такие как Linux, автоматически управляют своим кэшем исполняемых файлов и других файлов, и для этого им не нужен липкий бит.
Источник: “Концепция Linux Sticky Bit, объясненная на примерах” в Geek Stuff