Sticky bit and chattr

2

Chcę chronić moje foldery w $ HOME przed przypadkowym usunięciem. Zastosowałem chattr +ije, ale zauważyłem, że ostatnia jest stosowana rekurencyjnie, więc rzeczywiście nie można usunąć folderu, ale także nie mogę w nim pisać.

Próbowałem też zastosować sticky bit z chmod 1775i zmienić właściciela folderu z chown root foldername. Zwykle przy włączonym bicie lepkim tylko właściciel folderu może go usunąć, ale, o dziwo, w moim przypadku, chociaż folder jest własnością root, mogę go usunąć z moim normalnym użytkownikiem.

Zauważyłem, że foldery użytkowników na /homepartycji, chociaż są własnością bieżącego użytkownika i mają uprawnienia rwx dla właściciela, nie można ich usunąć / zmienić. Jak to się osiąga?

Używam Arch Linux 32-bit, a system plików to ext4.

droidlock
źródło

Odpowiedzi:

3

Chcę chronić moje foldery w $ HOME przed przypadkowym usunięciem. Zastosowałem na nich chattr + i, ale zauważyłem, że ostatnia jest stosowana rekurencyjnie, dlatego rzeczywiście nie można usunąć folderu, ale także nie mogę w nim pisać.

To nie jest rekurencyjne, po prostu działają katalogi. Katalog jest w zasadzie specjalnym plikiem z listą nazw i i-węzłów. (Przynajmniej kiedyś; nadal możesz catkatalogować na niektórych plikach BSD.) Kiedy próbujesz utworzyć, zmienić nazwę lub usunąć plik, nie zmieniasz samego pliku, zmieniasz jego katalog nadrzędny. Jeśli katalog jest oznaczony jako niezmienny, nie można go zmienić - ale podkatalogi można nadal modyfikować.

Próbowałem także zastosować lepki bit do chmod 1775 i zmienić własność folderu za pomocą Chown root foldername. Zwykle przy włączonym lepkim bicie tylko właściciel folderu może go usunąć, ale, o dziwo, w moim przypadku, chociaż folder jest własnością root, mogę go usunąć z moim normalnym użytkownikiem.

Bit lepki umożliwia usuwanie obiektów, jeśli posiadasz sam obiekt lub jego katalog nadrzędny.

Zauważyłem, że foldery użytkowników na partycji / home, chociaż są własnością bieżącego użytkownika i mają uprawnienia rwx dla właściciela, nie można ich usunąć / zmienić. Jak to się osiąga?

Patrz wyżej - podczas usuwania obiektu systemu plików musisz mieć uprawnienia do zapisu w katalogu nadrzędnym , a nie w samym obiekcie. W tym przypadku /homejest własnością użytkownika root, a Ty masz tylko uprawnienia „odczyt” + „wykonanie”.

Podsumowując

kopie zapasowe.


obiekt systemu plików: n. plik, katalog, węzeł urządzenia, dowiązanie symboliczne, potok, gniazdo Unix lub cokolwiek innego, co może być zapisane w systemie plików.

grawitacja
źródło
0

Aby utworzyć, usunąć lub zmienić nazwę elementu w katalogu, musisz mieć uprawnienia do zapisu w katalogu. Zwykle /homenie jest zapisywalny dla zwykłych użytkowników, więc nie można tworzyć, usuwać ani zmieniać nazwy katalogu /home.

Lepki bit w katalogu dodaje dodatkowy wymóg, że tylko właściciel pliku lub katalogu (lub administrator) może usuwać lub zmieniać nazwy istniejących elementów w katalogu. Nie zapobiegnie to usunięciu rzeczy, które posiadasz. Jest przeznaczony do publicznych katalogów, takich jak /tmp, w celu umożliwienia każdemu tworzenia nowych plików oraz usuwania lub zmiany nazw plików, które są ich własnością, ale w celu zapobiegania usuwaniu lub zmianie nazw plików należących do innych użytkowników.

Uczynienie katalogu niezmiennym ( chattr +i) oznacza, że ​​nie można go w ogóle zmienić, więc nie można w nim tworzyć żadnych nowych plików i nic w nim nie można usunąć ani zmienić jego nazwy. Jeśli chcesz zapobiec usunięciu katalogu, ale nadal chcesz tworzyć, usuwać i zmieniać nazwy plików w nim zawartych, możesz to zrobić, tworząc niezmienny plik w tym katalogu, ponieważ katalogu nie można usunąć, dopóki jest w tym coś. Alternatywnie możesz utworzyć podkatalog bez uprawnień do zapisu, który zawiera co najmniej jeden plik.

mark4o
źródło
0

Nieco późno na imprezę, ale chattr +a(opcjonalnie -Rw trybie rekurencyjnym) pozwoli ci tworzyć nowe pliki, ale ich nie usuwać.

Siły +aflagi dołączają się tylko do katalogu (podczas gdy +isiły są niezmienne).

Oznacza to, że gdy spróbujesz usunąć plik, system operacyjny spróbuje usunąć go z katalogu, który się nie powiedzie, powodując niepowodzenie całej operacji usuwania.

arcyqwerty
źródło