Dlaczego nazywa się sudo?


30

Dlaczego sudowykonujemy polecenie terminalu jako administrator? Dlaczego to nie jest admincoś innego? Czy jest jakiś powód sudo?


19
Czytać sudo lsjako „administrator, wykonaj ls” (a nie, to nie jest głupie, mnemotechniki są ważne dla pamiętanie poleceń) (i nie, prawdopodobnie oznacza to, że " s czarownica u ser i zrobić , biorąc pod uwagę, że suśrodki przełączania użytkownika, ale znajdę byłego najmilszych.; -))
Rmano

1
superużytkownik znacznie lepszy niż administrator :) dziękuję za odpowiedź.
Mohammad

2
To sudo voodoo, które robisz. :)
Shadur

14
Ciekawostka: po włosku sudooznacza (I) pot . Lubię interpretować sudo Xjako pocenie się ze strachu przed wydaniem niewłaściwego polecenia i wymazaniem wszystkich moich danych . Pomaga to pamiętać, że należy dodawać sudoprzed poleceniami tylko wtedy, gdy 1) Konieczne jest 2) Wiesz, co robisz 3) Starannie napisałeś i przeczytałeś wiersz poleceń, aby uniknąć literówek (szczególnie złych spacji, które są trudne do znalezienia złapać i może spowodować naprawdę okropne nieoczekiwane wyniki).
Bakuriu

2
@Rmano su pierwotnie oznaczało „superużytkownik”, „użytkownik zastępczy” przyszedł później .
Gilles „SO - przestań być zły”

Odpowiedzi:


32

Z Wikipedii :

sudo to program dla komputerowych systemów operacyjnych typu Unix, który pozwala użytkownikom uruchamiać programy z uprawnieniami bezpieczeństwa innego użytkownika (zwykle superużytkownika lub użytkownika root). Jego nazwa jest połączeniem „su” (użytkownika zastępczego) i „do” lub działania.

W przeciwieństwie do polecenia su, użytkownicy zazwyczaj podają własne hasło do sudo zamiast hasła roota. Po uwierzytelnieniu i jeśli plik konfiguracyjny / usr / local / etc / sudoers (czasem znajdujący się w / etc / sudoers) zezwala na dostęp użytkownika, system wywoła żądane polecenie. Plik konfiguracyjny sudoers umożliwia ogromną konfigurowalność, w tym między innymi: włączanie poleceń root tylko z terminalu wywołującego; nie wymagający hasła do niektórych poleceń; wymaganie hasła dla użytkownika lub grupy; wymaganie ponownego wprowadzenia hasła za każdym razem lub nigdy w ogóle nie wymaganie hasła dla określonej linii poleceń. Można go również skonfigurować tak, aby zezwalał na przekazywanie argumentów lub wielu poleceń, a nawet obsługuje polecenia z wyrażeniami regularnymi.

Jest to tymczasowe jednorazowe polecenie z uprawnieniami administratora (administratora) bez bezpośredniego logowania użytkownika root.


11
Część wiki jest poprawna. Komentarz na temat „Mac jest Su” jest nieprawidłowy. Macs mieć obie sudo, i su, podobnie jak zrobić BSD i Linux.
daviewales

@Virusboy Witam, przepraszam, że próbuję w tym temacie. Ale muszę wiedzieć, czy łatwo jest używać Ubuntu 14.04 z Toshiba M840 i3-3110M. Dziękuję Ci.
Bonn

Łatwo na dowolnym komputerze
Virusboy

21

xkcd: Kanapka

Przed sudo większość administratorów była zalogowana jako użytkownik root, ponieważ jest to łatwy sposób na skonfigurowanie systemu, ponieważ masz wszystkie prawa. Jednak mała pomyłka , albo źle łącza internetowego i cały system mogą zostać naruszone, a nawet zagrożone.

Z powodu tego problemu pojawiło się sudo . Celem było korzystanie z uprawnień administracyjnych tylko przez krótki czas i tylko w razie potrzeby. Ponadto pozwoliłoby to uniknąć logowania użytkownika na inne konto. To oczywiście poprawiłoby bezpieczeństwo systemu .

W systemie Ubuntu decydują się zwiększyć bezpieczeństwo twojego systemu. Postanowili więc podążać drogą „sudo”. Użytkownik root jest wyłączony; nie ma takiej potrzeby, a zwłaszcza nie ma ryzyka, że ​​użytkownik zaloguje się za pośrednictwem interfejsu X z użytkownikiem root. Ponadto zezwolili na uruchamianie każdego polecenia w sudo dla upoważnionych użytkowników. Fajne jest to, że zaawansowani użytkownicy mogą uzyskać dostęp do konta root.

Wady sudo:

  • Które polecenia są dozwolone przez sudo
  • Musisz napisać sudoprzed każdym poleceniem wymagającym uprawnień administracyjnych
  • Co jakiś czas trzeba ponownie wpisać hasło .

Co sudoznaczy Jego nazwa jest połączeniem „su” (użytkownik zastępczy) i „do”.

Dlaczego sudonie admin? Myślę, że sudoznaczy adminna określony czas i tylko wtedy, gdy go potrzebujesz.

Ludzie pochodzący ze środowiska Windows powinni zrozumieć, dlaczego tak nie jest admin :)

Odniesienia: Zdjęcie strony
: xkcd


więc dlaczego nie nazywa się to rodo?
JamesRyan

3
Twój akapit „przed sudo” jest nieprawidłowy. Nie ma różnicy między sui sudopod tym względem, a jedyną różnicą między nimi jest, które są używane poświadczenia. Korzystanie sudoraczej niż sunie jest bezpieczniejsze (w rzeczywistości jest nieco mniej bezpieczne); Główną zaletą sudo (i powodem, dla którego Ubuntu go wybrał) jest prostota dla użytkownika (tylko jedno hasło do zapamiętania).
Gilles „SO- przestań być zły”

11

Z Linux.com, produkt Linux Foundation:

Sudo oznacza „ zastępczy użytkownik do ” lub „ super użytkownik do ” (w zależności od tego, jak chcesz na to spojrzeć). To, co robi sudo, jest niezwykle ważne i kluczowe dla wielu dystrybucji Linuksa. W efekcie sudo pozwala użytkownikowi uruchamiać program jako inny użytkownik (najczęściej użytkownik root).

[Podkreśl moje.] Źródło


3

superuser zrobić

Su, możesz zostać superużytkownikiem, więc możesz powiedzieć

$ su
# apt-get install somehorror
# exit
$

sudo pozwala to zrobić za jednym zamachem i nie musisz pamiętać o rezygnacji z magicznych mocy.

$ sudo apt-get install somehorror

2
su(„użytkownik zastępczy”) pozwala stać się dowolnym użytkownikiem: możesz podać nazwę użytkownika jako argument.
David Richerby

1
W rzeczywistości oba nie są dokładnie takie same, ale w większości przypadków są podobne. Ale sudo pozwala głównie na uruchamianie programu z uprawnieniami superużytkowników, ale utrzymuje normalne środowisko bez zmian. su faktycznie czyni cię superużytkownikiem dzięki środowisku superużytkownika.
Marty Fried

3

Jeśli chodzi o to, dlaczego nie jest to „admin” - lub bardziej pośrednio, dlaczego su nie jest „switchUser” lub coś w tym rodzaju - tradycyjne polecenia uniksowe są zwykle minimalnymi skrótami ze względów historycznych związanych z pochodzeniem Uniksa.

Z najbardziej podstawowego powodu musimy wrócić do tego samego powodu, który nazywa się Unix. Znaczna część Uniksa została zainspirowana jednym z wczesnych wielozadaniowych systemów operacyjnych, Multit MIT. (Unix ma swoją nazwę jako „liczba pojedyncza Multics” lub „wykastrowana Multics”, w zależności od tego, kogo pytasz i ich nastroju w danym momencie.)

Wśród innych innowacji Multics wprowadzono koncepcję oddzielenia rzeczywistej lokalizacji pliku od informacji o katalogu, umożliwiając, aby pojedynczy plik miał wiele nazw. („Linki”, w kategoriach Unix.) Multics w pełni (nadmiernie) wykorzystał to; większość poleceń Multics ma zarówno ALongNameThatIsImpossibleToType, jak i ASNTOECR (krótką nazwę, którą pamiętają tylko eksperci). Doświadczenie pokazało, że długie nazwy naprawdę nie dodawały wiele łatwości obsługi, ponieważ w rzeczywistości wszyscy użytkownicy byli lub szybko stali się „ekspertami” i prawie nikt nigdy nie używał długich nazw. Kiedy Unix przyjął część projektu Multics, jednym z jego uproszczeń było odrzucenie nieużywanych długich nazw i zachowanie tylko krótkich nazw przyjaznych dla ekspertów.

Jest to również dobrze dopasowane do filozofii uniksowej polegającej na ograniczeniu systemu operacyjnego i jego podstawowych zestawów poleceń do ich zasadniczych funkcji, umożliwiając wydajne działanie na mniejszych systemach. W tamtych czasach programiści wciąż oszczędzali każdy możliwy bajt i cykl. Procesory były znacznie wolniejsze, prędkości końcowe były również niesamowicie niższe, a pamięć była znacznie droższa (i wolniejsza, i miała małe pamięci podręczne, jeśli w ogóle). Utrzymywanie poleceń systemowych na minimalnej długości mogło w rzeczywistości nie zaoszczędzić wiele (jeśli w ogóle) rzeczywistych zasobów, ale „wydawało się to właściwe” dla sposobu myślenia w danym czasie.

Jeśli naprawdę nalegasz na przyjazne dla użytkownika nazwy komend, odpowiedź dla systemu Unix brzmiałaby: „Wiesz, jak napisać skrypt powłoki; zaimplementuj go samodzielnie. Jeśli nie wiesz, jak napisać skrypt powłoki, musisz nauczyć się, jak to zrobić więc. Jeśli nie lubisz się uczyć i / lub kodować, nie będziesz zadowolony z Uniksa i powinieneś użyć czegoś innego. "


3

Niezależnie od tego, czy „ superużytkownik ” jest su pierwotnie pochodzący, jest niedokładny, ponieważ podana nazwa użytkownika nie musi być superużytkownikiem. To samo dotyczy wykonywania poleceń przez innego użytkownikasudo -u .

Użytkownik zastępczy ” jest dokładniejszy, ale brzmi niezręcznie. To sprawia, że ​​myślę o nauczycielu zastępczym.

Dlatego wolę myśleć supo prostu jako „zmień użytkownika”, a sudozatem jako „zmień użytkownika i zrób”.


1
zawsze, gdy robi to super użytkownik, ale lepiej zastąpić dźwięk użytkownika
BeyondProgrammer

1

Ze strony internetowej Sudo :

„Co to jest Sudo?

Sudo (su „do”) pozwala administratorowi systemu delegować uprawnienia, aby niektórzy użytkownicy (lub grupy użytkowników) mogli uruchamiać niektóre (lub wszystkie) polecenia jako root lub inny użytkownik, jednocześnie zapewniając ścieżkę audytu poleceń i ich argumentów . ”

„Sudo zostało po raz pierwszy opracowane i wdrożone przez Boba Coggeshalla i Cliffa Spencera około 1980 roku na Wydziale Informatyki SUNY / Buffalo. Działało na VAX-11/750 z systemem 4.1BSD. Zaktualizowana wersja, przypisana Philowi ​​Betchelowi, Cliffowi Spencerowi Gretchen Phillips, John LoVerso i Don Gworek zostali wysłani do grupy dyskusyjnej Usenet w grudniu 1985 roku. ”

To powiedziawszy, chociaż nie sądzę, aby istniał jakikolwiek dowód, zawsze mocno wierzyłem, że nazwa była rodzajem żartobliwego programisty. Masz polecenie „su” (superużytkownik) „do”, ale tak naprawdę nie jesteś superużytkownikiem - zmień „doo” w „doh”, a „sudo” wygląda / brzmi bardzo podobnie do „pseudo” (fałszywy) , fikcja).


-2

Większość ludzi odpowiedziało, że jest to połączenie „superużytkownika”. Podoba mi się to, ale bardziej poprawne może być stwierdzenie, że jest to połączenie „zastępczego użytkownika zrobić”, ponieważ możesz wybrać, który użytkownik „zrobisz”, jak w przypadku flagi -u.

Myślę też o tym jak o grze w słowa psuedonym, ponieważ możesz udawać, że jesteś kimś innym, rootem lub innym użytkownikiem używającym flagi -u.


3
Pytanie brzmiało: dlaczego nazywa się tak, jak jest, a nie dla backronimów i / lub mnemoników, więc ... [potrzebne źródło]
derobert

Również domyślny użytkownik docelowy nie musi być root(chociaż ma sens, aby był to przynajmniej jeden z identyfikatorem UID 0 i ogólnie tak jest), patrz runas_defaultw sudoers.
Stéphane Chazelas

@derobert +1 za użycie „backronymów” i utrzymanie witryny w czystości przed nieprawidłowymi odpowiedziami.
trzy puchary

@sch dzięki, nie wiedziałem o tym.
trzy puchary
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.