Dlaczego Ubuntu ma wyłączone konto root?

57

Ubuntu wyłącza logowanie użytkownika root ze względów bezpieczeństwa. Wydaje mi się jednak, że w ogóle nie pomaga w bezpieczeństwie.

Jeśli intruzowi uda się uzyskać hasło logowania do Ubuntu, oznacza to również hasło superużytkownika, ponieważ jest takie samo jak hasło logowania.

Jeśli jednak wymagane jest hasło roota, samo zalogowanie się nie pomoże intruzowi - zgadza się, prawda?

Więc w zasadzie chcę wiedzieć: Dlaczego Ubuntu zdecydowało się wyłączyć hasło roota? Jakie są przyczyny bezpieczeństwa?

Proszę nie odpowiadać zgodnie z tym, co „uważacie” za przyczynę - szukam odpowiedzi z oficjalnych źródeł lub z nimi połączonych.

Powiedz mi dlaczego
źródło
6
Sprawdź, czy to pomoże.
Mitch
5
Powody korzystania z sudo są takie same jak powód, dla którego sudo zostało stworzone.
Thorbjørn Ravn Andersen
2
Canonical uważa, że ​​jest to najbliższa równowaga między użytecznością a bezpieczeństwem dla użytkowników Windows i OSX, którzy nie mają doświadczenia w administrowaniu systemem. Cały sens posiadania dystrybucji na pulpicie polega na apelowaniu do osób, które same nie chcą uczyć się o Linuksie, ale chcą znaleźć rzeczy, które chcą uruchomić, kliknąć je i uruchomić. W chwili, gdy „normalny” użytkownik zaczyna się interesować robieniem czegoś więcej niż tylko web / mail / pr0n / games, Ubuntu może być bramą do wszystkich fajnych uniksowych rzeczy, o których słyszeli (w tym „włączanie” roota - zawsze tam był) , spróbuj sudo su).
zxq9,
1
Jeśli ktoś otworzy Twoje konto, może przechwycić hasło roota podczas wpisywania go, jeśli kiedykolwiek suz konta do rootowania. Twoja uwaga na temat eskalacji uprawnień ma zastosowanie tylko wtedy, gdy logujesz się jako root na osobnej konsoli i nigdy nie robisz nic jako root, który ufa jakimkolwiek plikom, do których normalne konto ma dostęp do zapisu. Jak mówią istniejące odpowiedzi, jednym z głównych powodów jest zniechęcenie początkujących do myślenia o root jako koncie, na które powinieneś się zalogować i używać.
Peter Cordes,

Odpowiedzi:

81

Mitch opublikował dobry link w komentarzu: Dlaczego źle się zalogować jako root? a strona Debiana ma główne zalety wymienione na ich wiki :

Dlaczego sudo?

Używanie sudojest lepsze (bezpieczniejsze) niż otwieranie sesji jako root z wielu powodów, w tym:

  • Nikt nie musi znać hasła roota ( sudomonituje o hasło bieżącego użytkownika). Dodatkowe uprawnienia można tymczasowo przyznać indywidualnym użytkownikom, a następnie odebrać bez konieczności zmiany hasła.

  • Łatwo jest uruchamiać tylko polecenia wymagające specjalnych uprawnień sudo; przez resztę czasu pracujesz jako użytkownik nieuprzywilejowany, co zmniejsza szkody, jakie mogą powodować błędy.

  • Inspekcja / rejestrowanie: po wykonaniu sudopolecenia oryginalna nazwa użytkownika i polecenie są rejestrowane.

Z powyższych powodów przejście na root przy użyciu sudo -i(lub sudo su) jest zwykle przestarzałe, ponieważ anuluje powyższe funkcje.

Odnośnie Ubuntu Korzyści i wady wymieniono na naszej wiki :

Korzyści z używania sudo

Ubuntu ma wiele zalet, pozostawiając domyślnie wyłączone logowanie użytkownika root, w tym:

  • Instalator ma mniej pytań. Użytkownicy nie muszą pamiętać dodatkowego hasła do okazjonalnego użytku (np. Hasło roota). Jeśli to zrobią, prawdopodobnie zapomną o tym (lub nieoczekiwanie go zarejestrują, umożliwiając każdemu łatwe włamanie się do ich systemu).

  • Domyślnie unika się interaktywnego logowania „mogę wszystko”. Przed wprowadzeniem poważnych zmian zostaniesz poproszony o podanie hasła, które powinno skłonić Cię do przemyślenia konsekwencji swoich działań.

  • sudo dodaje pozycję dziennika polecenia (-ów) run (in /var/log/auth.log). Jeśli się zepsujesz, możesz wrócić i zobaczyć, jakie polecenia zostały uruchomione.

  • Na serwerze każdy włamywacz próbujący włamać się na siłę będzie wiedział, że ma konto o nazwie root i spróbuje tego w pierwszej kolejności. Nie wiedzą, jakie są nazwy użytkowników innych użytkowników. Ponieważ hasło do konta root jest zablokowane, atak ten staje się w zasadzie bez znaczenia, ponieważ nie ma hasła do złamania lub odgadnięcia.

  • Umożliwia łatwy transfer uprawnień administratora poprzez dodawanie i usuwanie użytkowników z grup. Gdy używasz jednego hasła roota, jedynym sposobem cofnięcia autoryzacji użytkowników jest zmiana hasła roota.
  • sudo można skonfigurować z bardziej szczegółową polityką bezpieczeństwa. Hasło do konta root nie musi być udostępniane wszystkim, którzy muszą wykonać jakieś zadania administracyjne w systemie (patrz poprzedni punkt).

  • Uwierzytelnianie automatycznie wygasa po krótkim czasie (który można ustawić na tak mały, jak to pożądane lub 0); więc jeśli odejdziesz od terminala po uruchomieniu komend jako root za pomocą sudo, nie pozostawisz terminala root otwartego na czas nieokreślony.

Wady korzystania z sudo

Chociaż w przypadku komputerów stacjonarnych korzyści płynące z używania sudo są świetne, należy zwrócić uwagę na następujące kwestie:

  • Przekierowanie danych wyjściowych poleceń uruchamianych za pomocą sudo wymaga innego podejścia. Na przykład rozważanie sudo ls > /root/somefile nie zadziała, ponieważ to powłoka próbuje zapisać do tego pliku. Możesz użyć, ls | sudo tee -a /root/somefileaby dołączyć lub ls | sudo tee /root/somefilezastąpić zawartość. Możesz także przekazać całą komendę do procesu powłoki uruchomionego w sudo, aby plik został zapisany z uprawnieniami administratora, np sudo sh -c "ls > /root/somefile".

  • W wielu środowiskach biurowych TYLKO lokalny użytkownik w systemie jest rootem. Wszyscy inni użytkownicy są importowani przy użyciu technik NSS, takich jak nss-ldap. Aby skonfigurować lub naprawić stację roboczą, w przypadku awarii sieci, w której nss-ldap jest uszkodzony, wymagany jest root. Powoduje to, że system nie nadaje się do użytku, chyba że jest pęknięty. Potrzebny jest tutaj dodatkowy użytkownik lokalny lub włączone hasło roota. Lokalne konto użytkownika powinno mieć $ HOME na dysku lokalnym, a niew systemie plików NFS (lub dowolnym innym sieciowym systemie plików) i .profile / .bashrc, który nie odwołuje się do żadnych plików w podłączeniach NFS. Zwykle dzieje się tak w przypadku roota, ale jeśli dodajesz konto ratunkowe użytkownika innego niż root, będziesz musiał ręcznie podjąć te środki ostrożności. Jednak zaletą korzystania z lokalnego użytkownika w sudo jest łatwość śledzenia poleceń, jak wspomniano powyżej.

I zawsze to mieliśmy (od pierwszego wydania).


Najstarsze znalezione odniesienie mówi o 4.10, które ma „sudo”

SHUTTLEWORTH URUCHAMIA UBUNTU LINUX W OPARCIU O DEBIAN

... Ubuntu Linux oparty na Debianie zawiera Gnome 2.8, jądro 2.6.8.1, OpenOffice.org 1.1.2 i zawiera tekstową, ale łatwą procedurę instalacji. Ubuntu wyłączył użytkownika root, który woli używać sudo podobnie jak Mac OSX ...

Rinzwind
źródło
Brak kilku funkcji bezpieczeństwa z korzyści : (i.) (Dla GUI) Nikt nie może uzyskać „podwyższonych uprawnień” bez interaktywnego dostępu lokalnego (wpisywanie hasła na klawiaturze); (ii.) Przyznany „podniesiony przywilej” dotyczy wyłącznie poleceń sudo'd, a nie żadnych zadań / wątków dla użytkownika (lub użytkownika root).
david6,
To wydaje się ignorować kwestie poruszone w pierwotnym pytaniu i zaciemniać je wieloma innymi informacjami, dlaczego jest to dobre?
paul23
6

Uważam, że to, co jest napisane na stronie pomocy, jest wystarczająco jasne i wystarczająco obiektywne.

Ubuntu jest „dla wszystkich” i chociaż jeśli jesteś wystarczająco dobry, nie potrzebujesz dostępu do roota, aby uszkodzić komputer, jednocześnie nie potrzebujesz go prawie wcale (i wiesz, jak łatwo to włączyć).
Problemem nie są ludzie, którzy są „wystarczająco dobrzy”, ale dla wszystkich innych, którzy mogą przyjść do Linuksa z innego świata komputerów, a pierwszy efekt dotyczy Ubuntu (i jest nas wielu).

Jeśli nie jesteś ekspertem i nie wiesz dokładnie, co to rootjest i jak właściwie sobie z tym poradzić, nie chcesz ani nie musisz go włączać (i ryzykować, na przykład, zrobienie z nim graficznego logowania).
O wiele lepiej jest nauczyć się robić rzeczy po bezpiecznej stronie, a następnie przejść na trudniejszą i bardziej niebezpieczną ścieżkę, niż zacząć bezpośrednio od trudnej drogi, a następnie uszkodzić instalację / stację roboczą, być sfrustrowanym i być może niezdolnym do odzyskania w pełni działającego system.
Zasadniczo lepiej zapobiegać niż leczyć.

dadexix86
źródło