Na serwerze Linux muszę usunąć uprawnienia roota z grupy użytkowników. Ale ci użytkownicy mają uzasadnione powody, aby móc używać narzędzia „znajdź” do wyszukiwania plików na podstawie nazw plików, dat modyfikacji i innych metadanych.
Na serwerze nazwy plików nie są wrażliwe, ale zawartość pliku może być.
Chciałbym użyć sudo, aby umożliwić użytkownikom wyszukiwanie plików w dowolnym miejscu na serwerze. Narzędzie „znajdź” jest świetne, ale pozwala na wszelkiego rodzaju efekty uboczne, takie jak używanie „-exec” do odradzania dowolnych poleceń.
Czy mogę dostać się find
do pracy z moimi ograniczeniami?
Odpowiedzi:
Co z lokalizacją ?
A może nawet slocate :
źródło
locate
nie potrzebujesudo
; tylko jegoupdatedb
praca wymaga specjalnych uprawnień. W związku z tym użytkownicy nigdy nie powinni być uruchomieni ani mieć możliwości uruchamianiasudo locate
.-d
flaga ustawia tylko ścieżkę do bazy danych? Może źle cię zrozumiałem.Według
man 7 capabilities
To zadziałało dla mnie. (linie zaczynające się od „#” są rootem, linie z „$” nie są rootem) w tym przypadku użytkownik inny niż root jest w
wheel
grupie.Biorąc pod uwagę to, co zapewnia zdolność, pasuje dokładnie do tego, czego chcesz. Nie wyczerpująco sprawdziłem, czy
find
ma funkcję, która pozwala na odczyt bajtów wewnątrz plików, ale oczywiste rzeczy, takie jakLD_PRELOAD
ataki typu shim w bibliotece, nie powinny działać ze względu na naturę kontroli setuid w Linuksie, a bity możliwości nie dostają odziedziczone przez procesy potomne (w przeciwieństwie do surowego setuida), więc to kolejna premia.Pamiętaj, że to, co chcesz zrobić, budzi potencjalne obawy dotyczące prywatności związane z tworzeniem lub dostępem do plików tymczasowych, a program może służyć jako podstawa do podjęcia próby eskalacji warunków wyścigu / przywilejów (w stosunku do programów, które tworzą znane nazwy plików ale nie wykonuj poprawnych kontroli bezpieczeństwa).
Ponadto niektóre źle napisane aplikacje mogą polegać na metadanych pliku lub strukturze drzewa jako sposobie przekazywania znaczenia lub ukrywania danych. Może to spowodować udostępnienie ograniczonych informacji lub ujawnienie uprzywilejowanych dokumentów, o których nie wiadomo inaczej (wiem o bezpieczeństwie poprzez niejasność, ale jest to rzecz, którą szczególnie lubią robić dostawcy z zamkniętym źródłem).
Dlatego uważaj i rób to ostrożnie i zrozum, że wiąże się to z ryzykiem, nawet jeśli oczywiste rzeczy nie działają.
Och, chciałbym sprawdzić, czy ktoś ma atak koncepcyjny, który wykorzystuje ten mechanizm jako podstawę do eskalacji uprawnień w komentarzach!
źródło
find
umożliwić bezpośrednie wykonanie kodu dostarczonego przez użytkownika, podobnie jak to, coawk
można zrobić.Dałbym użytkownikom odpowiednie uprawnienia.
Domyślnie, jeśli umask jest
022
, katalogi są tworzone, aby każdy mógł wyświetlać i statystować pliki w nich zawarte. Jeśli nie, możesz ręcznie zmienić uprawnienia katalogu na bitowe lub jego stare uprawnienia i0555
:A jeśli ci użytkownicy nie mają uprawnień do wykonywania wszystkich rodziców tego katalogu (na przykład katalogu domowego innego użytkownika), prawdopodobnie oznacza to, że pierwszy katalog należy umieścić gdzie indziej.
Jeśli chcesz pozwolić tylko niektórym użytkownikom na odczytanie i wykonanie tego katalogu, możesz zmienić jego tryb na
0750
, umieścić tych użytkowników w grupie i zmienić właściciela grupy katalogu na tę grupę:źródło