Widzę te dwie opcje stale sugerowane w Internecie, gdy ktoś opisuje, jak zamontować tmpfs lub ramfs. Często także z noexec, ale szczególnie interesują mnie nodev i nosuid. Zasadniczo nienawidzę po prostu ślepo powtarzać, co ktoś zasugerował, bez prawdziwego zrozumienia. A ponieważ widzę tylko instrukcje dotyczące kopiowania / wklejania w sieci dotyczące tego, pytam tutaj.
To jest z dokumentacji:
nodev - Nie interpretuj bloków specjalnych urządzeń w systemie plików.
nosuid - Zablokuj działanie bitów suid i sgid.
Chciałbym jednak praktyczne wyjaśnienie, co może się stać, jeśli ich nie uwzględnię. Powiedzmy, że skonfigurowałem tmpfs lub ramfs (bez tych dwóch wymienionych opcji), które są dostępne (odczyt i zapis) dla określonego użytkownika (innego niż root) w systemie. Co ten użytkownik może zrobić, aby uszkodzić system? Z wyjątkiem przypadku zużywania całej dostępnej pamięci systemowej w przypadku ramfs
Odpowiedzi:
Nie musisz przestrzegać tego na ślepo jako twardej zasady. Ale uzasadnienie sytuacji bardziej skoncentrowanych na bezpieczeństwie jest następujące.
Opcja montowania nodev określa, że system plików nie może zawierać specjalnych urządzeń: Jest to środek bezpieczeństwa. Nie chcesz, aby światowy system plików użytkownika, taki jak ten, miał potencjał do tworzenia urządzeń postaci lub dostępu do losowego sprzętu.
Opcja montowania nosuid określa, że system plików nie może zawierać ustawionych plików ID użytkownika. Zapobieganie plikom binarnym setuid w zapisywanym na świecie systemie plików ma sens, ponieważ istnieje ryzyko eskalacji katalogu głównego lub innej okropności.
Ze względu na swoją wartość często nie używam tych parametrów ... tylko w systemach publicznych, w których istnieją inne względy zgodności.
źródło
nosuid
nie jest ignorowany? (zamiastThe nosuid mount option specifies that the filesystem cannot contain set userid files
)