Z jednej strony są rzeczy, których żaden użytkownik nie może zrobić, takie jak
- twarde linki do katalogów (z powodu ograniczeń systemu plików)
- zapis na już nagranej płycie CD-ROM (ponieważ fizyka)
Ale to nie są przywileje, ponieważ nie można ich przyznać, po prostu nie są możliwe dla nikogo.
Następnie istnieją ograniczenia dla całego systemu lub jego części, które można włączyć lub wyłączyć.
Na przykład w systemie OS X istnieje możliwość zezwolenia na uruchomienie kodu tylko wtedy, gdy został podpisany przez Apple.
Nie uważam tego za faktyczny przywilej, ponieważ żaden użytkownik nie może go mieć, jeśli administrator nie może. Możesz to tylko globalnie wyłączyć.
Edycja:
Twój pomysł na plik bez bitu wykonywalnego również należałby do tej kategorii, ponieważ dosłownie nikt nie jest w stanie tego zrobić i nikt nie może uzyskać tego uprawnienia.
I nawet jeśli dajesz innemu użytkownikowi lub grupie uprawnienia do wykonania tego pliku, ale nie ma roota lub roota grupy użytkowników, root nadal będzie mógł wykonać ten plik (testowany na OS X 10.10, 10.11 i serwerze Ubuntu 15.04).
Poza tymi przypadkami, root nie ma prawie nic.
Istnieje jednak funkcja zwana trybem jądra (w przeciwieństwie do trybu użytkownika).
O ile mi wiadomo, w zdrowym systemie tylko jądro, rozszerzenia jądra i sterowniki działają w trybie jądra, a wszystko inne (w tym powłoka, z której logujesz się jako root) działa w trybie użytkownika.
Można zatem argumentować, że „samo rootowanie to za mało”. Jednak w większości systemów użytkownik root może załadować moduły jądra, które z kolei będą działać w trybie jądra, skutecznie dając rootowi sposób uruchamiania kodu w trybie jądra.
Istnieją jednak systemy (np. IOS), w których nie jest to (arbitralnie) możliwe, przynajmniej nie bez wykorzystania zabezpieczeń. Wynika to głównie ze zwiększonego bezpieczeństwa, takiego jak wymuszanie podpisywania kodu.
Na przykład w procesorach iDevices wbudowane są klucze szyfrujące AES , do których można uzyskać dostęp tylko z trybu jądra. Moduły jądra mogą uzyskać do nich dostęp, ale kod w tych modułach jądra musiałby zostać podpisany przez Apple, aby jądro je zaakceptowało.
W systemie OS X od wersji 10.11 (El Capitan) istnieje także tak zwany „tryb bez rootowania” (choć nazwa wprowadza w błąd, ponieważ root nadal istnieje), który skutecznie zabrania rootowania niektórych rzeczy, które instalatorzy mogą nadal robić.
Cytując tę doskonałą odpowiedź na AskDifferent :
Oto, co ogranicza, nawet z katalogu głównego:
- Nie możesz modyfikować niczego w / System, / bin, / sbin lub / usr (oprócz / usr / local); lub dowolne z wbudowanych aplikacji i narzędzi. Tylko instalator i aktualizacja oprogramowania mogą modyfikować te obszary, a nawet robią to tylko podczas instalowania pakietów podpisanych przez Apple.
root
, a zatem nie można odebrać żadnego prawaroot
.