Jakie są rzeczywiste zalety przypisywania uprawnień sudo użytkownikowi zamiast korzystania z roota?


25

Jestem całkiem nowy w administrowaniu serwerami i widziałem wiele stron, które zalecają nadawanie uprawnień sudo użytkownikowi utworzonemu przez użytkownika root i nadanie użytkownikowi root niesamowicie długiego hasła w celu zwiększenia bezpieczeństwa.

Jeśli jednak nowo utworzony użytkownik może wykonywać te same funkcje, co użytkownik root, jaka jest faktyczna korzyść z takiego działania?


7
Sudoer nie może zrobić wszystkiego , co root, może tylko to, co root pozwala sudoerom na sudo, a sudoer wciąż musi sudo polecenia. Wreszcie, sudoers sudo rzeczy jako własne konto użytkownika, co po pierwsze oznacza, że ​​nie muszą się logować jako root, a po drugie pozwalają zobaczyć, kto coś skoczył.
KeithS,

Odpowiedzi:


48

Istnieje kilka korzyści z sudonadpisywania hasła roota. W szczególnej kolejności:

  • Nie
    podajesz hasła roota Zasadniczo, jeśli ktoś opuści Twoją firmę i znał hasło roota, musisz teraz zmienić te hasła wszędzie. Przy odpowiednim zarządzaniu konfiguracją jest to niewielka irytacja. Bez tego jest to ogromna robota.

  • Nie oddajesz kluczy królestwu,
    sudo możesz określić ograniczoną listę poleceń, które użytkownicy mogą uruchamiać, więc jeśli zdecydujesz, że Alice potrzebuje tylko możliwości zatrzymania i uruchomienia Apache, ale Bob potrzebuje pełnych praw root, możesz ustawić je odpowiednio.

  • Możesz centralnie zarządzać autoryzacją sudo obsługującą konfigurację LDAP, co oznacza, że ​​każdy system w Twojej firmie może spojrzeć na centralny serwer LDAP, aby ustalić, kto może to robić.
    Chcesz kogoś autoryzować (lub cofnąć)? Zmień konfigurację sudoers w LDAP, a wszystkie systemy zostaną zaktualizowane jednocześnie.

  • Jest ścieżka audytu
    Z wyjątkiem użytkowników, którzy mogą to zrobić sudo su -, sudo shlub jego odpowiednik, sudobędzie produkować ścieżki audytu który trwał Użytkownika Co polecenia.
    (Spowoduje to również utworzenie listy osób, które dały sobie niezalogowaną powłokę roota, dzięki czemu możesz wskazać na nich palcem i syczeć z dezaprobatą).

  • sudojest dobre dla więcej niż tylko korzeń koncentratów wszyscy na sudojako sposób zrobić rzeczy jak su peruser, ale to nie wszystko to jest dobre dla.
    Powiedzmy, że Alice jest odpowiedzialna za konkretną kompilację oprogramowania, ale Bob powinien również móc uruchomić skrypt kompilacji. Możesz dać Bobowi wpis w sudoers, który pozwoli mu uruchomić skrypt kompilacji jako użytkownik Alice. (Tak, jasne, istnieją znacznie lepsze sposoby radzenia sobie z tym konkretnym przypadkiem, ale zasada Let user A run a program as user Bmoże być przydatna ...).
    Otrzymujesz te same korzyści ze ścieżki audytu, o których wspomniałem powyżej, kiedy to robisz ...


1
Bardzo pomocna odpowiedź - jeśli wiem (i mam na uwadze ze 100% pewnością), że będę jedynym, który zarządza jednym serwerem, czy widzisz jednak wiele korzyści z przypisywania uprawnień sudo innemu użytkownikowi (który i tak byłby mną) poza powstrzymaniem się od popieprzenia czegoś?
JM4,

3
@ JM4 Spójność i dobra praktyka na jeden dzień w przyszłości, gdy pracujesz w większym środowisku. Z praktycznego punktu widzenia nigdy nie powinieneś logować się bezpośrednio jako root, chyba że jesteś na fizycznej konsoli, która naprawia coś, co jest królewsko ukryte, więc w sudoprzeciwieństwie sudo akademickiego rozróżnienia - będziesz musiał skakać przez jedną lub drugą obręcz. Korzystanie z sudooferty daje szansę na skorzystanie z zasady najmniejszego przywileju (mój ostatni punkt) tam, gdzie jest to praktyczne, i zawsze jest to coś, co należy poważnie rozważyć.
voretaq7,

2
Ponadto użyj visudo do edycji pliku sudoers.
Justin Dearing,

3
Zauważ, że wiele interaktywnych poleceń pozwoli użytkownikom ominąć ścieżkę audytu. Na przykład każdy użytkownik, który sudo vimoże :! bashwejść do środka vi.
Dietrich Epp,

4
@DietrichEpp NOEXECTag pomaga w takim przypadku.
Shane Madden

17

Podstawowa różnica polega na tym, że użytkownicy uwierzytelniają się sudo przy użyciu własnego hasła, podczas gdy przy sulogowaniu do konta root lub z bezpośrednim logowaniem do roota używane jest hasło root.

Oznacza to, że nie musisz udostępniać hasła roota wszystkim i różnym , a jeśli chcesz w przyszłości wyłączyć dostęp roota dla jednego lub dwóch użytkowników, możesz po prostu wyłączyć dla nich hasło zamiast zmieniać hasło roota.

sudojest także w stanie ograniczyć polecenia, które każdy użytkownik może uruchamiać jako użytkownik root, więc konkretni użytkownicy mogą uzyskać dostęp tylko do zadań, które muszą wykonać, jeśli nie wymagają pełnego dostępu użytkownika root.


1
dziękuję za twoją pomoc. Widzę korzyści z twojego punktu, ale naprawdę spojrzałem na podstawowego użytkownika roota jako podwójnego punktu uwierzytelnienia, biorąc pod uwagę, że wyłączyłem logowanie użytkownika root na ssh na moim serwerze.
JM4,

4

Oprócz prawidłowych odpowiedzi, nie zapominaj, że użytkownik zalogowany jako root może potencjalnie uszkodzić system przy każdym poleceniu. Jeśli zmusisz ich do wpisania sudo przed zrobieniem czegoś potencjalnie niebezpiecznego, przynajmniej uświadomisz im, że muszą dwukrotnie sprawdzić przed wykonaniem określonego polecenia.


2

Tak, rzeczywiście - z punktu widzenia kontroli i logowania sudo jest znacznie lepsze.

Na przykład - jeśli su, jedynym zdarzeniem zarejestrowanym w logach jest su'ing. Wszystko, co potem, stanie się rootem. A jeśli kiedykolwiek spojrzałeś na logi w systemie Unix / Linux, wiesz, że root wykonuje mnóstwo zadań.

Z drugiej strony Sudo rejestruje prawie wszystko jako użytkownik inicjujący.


0

Korzystanie z sudo utrudnia złośliwemu użytkownikowi uzyskanie dostępu do systemu. Gdy istnieje odblokowane konto root, złośliwy użytkownik zna nazwę konta, które chce złamać przed uruchomieniem. Gdy konto root jest zablokowane, użytkownik musi określić nazwę użytkownika i hasło, aby włamać się do systemu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.