Rozumiem, że to trochę fundamentalne i być może głupie pytanie, ale nie udało mi się znaleźć odpowiedzi.
Rozumiem, że każdy plik ma "Executable"
trochę.
Założyłem, że programy, które wymagają root
, które są własnością root
użytkownika i root
grupy, nie będą miały tego Executable
bitu Other
i uniemożliwiłoby to użytkownikom innym niż root. Ale w /bin
i /sbin
katalogów widzę, że wszystkie pliki mają uprawnienia jak-rwxr-xr-x
Co tak naprawdę określa, czy użytkownik musi mieć uprawnienia roota, aby coś wykonać?
permissions
root
Dziekan
źródło
źródło
/bin
lub z/sbin
katalogów. Problem polega na tym, że niektóre z tych programów działają inaczej w zależności od tego, który użytkownik je uruchamia.Odpowiedzi:
Czasami jest to w kodzie. Na przykład w połowie
hwclock.c
znajdziesz:co zmieni zachowanie programu, jeśli jesteś rootem lub nie.
W większości innych przypadków jest to domniemane; delegowane do jądra. Na przykład, jeśli program wywoła wywołanie systemowe, które pozwala na ponowne uruchomienie systemu, będzie działać tylko wtedy, gdy jesteś rootem. Jeśli nie jesteś rootem, pojawi się błąd „odmowa uprawnień”, który aplikacja (jeśli jest dobrze napisana) po prostu zgłasza. Lub próbujesz usunąć plik; jeśli masz do tego odpowiednie uprawnienia, plik się powiedzie; jeśli nie, zależy to od tego, czy jesteś rootem czy nie --- kiedy
rm
wywołaniaunlink()
jądro sprawdzi uprawnienia.Więc nie, w zasadzie nie można powiedzieć, że patrząc tylko na uprawnienia pliku wykonywalnego, jeśli program wymaga uprawnień roota, czy nie. Wiele programów będzie wymagało ich tylko do niektórych operacji, więc zrobienie czegoś takiego będzie naprawdę trudne. Sprawa
hwclock
jest jeden (każdy może czytać zegar ale tylko root może to zmienić), ale są ich setki (kill
,rm
,cat
...)Potem jest powiązany i interesujący świat programów setuidowych ...
źródło