Jaka jest różnica między sudo i su?

Kilka dni temu otrzymałem zapytanie od Miguela, regularnie czytającego blogi i kompulsywnego komentatora jaka dokładnie jest różnica między sudo y su. W szczególności Miguel martwił się, czy jedna metoda jest bezpieczniejsza od drugiej. Zdarza się, że przeczytałem tam to sudo nie było wystarczająco bezpieczne i chciałem dowiedzieć się więcej. To kolejny post dedykowany tym, którzy prosili o więcej artykułów na temat tajemnice terminali.

Su

Program su Umożliwia korzystanie z powłoki innego użytkownika bez wylogowywania się z bieżącej sesji. Jest powszechnie używany do uzyskiwania uprawnień roota do operacji administracyjnych bez konieczności wylogowywania się i ponownego wchodzenia do systemu. Niektóre środowiska graficzne, w tym GNOME i KDE, mają programy, które graficznie proszą o hasło przed zezwoleniem użytkownikowi na wykonanie polecenia, które zwykle wymagałoby takiego dostępu.

Nazwa su pochodzi z języka angielskiego ssubstytut ube (użytkownik zastępczy). Są też tacy, od których się wywodzi superuser (superużytkownik, czyli użytkownik root lub administrator), ponieważ jest zwykle używany do przyjęcia roli administratora systemu.

Kiedy biegniesz, su Pyta o hasło do konta, do którego chcesz uzyskać dostęp, a jeśli zostanie zaakceptowane, daje dostęp do tego konta.

[facet @ localhost] $ twoje hasło: [root @ localhost] # exit logout [facet @ localhost] $

Nie umieszczając użytkownika, uzyskuje się do niego dostęp jako administrator. Możliwe jest jednak również przekazanie innej nazwy użytkownika jako parametru.

[facet @ localhost] $ su mongo Hasło: [mongo @ localhost] # exit wylogowanie [guy @ localhost] $

Po wprowadzeniu hasła możemy wykonywać polecenia tak, jakbyśmy byli drugim użytkownikiem. W piśmie wyjściewracamy do naszego użytkownika.

Powszechnie stosowanym wariantem jest użycie su po którym następuje myślnik. Dlatego, aby zalogować się jako root, musisz wejść jego - i zalogować się jako inny użytkownik twój - inny użytkownik. Różnica między używaniem skryptu czy nie? Zalecane jest użycie skryptu, ponieważ symuluje on zalogowanie się z tym użytkownikiem; w związku z tym wykonuje wszystkie pliki startowe tego użytkownika, zmienia bieżący katalog na HOME tego użytkownika, zmienia wartość niektórych zmiennych systemowych dostosowując je do nowego użytkownika (między innymi HOME, SHELL, TERM, USER, LOGNAME) i inni więcej rzeczy.

Administrator systemu musi być bardzo ostrożny podczas wybierania hasła dla konta root / administratora, aby uniknąć ataku ze strony nieuprzywilejowanego użytkownika działającego su. Niektóre systemy typu Unix mają grupę użytkowników o nazwie koło, która obejmuje jedynych, którzy mogą wykonywać su. Może to, ale nie musi, zmniejszyć obawy dotyczące bezpieczeństwa, ponieważ intruz może po prostu przejąć jedno z tych kont. On su GNU nie wspiera jednak używania tej grupy; zrobiono to z powodów filozoficznych.

Sudo

Powiązane polecenie o nazwie sudo, wykonuje polecenie jako inny użytkownik, ale z poszanowaniem szeregu ograniczeń, na podstawie których użytkownicy mogą wykonywać polecenia, w imieniu których inni użytkownicy (zwykle określone w pliku / etc / sudoers).

Z drugiej strony inaczej su, sudo monituje użytkowników o ich własne hasło zamiast wymaganego użytkownika; umożliwia to delegowanie poleceń użytkownikom na innych komputerach bez konieczności udostępniania haseł, zmniejszając ryzyko pozostawienia terminali bez nadzoru.

Problemy Sudo: okres karencji

Zaletą sudo w szacunku dla su polega na tym, że wykonuje tylko żądane polecenie udając innego użytkownika, bez faktycznej zmiany bieżącego użytkownika. Oznacza to, że można wykonać polecenie jako administrator, a w następnej sekundzie będzie miał uprawnienia użytkownika, którego używał wcześniej ... lub prawie.

Niektórzy uważają to za naruszenie bezpieczeństwa sudo przyznać „okres karencji”, który umożliwia użytkownikowi wykonywanie poleceń jako inny użytkownik bez konieczności wielokrotnego wpisywania sudo przed poleceniem i hasłem po jego wykonaniu. Po tym „okresie karencji” sudo ponownie zapyta nas o hasło.

Jest to „złe”, zasadniczo dlatego, że ktoś mógłby przejąć kontrolę nad naszym komputerem po wprowadzeniu hasła sudo i gdy „okres karencji” jest aktywny, dokonać KATASTROFY.

Na szczęście istnieje możliwość wyłączenia „okresu karencji”, co poprawi bezpieczeństwo Twojego systemu. Po prostu dodaj jedną linię w pliku / etc / sudoers:

sudo nano / etc / sudoers

I dodaj następujący wiersz na końcu pliku:

Wartości domyślne: ALL timestamp_timeout = 0

Zmiana zaczyna obowiązywać natychmiast, bez konieczności ponownego uruchamiania systemu.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   hełm powiedział

    W rzeczywistości, JEŚLI możesz wejść z uprawnieniami administratora z sudo i pozostać tam tak jak z su -, w tym celu musisz napisać: sudo -s zmieniając w ten sposób bieżącego użytkownika i pozostawiając czas karencji jako żart (ponieważ możesz pozostać jak tak długo, jak chcesz, tak jak z twoim)

  2.   Miquel Mayol i Tur powiedział

    Dzięki za wzmiankę, ale prawdziwy zasługa czatu Sabayon - z którego już nie korzystam, ponieważ zepsuł mi się dysk twardy i wolałem wrócić do Ubuntu -.

    Powodem, który mi podali, było to, że czasami podczas wykonywania sudo pewnych konfiguracji nie uzyskują absolutnych uprawnień i pozostają nieprawidłowo skonfigurowane. I że "logując się" z su jako root w celu aktualizacji i zadań konserwacyjnych, można temu zapobiec.

    Następnie wysłałem ci e-mail, ponieważ obiecałem podzielić się tym odkryciem, które wydawało mi się nietrywialne.

    Ponieważ Ubuntu jest domyślnie instalowane bez użytkownika root, po prostu uruchom

    „Sudo passwd root”

    wprowadź hasło, potwierdź je, a następnie
    „Su root”
    do czynności konserwacyjnych, oprócz unikania umieszczania sudo przy każdym zamówieniu.

    Zasadniczo w Ubuntu konto roota jest usuwane, abyś nie zawsze logował się na to konto, ale ponieważ otrzymałem radę niemal w tonie, że używanie sudo było świętokradztwem, na wszelki wypadek, gdybym go przestrzegał.

  3.   Wskaźnik zerowy powiedział

    Możesz uzyskać dostęp do pliku / etc / shadow i zmienić skrót hasła roota na normalny skrót hasła użytkownika, a następnie zmienić hasło dla roota ??? Innym razem próbuję tego samego….

  4.   Użyjmy Linuksa powiedział

    Jasny. Nie jest wyłączny dla Fedory.

  5.   mfcollf77 powiedział

    Więc czy z tych dwóch można je zainstalować? Myślałem, że „SU” jest tylko w FEDORA.

  6.   Diego Kisai Alba Gallart powiedział

    Bardzo dobra informacja, dzięki temu wątpliwości wielu z pewnością odejdą, bo znam kilku, którzy je mają.

  7.   Alex powiedział

    W ubunto chyba pamiętam, że nie możesz użyć polecenia su (aby wejść jako użytkownik root)

  8.   Chazan Perez powiedział

    Cóż, aby „odzyskać” hasło roota (właściwie każde inne hasło), możesz przeprowadzić „atak” na plik haseł systemowych za pomocą Johna The Rippera. Nie powiem więcej na ten temat.

    Może są inne metody ... Może zmieniając hasło, wpisując „sudo su”, a następnie polecenie „passwd”. Byłoby interesujące zobaczyć, co odpowiedzą inne osoby ...

  9.   Użyjmy Linuksa powiedział

    Dokładnie!

  10.   Użyjmy Linuksa powiedział

    Zgadza się ... Muszę podziękować Miguelowi Mayol i Tur ... to on był tym, który wpadł na pomysł. 🙂
    Twoje zdrowie! Paweł.

  11.   Szef powiedział

    Dziękuję, jak zawsze wielki wkład i doceniamy to.

  12.   Użyjmy Linuksa powiedział

    Dzięki szefie! Uścisk! Paweł.

  13.   Jerome Navarro powiedział

    Różnica między „su” i „sudo” to „do”

  14.   Erick powiedział

    Zapomniałem hasła roota, na szczęście mogę użyć sudo, a żeby użyć su, używam 'sudo su' i nie pyta o pass (?)
    Czy ktoś wie, jak znaleźć hasło roota (mam dostęp do roota przez sudo)?

    1.    marwergarab powiedział

      sudo hasło

  15.   Użyjmy Linuksa powiedział

    Ha! Bardzo mądry!

  16.   Fabian Kraj powiedział

    tym, który chce odzyskać hasło roota, będzie "sudo passwd root" i tam poprosi cię o wprowadzenie nowego

  17.   alex-pilloku@hmail.com powiedział

    witam, jak tam twoje życie

  18.   SynFlaga powiedział

    Przepraszamy, ale używając polecenia su, na przykład:

    su -c "polecenie", jest tym samym, co użycie sudo bez okresu karencji. Nie widzę potrzeby sudo.

    PRAWDZIWYM zastosowaniem sudo jest danie pewnym użytkownikom możliwości używania tego lub innego polecenia, jest ono częściej używane w firmach, aby nie musieć chrootować, czego nie można zrobić za pomocą su.

  19.   yacardi powiedział

    Drogi, muszę zrobić TP Linuksa i muszę odpowiedzieć na kilka prostych pytań. Może mogą mi pomóc. Dzięki od teraz:

    Jakie polecenie pozwala nam instalować / usuwać / modyfikować pakiety Debiana?
    Jakie polecenie pozwala nam łatwiej zarządzać instalacją
    pakiety w Debianie?
    Jaka jest komenda umożliwiająca instalację pakietów rpm?
    Jakiej opcji używamy do odinstalowania pakietu?
    Jaki jest katalog, w którym znajdują się repozytoria yum?
    Po co jest mniam?
    Jakiej opcji używamy do wyszukiwania paczki z yum?
    Jakiej opcji używamy, aby usunąć pakiet?
    Jaka opcja pomoże nam zaktualizować system?
    Jakie litery identyfikują pozwolenia?
    Co każdy z nich ma na myśli?
    Jakie polecenia wyświetlają uprawnienia pliku?
    Jakie są trzy grupy, w których uprawnienia są podzielone?
    Jakie są dwa sposoby implementacji uprawnień?
    Z jakiego systemu liczbowego korzystają pozwolenia?
    Jaką wagę mają te litery?
    Co to są specjalne zezwolenia?
    Jakie są istniejące uprawnienia specjalne i do czego służą użytkownicy?
    Jakich poleceń używam do zmiany uprawnień?
    Jakich parametrów używam, aby nadać uprawnienia do wykonywania pliku?
    Jakie parametry są używane, aby nadać uprawnienia do odczytu tylko grupie?
    Jakie parametry są używane, aby nadać grupie inne uprawnienia do odczytu / zapisu i usunąć zapis dla użytkownika, który jest właścicielem pliku?
    Jakie uprawnienia są tworzone domyślnie dla plików i katalogów?
    Jakiego polecenia używamy, aby to zweryfikować?
    Jak zmienić domyślną maskę?
    Jak sprawiamy, że maska ​​jest inna? (Użyj domyślnej maski, która pozostawia tylko właścicielom wszystkie uprawnienia).
    Jakie polecenie wyświetla listę procesów? Wymień różne parametry i ich zastosowanie.
    Jaki jest proces, od którego wszystko się zaczyna?
    Wypisz procesy odpowiadające zalogowanemu użytkownikowi.
    Wypisz wszystkie procesy w systemie.
    Z jakich opcji korzystam, aby uzyskać dodatkowe informacje?
    Wypisz wszystkie procesy, które są używane w terminalu
    Która opcja zawiera listę procesów i ich zależności?
    Wyjaśnij, czym jest proces rodzic-dziecko i jak go zidentyfikować
    Które polecenie wyświetla procesy w postaci drzew?
    Jakie polecenie monitoruje procesy w czasie rzeczywistym?
    Monitoruj tylko jeden proces
    Jakie polecenie pokazuje użycie pamięci?
    Jaki parametr pokazuje pamięć w megabajtach?
    Jaki parametr ma to w odstępach czasu?
    Które polecenie wyświetla informacje dotyczące czasu, w którym drużyna jest na nogach?
    Jakiego polecenia używam do zabijania procesów?
    Co te procesy wymagają, aby zostały sfinalizowane?
    Jakie rodzaje sygnałów są najczęściej spotykane?
    Wymień obsługiwane typy sygnałów.
    Na terminalu przeprowadź test vi, a następnie przejdź do innego terminala, poszukaj procesu i zakończ go sygnałem 15. Tak samo, ale sygnałem 9.
    Jaka jest różnica między sygnałem 9 i 15?
    Który działa domyślnie?
    Dlaczego proces przebiega w tle? A na pierwszym planie?
    Uruchom test vi, a następnie naciśnij ctrl + z, co się stało?
    Powtórz test vi, ctr + z, 4 razy, jak mam dokończyć to, co zawiodłem?
    Przekaż jeden z procesów na pierwszy plan i zamknij vi.
    Jaki parametr polecenia wykonujemy, aby nie zajmował powłoki?
    Jakie polecenie modyfikuje priorytety już uruchomionego procesu? Jak zmieniłbyś priorytet działającego terminala?
    Jakie są wartości poziomów i jaka jest ich hierarchia?
    Otwórz plik / etc / passwd i zobacz, jaki ma priorytet.
    Zmień poziom priorytetu na 4, a następnie na 25 Czy możesz przypisać oba? Czemu?
    Wypisz procesy wraz z ich priorytetami.
    Jakie polecenie monitoruje wszystkie uruchomione procesy?

  20.   itd. powiedział

    Witam, tak jak robię, chcę wyłączyć sudo. Otrzymuję to:
    [sudo] hasło dla xxx:
    xxx nie znajduje się w pliku sudoers. Ten incydent zostanie zgłoszony.

    jak go wyłączam, ponieważ używam su w debianie

    1.    użyjmy Linuksa powiedział

      Witam ecc!

      Myślę, że byłoby lepiej, gdybyś zadał to pytanie w naszym serwisie pytań i odpowiedzi o nazwie Zapytaj DesdeLinux aby cała społeczność mogła Ci pomóc w rozwiązaniu Twojego problemu.

      Uścisk, Pablo.

  21.   Berthold powiedział

    Cześć. Użyłem polecenia temperatury dysku twardego w Linux Mint: „sudo hddtemp / dev / sda”, pyta o hasło i daje mi oczekiwany wynik.
    ale wtedy podczas wykonywania w tym samym terminalu „hddtemp / dev / sda” informuje mnie, że odmowa uprawnień.
    Tak więc okres karencji nie działa na mnie, dlaczego tak jest?

  22.   Berthold powiedział

    Witaj blogu.
    Odkryłem również, że kiedy dystrybucja jest instalowana (np. Ubuntu, linux mint), prosi o hasło administratora.
    W interfejsie graficznym centrum sterowania skorzystałem z opcji zmiany hasła użytkownika.
    Więc teraz używając "su -" prosi o hasło, które nie jest hasłem mojego obecnego użytkownika, ale tym, którego użyłem podczas instalacji dystrybucji, czyli nadal jest to użytkownik root lub administrator.
    To spowodowałoby, że wielu użytkowników zapomniało prawdziwego hasła administratora.

  23.   Kendall Davila powiedział

    Witam, Twoje wyjaśnienie jest dla mnie doskonałe, bardzo jasne, krótkie i zwięzłe. Dzięki za wkład