Dlaczego warto korzystać z lepkiej końcówki?

18

„Bit lepki dotyczy tylko katalogów i jest zwykle używany w katalogach, w których publicznie można zapisywać. W katalogu, w którym jest stosowany bit lepki, użytkownicy nie mogą usuwać ani zmieniać nazw plików, których osobiście nie posiadają”.

Czy to oznacza, że ​​uruchomię następujące elementy:

// 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

użytkownicy mogą nadal usuwać lub zmieniać nazwy plików, które do nich nie należą?

JohnMerlino
źródło

Odpowiedzi:

22

Lepki bit jest przydatny w katalogach, w których można zapisywać na całym świecie, takich jak /tmp. W tych katalogach każdy może utworzyć plik, więc katalog musi mieć możliwość zapisu na całym świecie. Oznaczałoby to jednak, że każdy może również usunąć plik, nawet jeśli nie należy do niego, ponieważ usunięcie pliku jest kontrolowane przez uprawnienie do zapisu w katalogu. Gdy katalog ma bit lepki, tylko właściciel pliku ma prawo go usunąć.

W katalogu z uprawnieniami rwx------lub rwxr-xr-xtylko właściciel katalogu może utworzyć lub usunąć plik. Jeśli istnieją pliki należące do innego użytkownika (przeniesione tam przez użytkownika root lub utworzone, gdy katalog miał więcej uprawnień do otwierania), to nadal właściciel katalogu ma uprawnienia do ich usunięcia, a nie właściciel pliku.

W katalogu z uprawnieniami rwxrwx---wszyscy członkowie grupy mogą tworzyć i usuwać pliki. Każdy członek grupy może usunąć dowolny plik, nawet jeśli należy on do innego użytkownika. Jeśli rwxrwx--Tzamiast tego uprawnienia są (kapitał Tjest podobny t, ale toznacza, że xbit jest ustawiony i Toznacza, że xbit jest czysty), wówczas każdy członek grupy może utworzyć plik, a członkowie grupy mogą usuwać pliki, ale tylko własne pliki .

Możesz użyć następującego polecenia, aby zobaczyć, które katalogi mają lepki bit w twoim systemie:

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

Znajdziesz kilka takich katalogów, /tmpktóre są otwarte dla wszystkich, i niektóre takie, /var/spool/cron/crontabsktóre są zarezerwowane dla programu systemowego, który działa jako osobna grupa ( setgid ), gdzie lepki bit zapewnia, że ​​program może usuwać pliki tylko w imieniu użytkownik, który jest ich właścicielem (co gwarantuje, że program może tworzyć pliki tylko w imieniu użytkownika, który jest ich właścicielem, to to, że program działa jako ten użytkownik, a nie jako root, więc nie może tworzyć plików należących do innych użytkowników).

Gilles „SO- przestań być zły”
źródło