logo

Sudo Linuksa

Wstęp

Polecenie sudo w systemie Linux oznacza Superużytkownik Zrób to . Ogólnie rzecz biorąc, jest on stosowany jako przedrostek kilku poleceń, które może wykonać superużytkownik.

Jeśli poprzedzimy polecenie innymi poleceniami, wykona to polecenie z wysokimi uprawnieniami. Innymi słowy, pozwoli użytkownikowi wraz z odpowiednią autoryzacją na zjedzenie polecenia tak, jak inni użytkownicy, np. superużytkownik.

Jest to równoznaczne z opcją 'Uruchom jako administrator' w Windowsie. Opcja sudo pozwala nam mieć więcej niż jednego administratora. Użytkownicy, którzy mogą zastosować polecenie sudo, muszą mieć wpis w pliku sudoers umieszczonym pod adresem '/etc/sudoers/' .

Uwaga: Aby wyświetlić lub edytować plik, musimy zastosować polecenie sudo. Do edycji pliku sugeruje się zastosowanie polecenia 'visudo'.

Polecenie Sudo domyślnie wymaga, aby użytkownicy zweryfikowali się za pomocą hasła, które jest hasłem użytkownika, a nie samym hasłem roota.

Składnia polecenia sudo

Poniżej omówiono składnię polecenia sudo:

 sudo OPTION... COMMAND 

Opcja w poleceniu sudo

Poniżej wyjaśniono niektóre ważne opcje polecenia Sudo:

1 w: To znaczy wersja . Ta opcja włącza polecenie sudo umożliwiające wydrukowanie numeru wersji i wyjście. Opcja -V wydrukuje domyślną pauzę na liście Sudo, jeśli użytkownik żądający jest już rootem.

Sudo Linuksa

2. -l: To znaczy lista . Ta opcja pomoże wydrukować różne polecenia dozwolone przez użytkownika na bieżącym hoście.

Pokazuje, że bieżący użytkownik może zastosować każde polecenie jako sudo.

nazwy miast usa
Sudo Linuksa

3. -h lub -help: H oznacza pomoc w tej opcji. Ta opcja włącza polecenie sudo umożliwiające wydrukowanie komunikatu o użyciu i wyjściu.

Sudo Linuksa

4. -w: To znaczy uprawomocnić . Jeśli polecenie sudo spowodowałoby aktualizację znacznika czasu użytkownika, w razie potrzeby funkcja sprawdzania wyświetli monit o podanie hasła użytkownika. Wydłuża limit czasu polecenia sudo o pozostałe 5 minut, ale nie wykonuje polecenia. Nie daje żadnego rezultatu.

5. -k: To znaczy zabić . Ta opcja unieważnia znacznik czasu użytkownika w sudo. Dlatego przy następnym wykonaniu polecenia sudo wymagane będzie hasło. Opcja -k nie wymaga hasła i została dołączona, aby umożliwić użytkownikom cofanie uprawnień polecenia sudo za pomocą .Wyloguj plik.

6. -b: To znaczy tło . Ta opcja informuje polecenie sudo, aby wykonało podane polecenia w tle.

Uwaga: jeśli zastosujemy tę opcję, nie będziemy mogli zastosować kontroli zadań powłoki do manipulowania procesem.

Sudo Linuksa

7. -K: Ta opcja jest taka sama jak opcja -k. Jednakże oznacza pewnie, że zabiję . Ta opcja służy do całkowitego usunięcia znacznika czasu użytkownika. Podobnie nie wymaga hasła.

8. -p: To znaczy podpowiedź . Ta opcja pozwala nam zastąpić monit o podanie hasła (domyślnie) i zastosować niestandardowe. Dozwolone są kilkuprocentowe ucieczki, które są następujące:

  • %u jest rozwijane na nazwę logowania wywołującego użytkownika.
  • %U jest rozwijane na nazwę logowania użytkownika
  • %h jest rozwijany do nazwy hosta (lokalnej) bez żadnej nazwy domeny.
  • %H jest rozwijany do nazwy hosta (lokalnej) z nazwą domeny (tylko wtedy, gdy nazwa hosta komputera jest całkowicie kwalifikowana)
  • %% (dwa kolejne znaki) można podzielić na pojedynczy znak %.
Sudo Linuksa

9. -n: Ta opcja uruchomi polecenie bez pytania o hasło. Jest to bardzo przydatne, jeśli chcemy wykonać kilka poleceń jako zadania w tle (lub wewnątrz skryptu powłoki), gdzie nie chcemy, aby polecenie sudo pytało o hasło. Ta opcja jest skrótem od nieinteraktywnego.

podnoszący na duchu

10. -w: To znaczy użytkownik . Ta opcja umożliwia komendzie sudo wykonanie opisanych poleceń innym niż użytkownik root. Aby określić uid zamiast nazwy użytkownika możemy użyć #uid .

11. -H: To znaczy DOM . Ta opcja może ustawić Zmienna środowiskowa HOME do naszego katalog domowy użytkownika root, jak opisano w pliku passwd. Polecenie Sudo domyślnie nie zmienia HOME.

12. -s: Oznacza to powłoka . Ta opcja uruchamia powłokę opisaną w a Zmienna środowiskowa SHELL kiedy jest ustawiony lub ta powłoka zgodnie z opisem w środku hasło plik.

Java odczytuje plik CSV

13. -S: To znaczy stdin . Ta opcja włącza polecenie sudo umożliwiające odczytanie hasła za pomocą standardowego wejścia, a nie urządzenia końcowego.

14. -: Ta opcja ilustruje, że polecenie sudo musi przestać przetwarzać argumenty wiersza poleceń. Jest najbardziej przydatny w połączeniu z flagą -s.

15. -a: To znaczy Typ uwierzytelniania . Ta opcja umożliwia komendzie sudo użycie opisanego typu uwierzytelniania podczas sprawdzania poprawności użytkownika, zgodnie z dozwolonymi przez /etc/login/.config .

Administrator systemu może opisać listę metod uwierzytelniania specyficznego dla sudo, dołączając „automatyczne sudo” wejście do środka /etc/login/.config .

Sudo Linuksa

Zmienne środowiskowe w poleceniu Sudo

Poniżej przedstawiono niektóre zmienne środowiskowe stosowane przez polecenie sudo:

Tak nie. Etykietka Opis
1. REDAKTOR Jest to domyślny edytor, którego można używać w trybie -e (sudoedit), gdy VISUAL nie został naprawiony.
2. DOM Ustawi się na katalog domowy użytkownika (docelowy) w trybie -H lub -s (lub gdy polecenie sudo zostało utworzone z opcją, tj. -enable-Shell-sets-home).
3. ŚCIEŻKA Przyjmuje rozsądną wartość, gdy opcja, tj. sudoers secure_path jest naprawiona.
4. POWŁOKA Można go użyć do określenia powłoki, która ma zostać wykonana z opcją -s.
5. SUDO_COMMAND Ustawia polecenie wykonywane przez polecenie sudo.
6. SUDO_PROMPT Może być używany jako monit o podanie hasła (domyślnie).
7. SUDO_USER Ustawia login użytkownika, który żąda polecenia sudo.
8. SUDO_UID Ustawia identyfikator użytkownika, który żąda polecenia sudo.
9. SUDO_GID Ustawia gid użytkownika, który żąda polecenia sudo.
10. POŁUDNIE_PS1 Wartość PS1 zostanie ustalona na stałe, jeśli zostanie ustawiona.
jedenaście. UŻYTKOWNIK Ustawia się na użytkownika (root, chyba że opisano opcję, tj. -u).
12. WIZUALNY Jest to domyślny edytor, używający trybu -e (sudoedit).

Historia polecenia sudo

Cliff Spencer i Robert Coggeshall napisali właściwy podsystem w 1980 roku na Wydziale Informatyki SUNY/Buffalo. Robert Coggeshall zabrał ze sobą sudo na Uniwersytet Colorado Boulder. Zasadniczo funkcje i kod zostały zmienione przez informatyków z College of Engineering i Wydziału Informatyki Uniwersytetu Kolorado w Boulder oraz nauk stosowanych wraz z Toddem C. Millerem w latach 1986-1993.

Publicznie najnowszą wersją zarządza od 1994 roku Todd .C Miller (programista OpenBSD), a od 1999 roku jest udostępniana na licencji w stylu ISC.

Thomas Claburn określił takie niepewności jako przesadzone w listopadzie 2009 roku w odpowiedzi na fakt, że Microsoft miał przywilej sudo. Wąsko, twierdzenia zostały sformułowane w oparciu o konkretny GUI zamiast podejścia Sudo.

Projekt polecenia sudo

Użytkownicy mogą w razie potrzeby podać swoje hasło do sudo zamiast superużytkownika, w przeciwieństwie do polecenia su. Umożliwia dostępnym użytkownikom korzystanie z kwalifikowanych uprawnień bez konieczności ujawniania hasła do drugiego konta.

  • Gdy plik konfiguracyjny umożliwia użytkownikowi dostęp, po uwierzytelnieniu system żąda żądanego polecenia.
  • Polecenie sudo zachowało uprawnienia użytkownika do wywoływania przez czas prolongaty (zwykle 5 minut) na pseudoterminal i pozwala użytkownikowi na wykonywanie różnych kolejnych poleceń jako zadeklarowany użytkownik bez konieczności ponownego podawania hasła.
  • Polecenie sudo można skonfigurować do rejestrowania każdego uruchomionego polecenia w ramach funkcji kontroli i bezpieczeństwa.
  • W tym momencie użytkownik wykonuje strzał w celu wywołania polecenia sudo, nie będąc wymienionym w pliku konfiguracyjnym, użytkownikowi wyświetlana jest ilustracja wyjątku informująca, że ​​strzał został zarejestrowany.
  • Wpis zostanie zapisany w systemie, a użytkownik root zostanie poinformowany pocztą.

Konfiguracja polecenia sudo

The /etc/sudoers plik zawiera grupy użytkowników lub listę użytkowników z uprawnieniami do uruchamiania zestawu poleceń, zawierając jednocześnie uprawnienia użytkownika root lub innego wymienionego użytkownika. Program może być skonfigurowany tak, aby wymagał hasła.

Wpływ polecenia sudo

W kilku dystrybucjach systemu polecenie sudo zastąpiło (domyślne) użycie innego loginu superużytkownika do różnych operacji administracyjnych, co najważniejsze w kilku dystrybucjach Apple macOS i Linux.

jak przekonwertować ciąg na int w Javie

Zapobiega kilku exploitom, a także pozwala na bardziej chronione rejestrowanie poleceń administratora.

RBAC

Komendy sudo można używać do przemieszczania się pomiędzy różnymi typami ról w ramach kontroli dostępu opartej na rolach we współpracy z SELinux.

Podobne programy i narzędzia

Visudo to narzędzie wiersza poleceń, które umożliwia edycję pliku konfiguracyjnego Sudo w sposób bezpieczny. Wykonuje kontrole składni i poprawności, a także zapobiega więcej niż jednej jednoczesnej edycji wraz z blokadami.

Program runas umożliwia tę samą wydajność w systemie Microsoft Windows; jednakże nie może przekazywać bieżących długich wierszy poleceń do elementu podrzędnego, zmiennych środowiskowych ani katalogów.

Nie obsługuje ogólnego podniesienia, ale pomaga wykonać dziecko jak każdy inny użytkownik. W przypadku systemu Windows prawdziwe sudo i su, które mogą przenieść każdy z tych szczegółów stanu i rozpocząć dziecko jako inny użytkownik lub z podwyższonym poziomem uprawnień, są dodawane za pomocą Skorupa Hamiltona C .

GUI jest dostępne dla Sudo ( gksudo zwłaszcza), ale jest przestarzały w Debianie i nie jest już dostępny w Ubuntu. Różne inne typy interfejsów użytkownika nie są projektowane bezpośrednio w Sudo, ale umożliwiają to samo podniesienie uprawnień (tymczasowo) do celów administracyjnych, takich jak Usługi autoryzacji systemu Mac OS X, Kontrola konta użytkownika w systemie Microsoft Windows , I pkexec w systemach operacyjnych typu Unix .

Od wersji 5.8 OpenBSD (październik 2015 r.) podarować jest dostępny. Określono, że ma zastąpić polecenie sudo w systemie podstawowym OpenBSD.

jego vs. sudo

Jeśli jesteśmy przyzwyczajeni do bardziej klasycznej konfiguracji Linuksa, to jesteśmy przyzwyczajeni do stosowania polecenia su w celu uzyskania uprawnień roota. Możemy również wydać polecenie su, aby skutecznie zalogować się jako root (dom roota staje się naszym domem).

Korzystając z tego rodzaju dystrybucji, możemy zalogować się również jako użytkownik trasy. Jednak logowanie się jako użytkownik root nie jest dobrym pomysłem. Jeśli stosujemy dystrybucję zależną od polecenia su i umożliwiającą logowanie użytkownika root, zaloguj się jako nasz standardowy użytkownik i użyj polecenia su do użytkownika root.

Najprawdopodobniej zauważymy, że nie możemy zalogować się jako użytkownik root korzystając z dystrybucji opartych na Sudo. W rzeczywistości w niektórych dystrybucjach, takich jak Ubuntu, konto użytkownika root zostało wyłączone.

Nie możemy zalogować się jako użytkownik root i użyć polecenia su, aby zostać użytkownikiem root. Możemy zrobić, to wydać te polecenia za pomocą polecenia sudo w celu uzyskania uprawnień administracyjnych.

Użycie polecenia sudo

Istnieją dwa różne sposoby uruchamiania aplikacji administracyjnych w systemie Linux. Albo możemy zmienić superużytkownika lub użytkownika root za pomocą polecenia su, albo możemy skorzystać z polecenia sudo.

Kiedy wykorzystujemy czas na terminalu, Sudo jest jednym z ważnych poleceń, z których będziemy dość często korzystać. Użycie polecenia sudo zamiast logowania się jako użytkownik root jest bezpieczniejsze, ponieważ możemy przyznać tylko kilka uprawnień administracyjnych jednemu użytkownikowi bez jego znajomości hasła root.

łączenie ciągów Java

Sposób, w jaki to zaimplementujemy, zależy od dystrybucji, z której korzystamy. Kilka dystrybucji pozwala użytkownikowi root (np OpenSUSE, Red Hat , Lub Fedora ), podczas gdy kilka nie (np Debiana I Ubuntu ).

Korzystanie z polecenia sudo jest proste w swojej bardzo podstawowej formie. Na przykład musimy wykonać polecenie dpkg w celu zainstalowania fragmentu oprogramowania. Jeśli po prostu uruchomimy dpkg -i oprogramowanie.deb polecenie jako standardowy użytkownik otrzyma komunikat o błędzie informujący, że użytkownik nie ma uprawnień do uruchomienia polecenia.

Dlatego domyślnie zwykli użytkownicy nie mogą instalować różnych aplikacji na komputerze z systemem Linux. Jeżeli chcemy zainstalować jakąkolwiek aplikację na komputerze z Linuksem musimy posiadać uprawnienia superużytkownika.

Zamiast tego uruchomimy sudo dpkg -i oprogramowanie.deb polecenie, abyśmy mogli pomyślnie przeprowadzić instalację.

Instalowanie polecenia sudo

Pakiet polecenia Sudo jest preinstalowany w większości dystrybucji Linuksa. Aby potwierdzić, że pakiet jest zainstalowany w naszym systemie, należy wykonać poniższe kroki:

  • Przede wszystkim otwórz nasz terminal.
  • Wpisz sudo i kliknij przycisk Enter.
  • Jeśli mamy zainstalowany pakiet sudo w naszym systemie, wyświetli się krótki komunikat.
  • W przeciwnym razie powiadomimy Cię komunikatem, czyli nie odnaleziono polecenia Sudo.
  • Jeśli pakiet nie jest zainstalowany, możemy go łatwo zainstalować, stosując menedżera pakietów do nadmiernej dystrybucji.

Zainstaluj Sudo na Fedorze i CentOS

 $ yum install sudo 

Zainstaluj Sudo na Debianie i Ubuntu

 $ apt install sudo 

Sudo Linuksa

Polecenie aktualizacji sudo

Sudo Linuksa