Навіщо використовувати липкий біт?


18

"Бітовий клей застосовується лише до каталогів і зазвичай використовується в публічно доступних для запису каталогах. У каталозі, на якому застосовано клейкий біт, користувачі не можуть видалити або перейменувати будь-які файли, якими вони особисто не володіють."

Чи означає це, якщо я виконую наступне:

// only allow other users to read files in /directory
sudo chmod o-w -R /directory
sudo chmod o-x -R /directory
sudo chmod o+r -R /directory

користувачі все ще можуть видалити або перейменувати будь-який файл, який їм не належить?

Відповіді:


22

Клейкий біт корисний для каталогів, які користуються світовим режимом, таких як /tmp. У цих каталогах кожен може створити файл, тому каталог повинен бути доступним для запису у всьому світі. Але це означає, що кожен може також видалити файл, навіть якщо він не належить до них, оскільки видалення файлу контролюється дозволом на запис у каталог. Якщо в каталозі є клейкий біт, лише власник файлу має дозвіл на видалення його.

У каталозі з дозволами rwx------або rwxr-xr-x, лише власник каталогу може створити або видалити файл. Якщо є файли, що належать іншому користувачеві (переміщені туди під корінь або створені, коли в каталозі було більше відкритих дозволів), все-таки власник каталогу має дозволи видалити їх, а не власник файлу.

У каталозі з дозволами rwxrwx---всі члени групи можуть створювати та видаляти файли. Будь-який член групи може видалити будь-який файл, навіть якщо він належить іншому користувачеві. Якщо rwxrwx--Tнатомість дозволу (капітал Tсхожий t, але tозначає, що xбіт встановлений і Tозначає, що xбіт зрозумілий), то будь-який член групи може створити файл, а члени групи можуть видаляти файли, але лише власні файли .

Ви можете скористатися такою командою, щоб побачити, які каталоги мають клейкий біт у вашій системі:

find / /run /run/lock /run/shm -xdev -path /usr -prune -o -perm -o+t -ls 2>/dev/null

Ви знайдете деякі каталоги, такі /tmpяк відкриті для всіх, а також деякі каталоги, /var/spool/cron/crontabsякі зарезервовані для системної програми, яка працює як власна група ( setgid ), де клейкий біт гарантує, що програма може видаляти файли лише від імені Користувач, яким належить (що гарантує, що програма може створювати файли лише від імені користувача, який є її власником, - це те, що програма працює як цей користувач, а не як root, тому не може створювати файли, що належать іншим користувачам).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.