sticky бит

sticky-бит позволяет защитить нужные файлы от удаления другими пользователями, в случаях когда пользователи до установки специального бита имеют право на удаление.

 

sticky бит, запрет удаления файла в Linux системах

Установить бит на файл или каталог можно при помощь chmod

chmod 1644 file.txt

chmod +t file.txt

 

Во втором случае сохранятся существующие атрибуты, в первом — они перезапишутся стандартными 644.

 

Убрать sticky-бит:

chmod -t file.txt

 

sticky запрещает удаление файла всем кроме его владельца и суперпользователя. Другие пользователи системы, даже если они входят в группу владельца, удалить файл не смогут.

Если бит установить на каталог — аналогичные правила будут распространяться на все его содержимое.

 

sticky устанавливается владельцем файла, им же снимается. Бит остается до снятия или до удаления файла, для которого он добавлен.

 

 

Пример добавления sticky

admin@desktop:~# touch test

Добавляем специальный бит

admin@desktop:~# chmod +1664 test

Права позволяют всем из группы пользователя писать в файл или удалять его.

 

admin@desktop:~#  ls -la test

-rw-rw-r-T 1 admin admin 0 Mar 23 16:55 /tmp/test

 

 

Переключимся на пользователя root

admin@desktop:~# sudo -i

Затем добавим пользователя backup в группу admin

root@desktop:~# usermod -aG admin backup

 

Теперь став пользователем backup попробуем удалить файл

root@desktop:~# su — backup

backup@desktop:~# rm test

rm: cannot remove 'test': Operation not permitted

 

 

От имени суперпользователя удаляем sticky бит

root@desktop:~# chmod -t /tmp/test

Теперь файл можно будет удалить. Читайте про suid/suid и наследование процессом прав доступа.