Mam bezgłowy serwer, który jest zalogowany zdalnie przez wielu użytkowników. Żaden z pozostałych użytkowników nie ma w pliku sudoers, więc nie mogą uzyskać roota sudo
. Ponieważ jednak uprawnienia su
są włączone -rwsr-xr-x
, nic nie powstrzymuje ich przed próbą brutalnego wymuszenia hasła roota.
Można argumentować, że jeśli użytkownik zna hasło roota, i tak może narazić system na szwank, ale nie sądzę, że tak jest. OpenSSH jest skonfigurowany z PermitRootLogin no
i PasswordAuthentication no
i żaden z pozostałych użytkowników nie ma fizycznego dostępu do serwera. O ile wiem, świat wykonujący zezwolenie na /usr/bin/su
to jedyna droga dla użytkowników próbujących uzyskać root na moim serwerze.
Co mnie jeszcze bardziej zastanawia, ponieważ nie wydaje się nawet przydatne. To pozwala mi biegać su
bezpośrednio zamiast tego robić sudo su
, ale nie jest to żadna niedogodność.
Czy coś przeoczyłem? Czy świat wykonuje zezwolenie su
tylko na to z przyczyn historycznych? Czy są jakieś wady usuwania tego uprawnienia, którego jeszcze nie spotkałem?
sudo
zainstalowanej opcjonalnej ? Powiedziałbym, że jest to dość duża niedogodność;)Odpowiedzi:
Jednym z brakujących punktów w odpowiedzi ilkkachu jest to, że podniesienie do roota jest tylko jednym konkretnym zastosowaniem
su
. Ogólnym celem su jest otwarcie nowej powłoki pod kontem logowania innego użytkownika. Tym innym użytkownikiem może byćroot
(i być może najczęściej), alesu
można go wykorzystać do przyjęcia dowolnej tożsamości, którą system lokalny może uwierzytelnić.Na przykład, jeśli jestem zalogowany jako użytkownik
jim
i chcę zbadać problem, którymike
został zgłoszony, ale którego nie jestem w stanie odtworzyć, mogę spróbować zalogować się jakomike
i uruchomić polecenie, które przysparza mu problemów.Użycie
-l
opcjisu
powoduje symulację pełnego logowania (naman
stronę).Powyższe wymaga jednak znajomości
mike
hasła. Jeśli mamsudo
dostęp, mogę zalogować sięmike
nawet bez jego hasła.Podsumowując, powodem, dla którego uprawnienia do
su
pliku wykonywalnego są pokazane, jest to, żesu
jest to narzędzie ogólnego zastosowania, które jest dostępne dla wszystkich użytkowników w systemie.źródło
sudo
, zapomniałem, żesu
można z niego korzystać nie tylkosudo -s
. I bez bycia sudoerem byłby to jedyny sposób na przełączanie użytkowników bez zmiany kluczy ssh. W moim przypadku użycia jest to kolejny powód do usunięcia uprawnienia, ale teraz rozumiem, dlaczego światowe zezwolenie na wykonywanie jest ustawione domyślnie. Dzięki!sudo
, że można również użyć do założenia tożsamości użytkownika innego niżroot
. Pozwala to po prostu na dokładniejszą kontrolę nad tym, kto może robić to, co kto, w tym przyjmowanie innej tożsamości bez potrzeby podawania hasła do tej tożsamości.su
oznacza „superużytkownika”, co dzieje się, gdy nie określono żadnego użytkownika (lub root jest określony jawnością), ale oznacza to również „przełącz użytkownika”. To drugie użyciesu
jest zatem łatwe do zapomnienia.Historycznie (na unikach GNU) nie było, a przynajmniej ręcznie sprawdzane, czy jesteś w grupie o nazwie „koło”
su
. Wersja GNUsu
nie odtwarzała tej funkcji z powodu ideologii RMS dotyczącej kontroli dostępu w tym czasie:Możesz znaleźć o wiele więcej na ten temat w Googling „wheel group rms” lub podobnym.
źródło
Tak. Zakładając, że używasz zwykłego systemu Linux,
pam_unix.so
moduł opóźnia nieudaną próbę uwierzytelnienia o ~ dwie sekundy, ale nie sądzę, aby było coś, co mogłoby powstrzymać jednoczesne próby.Nieudane próby są oczywiście rejestrowane:
Brutalne wymuszanie hasła powinno być wyraźnie widoczne w logach, jeśli masz jakiś system do ich monitorowania. A jeśli masz niezaufanych lokalnych użytkowników, być może powinieneś. Niezaufani użytkownicy lokalni mogą również próbować wykorzystać jakiekolwiek exploity związane z eskalacją uprawnień tylko na poziomie lokalnym, i są one znacznie częstsze niż zdalne eskalowanie uprawnień.
Oczywiście jest to przydatne, pozwala podnieść się do poziomu
root
, jeśli znasz hasło.sudo su
jest nieco zbędny. Nie ma potrzeby używania dwóch programów, które mają umożliwić uruchamianie programów jako inny użytkownik, jeden wystarczy. Po prostu użyjsudo -i
lubsudo -s
(lubsudo /bin/bash
itp.), Jeśli chcesz uruchomić powłokę.Patrz wyżej. Cóż, nie wszystkie systemy mają
sudo
alternatywę, nie jestem pewien, czy uważasz to za historyczne.Nie bardzo, o ile mi wiadomo. Myślę, że niektóre systemy zostały
su
ustawione tak, aby tylko członkowie określonej grupy („wheel
”) mogli to uruchomić. Możesz zrobić to samo,sudo
jeśli chcesz (chown root.sudousers /usr/bin/sudo && chmod 4710 /usr/bin/sudo
).Lub możesz po prostu usunąć jeden lub oba programy, jeśli ich nie potrzebujesz. Chociaż w Debianie
su
jest dostarczany zlogin
pakietem, więc prawdopodobnie nie jest dobrym pomysłem usunięcie pakietu jako całości. (A łączenie w parylogin
isu
takie razem wydaje się nieco historyczne.)źródło
wheel
grupie, aby ich używaćsu
. Istnieje kilka systemów BSD (mogę mówić tylko w OpenBSD), które w ogóle nie są dostarczanesudo
(jest to pakiet innej firmy). OpenBSD madoas
ponowną implementację podstawsudo
, ale jest domyślnie wyłączany po zainstalowaniu nowego systemu.wheel
jeśli chcesz rootowaćsu
. Każde konto możesu
do dowolnego konta użytkownika innego niż root, do którego mają hasło, niezależnie od ich członkostwa wwheel
grupie.su
zatem oczyszcza środowisko? Wydaje się, że nie robi tego na Debianie ...Masz już dobre odpowiedzi, ale jest jedna część Twojego postu, której nie dotyczą.
To niebezpieczne założenie. Jeśli ustawiłeś dobre hasło do roota, w większości przypadków znacznie bardziej prawdopodobne jest, że pomyślne zwiększenie uprawnień nastąpi z powodu wykorzystania błędu w jądrze lub pliku binarnego setuid (oczywiście możesz również usunąć setuid nieco z nich, ale
passwd
jest setuid, a jeśli chcesz wysokiego bezpieczeństwa, powinieneś również zaoferować to swoim użytkownikom, a odmowa im zmiany hasła nie jest z tym zgodna).źródło
su musi być wykonywalny na całym świecie, aby każdy mógł go uruchomić. W wielu systemach można go zmienić na innego użytkownika, podając jego hasło.
Jeśli obawiasz się, że ktoś brutalnie forsuje hasło roota, możesz po prostu je wyłączyć. (unieważnij skrót, aby żadne podane hasło nie było zgodne)
Nie wiem o konsensusie, ale rozważę możliwość zalogowania się jako root bezpośrednio jako problem bezpieczeństwa sam w sobie.
źródło
Pozostałe odpowiedzi są prawidłowe, mówiąc „su” pozwala zalogować się na konta inne niż root.
Jedna uwaga na temat „sudo su”. To pozwala ci zalogować się na konto roota bez znajomości hasła roota. Musisz znać hasło do konta, na którym uruchamiasz sudo, a także mieć to konto w pliku sudoers.
źródło
sudoers
matargetpw
lubrootpw
ustawił.su
wykonywania przez wszystkich.