Co oznacza i co robi sudo?

„Czy ktoś może mi powiedzieć, co oznacza sudo?” Uczę się Linuksa. Poszukałem w Google, ale czy ktoś może mi dać porównanie Windows ? Myślę, że to trochę mi pomoże. Wiem, że su oznacza zmianę użytkownika. sudo jest kolejnym użytkownikiem, ale jak i dlaczego? Dlaczego „nie możesz po prostu przyznać sobie uprawnień pod nazwą użytkownika?

Komentarze

  • W systemie Windows, jeśli nie ' jeśli nie masz uprawnień administratora, musisz podać nazwę i hasło konta, które również je obsługuje. Możesz oczywiście nadać sobie uprawnienia pod nazwą użytkownika, po prostu nie jest to rozsądne, ponieważ każdy program, który Twój bieg może następnie zmodyfikować wszystko, na co masz pozwolenie. Jest to jeden z powodów, dla których system Windows był tak długo niebezpieczny.
  • @KnowledgeBeyondMe: O co chodzi z tematem pytania? Zmień to na coś znaczącego.
  • ok, więc zobaczę, czy to rozumiem. Zamiast osób mających konta administratora, każdy może zostać administratorem, używając nazwy użytkownika sudo. Jednak używając tej nazwy użytkownika sudo, działania będą z powrotem rejestrowane, ponieważ jest to piekielna zmiana na koncie użytkownika. Jeśli tak jest, naprawdę mi się to podoba. Oszczędza mnóstwo czasu. Nie ' Nie muszę czekać, aż ktoś z prywatnymi osobami podejdzie do Ciebie, aby dodać oprogramowanie i drukarki itp.

Odpowiedź

sudo pozwala uruchomić program jako superużytkownik root . Używając go zamiast su,

  1. nie musisz znać hasła roota, ponieważ prosi o podanie hasła,
  2. wiesz dokładnie, jakie polecenia będą uruchamiane jako root, a które inne jako ty. Jeśli używasz su, masz powłokę i możesz przypadkowo uruchomić niektóre (niebezpieczne) programy, a
  3. wszystkie twoje działania są rejestrowane w auth.log plik. Działania w powłoce, takie jak inicjowane przez su , zwykle nie są rejestrowane .

Dlaczego „t nie możesz po prostu przyznać sobie uprawnień pod swoją nazwą użytkownika?

Dla ze względów bezpieczeństwa, konto root jest rzadko używane do codziennych celów . Zwykle wszyscy użytkownicy, w tym administratorzy, używają „normalnego” użytkownika i wykonują tylko polecenia jako root, gdy jest to potrzebne. Może to zapobiec (1) nieautoryzowanemu dostępowi do plików innych użytkowników, (2) niezalogowanym działaniom roota i (3) problemom spowodowanym przez wykonywanie „niebezpiecznych” programów.

Tam to analogia z Wikipedii , którą możesz rozważyć:

  • Korzystanie z konta root jest raczej jak bycie Supermanem; zwykły administrator użytkownik jest bardziej podobny do Clarka Kenta. Clark Kent zostaje Supermanem tylko na tak długo, jak to konieczne, aby ratować ludzi. Następnie wraca do swojego „przebrania”. Dostęp do roota powinien być używany w ten sam sposób. Przebranie Clarka Kenta tak naprawdę go jednak nie ogranicza, ponieważ nadal może używać swoich super mocy. Jest to analogiczne do używania programu sudo.

Komentarze

  • Używanie sudo jest raczej jak bycie Goofym, dopóki nie zjesz super orzeszka ziemnego, który zamienia cię w Super Goof. Twoje super moce zanikają po pewnym czasie (domyślnie 15 minut), po czym zostanie wyświetlony monit o podanie nowego orzeszka ziemnego … hm, hasła.
  • ok, więc zobaczę, czy to rozumiem. Zamiast osób mających konta administratora, każdy może być administratorem, używając nazwy użytkownika sudo. Jednak używając tej nazwy użytkownika sudo, twoje działania będą ponownie rejestrowane, ponieważ jest to piekło z twojego aktualnego konta użytkownika. Jeśli tak jest, naprawdę to lubię. Oszczędza mnóstwo czasu. Nie ' nie musisz czekać, aż ktoś z prywatnymi osobami podejdzie do Ciebie, aby dodać oprogramowanie i drukarki itp.
  • @KnowledgeBeyondMe Każdy ma silny Możesz zostać administratorem, ale nadal musisz być autoryzowany przez umieszczenie na liście w /etc/sudoers. Istnieją inne zalety sudo nad su, ale głównym celem sudo jest uwierzytelnianie przy użyciu własnego hasła. Wspólne hasła są złe.
  • Musisz autoryzować ludzi, włączając je do /etc/sudoers lub przy użyciu innych technik , aby uruchomić sudo. Zwykle nie autoryzujesz wszystkich osób, tylko administratorów systemu.

Odpowiedź

Domyślnie w większości Uniksów , konto „administratora”, root, powinno być używane oszczędnie. W normalnym systemie uniksowym są tylko dwa poziomy uprawnień administratora, czyli „superużytkownika”: albo masz pełną kontrolę nad wszystkim , albo nie.

„Pełna kontrola” obejmuje omijanie większości sprawdzeń uprawnień i całkowite zepsucie systemu przez proste błędne wpisanie. Jako zwykły użytkownik możesz co najwyżej usunąć tylko własne pliki.

Starsze narzędzie su jest używane razem z hasłem roota do przyjęcia tożsamości roota, ale może być również używany do przejmowania tożsamości innych użytkowników lub wykonywania pojedynczych poleceń jako oni, pod warunkiem, że należysz do właściwej grupy użytkowników i znasz ich hasła.

su jest powszechnie używany przez użytkownika root (w niektórych systemach uniksowych) do uruchamiania demonów (procesów usługowych), które muszą działać z określonymi tożsamościami użytkownika, aby chronić je przed dostępem do obszarów do których nie powinny mieć dostępu (zazwyczaj serwery WWW, serwer SSH itp.). Można to zrobić w skryptach startowych podczas uruchamiania systemu.

su jest rzadziej używane interaktywnie (w wierszu poleceń).

Narzędzie sudo wymaga nieco więcej konfiguracji, ponieważ umożliwia użytkownikowi wykonywanie poleceń jako inny użytkownika przy użyciu własnego hasła (co oznacza, że na przykład hasło roota nie musi być udostępniane), a także pozwala na precyzyjną kontrolę tego, kto może dokładnie robić. Można na przykład dać pojedynczemu użytkownikowi lub całej grupie użytkowników możliwość zamontowania określonego dysku, ale nie jego odmontowywania ani montowania innych dysków, lub instalowania oprogramowania przy użyciu określonych poleceń itp. Ponownie, sudo narzędzie pozwala na przyjęcie tożsamości innych użytkowników (nie tylko roota) dla sesji interaktywnych lub na wykonywanie pojedynczych poleceń (jeśli konfiguracja została ustawiona w ten sposób przez inną osobę z rootem uprawnienia).

Zwykle pojedyncze polecenia uruchamia się za pomocą sudo (stąd nazwa „superuser do”):

$ sudo apt-get install vim 

lub

$ sudo shutdown -ph now 

Używanie sudo w ten sposób jest preferowane do używania sudo -s i pracuj z interaktywną powłoką roota, ponieważ polecenia, które wykonujesz, są rejestrowane. Można później odtworzyć działania w pliku dziennika, aby zobaczyć, gdzie (i kto) coś zrobił, albo dla debugowania lub audytu.

Jeśli zauważysz, że się typi oddalając się od interaktywnego znaku zachęty roota przez dłuższy czas, powinieneś ponownie rozważyć to, co robisz i czy to naprawdę wymaga uprawnień roota.

Jako przykład, jedyny raz, kiedy ja wywołanie interaktywnego monitu o rootowanie ma miejsce podczas dodawania zwykłego użytkownika dla siebie na świeżo zainstalowanej maszynie lub gdy naprawdę mam poważne problemy, które uniemożliwiają mi nawet zalogowanie się jako zwykły użytkownik.


OpenBSD (od wersji 5.8) ma narzędzie o nazwie doas, które zastępuje sudo w domyślnej instalacji systemu. Został opracowany, gdy stało się jasne, że sudo stał się zbyt złożony, aby pasował do celów wyznaczonych przez twórców OpenBSD. Jego użycie jest podobne do tego z sudo, , ale konfiguracja jest łatwiejsza .

Odpowiedź

We wczesnych wersjach Uniksa najczęstszym scenariuszem było zalogowanie się przez terminal bez systemu okienkowego. Polecenie su (użytkownik zastępczy) było wygodnym sposobem zmiany aktualnych uprawnień bez wylogowywania się. Pamiętaj, że bez systemu okienkowego wylogowanie się oznaczało zatrzymanie tego, co masz uruchomione.

Używanie su jako roota ma pewne irytujące problemy. Czasami ludzie zapominali o wyjściu z sesji i przypadkowo uruchamiali polecenia jako root. Zmiana hasła administratora była skomplikowana ze względu na fakt, że trzeba było rozesłać je do wszystkich, którzy go potrzebowali. Większość systemów nie zapisywała każdego polecenia, więc trudno było stwierdzić, kto co zrobił jako root. I tak dalej.

sudo rozwiązało te problemy, pozwalając ludziom uruchomić jedno polecenie jako root. Zapewnia lepszą kontrolę i kontrolę, a jednocześnie jest nieco wygodniejszy w przypadku jednorazowych poleceń.

Odpowiedź

OK, zobaczmy, czy to rozumiem. Zamiast osób posiadających konta administratora, każdy może zostać administratorem, używając nazwy użytkownika sudo. Jednak używając tej nazwy użytkownika sudo, twoje działania zostaną z powrotem zalogowane, ponieważ jest to piekło z twojego aktualnego konta użytkownika. Jeśli tak jest, naprawdę to lubię. Oszczędza mnóstwo czasu. Nie musisz czekać, aż ktoś z przywilejami podejdzie do Ciebie, aby dodać oprogramowanie, drukarki itp.

Komentarze

  • sudo to narzędzie, a nie nazwa użytkownika. Ktoś nadal musi przyznać Ci prawo do używania sudo. Prawo może być ograniczone do korzystania z określonych poleceń lub do używania sudo do przyjmowania określonych tożsamości innych użytkowników. sudo może służyć do przełączania się na role inne niż tylko root.
  • a więc to jest jak grupy organizacyjne Active Directory? Masz własną nazwę użytkownika z uprawnieniami, ale jeśli masz uprawnienia, możesz uzyskać dostęp do prywatności wyspecjalizowanej organizacji. W tym sensie ORG byłoby narzędziem SUDO?
  • Nie wiedząc, czym jest ” Active Directory „, Nie mogę ' powiedzieć tak lub nie z całą pewnością.
  • Mechanizm kontroli uprawnień i ról w systemie Windows.
  • Nie, sudo nie jest grupą ani kontem użytkownika. – W Windows, Active Directory i LDAP można zdefiniować grupy użytkowników. W Linuksie możesz także definiować grupy użytkowników. Na przykład Twój Linux ma zwykle grupę admin. Każdy użytkownik może należeć do grupy podstawowej i wielu grup dodatkowych . – Możesz upoważnić sudo do wszystkich członków grupy . Jeśli zaznaczysz /etc/sudoers, autoryzowane grupy mają prefiks %.

Odpowiedz

sudo umożliwia uruchomienie programu jako inny użytkownik (w tym root) w oparciu o konfigurowalny, predefiniowany zestaw reguł.

Włącz korzeń systemu Unix / POSIX / Linux jest bogiem. Użytkownik root jest również pojedynczy.

W wielu środowiskach istnieje wielu administratorów, którzy mogą wymagać pełnego dostępu do konta roota, ale mogą istnieć również osoby, które wymagają dostępu do wykonywania określonej funkcji zwykle zarezerwowanej dla użytkownika root; Administratorzy baz danych muszą zatrzymywać i uruchamiać usługi bazy danych, edytować pliki konfiguracyjne bazy danych, administratorzy sieci muszą konfigurować urządzenia i trasy sieciowe, a administratorzy zabezpieczeń muszą zarządzać certyfikatami i konfigurować zapory.

Ograniczając polecenia, które osoba może wykonać, sudo stosuje zasadę najniższych przywilejów – użytkownicy nie uzyskują dostępu, którego nie potrzebują. Ale nie ogranicza to tylko plików binarnych uruchamianych przez użytkowników. Wiele zadań administracyjnych jest wykonywanych z wiersza poleceń – a parametry przekazywane do tego polecenia mogą być również ograniczone przez sudo (lub przechwycone w skrypcie powłoki z dostępem zapewnianym przez sudo), stąd możliwe jest ograniczenie danych / urządzeń, które te specjalizują administratorzy mają dostęp.

Dlaczego „t nie możesz po prostu przyznać sobie uprawnień pod swoją nazwą użytkownika?

1) byłoby źle.

  • Często miałem dostęp do konta roota w systemach – ale wyjeżdżam założyć nazwane konto do logowania i tylko „su” lub „sudo”, gdy chcę jawnie przywołać moje super moce. Oprócz unikania głupich błędów, moje nazwane konto zapewnia piaskownicę dla wszelkich źle działających komponentów.

  • co jeśli 5 osób potrzebuje uprzywilejowanego dostępu, czy przyznam go każdemu z osobna? A co z 20? co z 200?

2) to byłoby trudne

  • to nie jest Unixowy model bezpieczeństwa. Jasne, że możesz zmienić uprawnienia do niektórych plików wykonywalnych (zobacz wcześniejszą uwagę na temat parametrów). Ale jeśli „jesteś świadomy bezpieczeństwa, regularnie stosujesz poprawki – co może podważyć niestandardowy model uprawnień (sudo OTOH zachowuje swoje uprawnienia niezależnie od samych poleceń).

Komentarze

  • ahhh, właśnie dlatego Linux jest nieco trudniejszy do zaatakowania. Mniej ludzi z prawami. Atakujący musiałby znaleźć odpowiednią osobę z odpowiednimi prawami.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *