Plik sudo
usługi istnieje, aby upewnić się, że wymagane uprawnienia nie pozostaną po ponownym uruchomieniu. Zasadniczo gwarantuje, że po ponownym uruchomieniu normalni użytkownicy, którzy zażądali uprawnień root, pozostaną normalnymi użytkownikami.
Szczegółowe wyjaśnienie sudo
Wszystkie poniższe wyjaśnienia mają na celu uzyskanie wszystkich informacji dla wszystkich, którzy czytają to pytanie, a następnie wyjaśnienie, co robi tam plik sudo w folderze usługi.
Podczas instalowania Ubuntu lub innej dystrybucji korzystającej sudo
z różnicy między byciem rootem a byciem użytkownikiem, który używa sudo
do uzyskiwania uprawnień typu „root jak” (uprawnienia administratora lub superużytkownika), jest to:
Jako root
- Nie jest wymagane podanie hasła do każdego lub wszystkich poleceń uruchamianych w sesji
- Nie wszystkie wykonywane polecenia będą domyślnie rejestrowane
- System zakłada, że wiesz, co robisz (powód, dla którego nie pyta o hasło przy każdym wykonaniu polecenia)
- Jeśli popełnisz błąd, nie ma drugiej szansy ani opcji w ostatniej chwili
Jak sudo
- Zostaniesz poproszony o podanie hasła do każdego lub wszystkich poleceń uruchamianych w sesji. Na przykład, jeśli otworzysz terminal i wykonasz polecenie wymagające uprawnień administracyjnych, poprosi on o hasło dla tej sesji, dopóki nie zamkniesz terminalu lub wylogujesz się. Zależy to od tego, jakiego polecenia używasz i gdzie. Może zapytać raz lub wiele razy.
- Wszystkie wykonywane polecenia będą rejestrowane, ponieważ faktycznie pytasz o pozwolenie na użycie polecenia uprzywilejowanego dla superużytkownika.
- System zakłada, że czasowo prosi o pozwolenie, a prawo administracyjne zostanie tymczasowo pożyczone (do czasu wylogowania, zamknięcia terminala itp.)
- Masz opcję ostatniej chwili, aby poprawić każdy błąd. Odbywa się to w momencie, gdy zostaniesz zapytany o hasło.
Dlaczego utworzono SUDO
Tworzenie SUDO zostało wykonane, ponieważ w przeszłości używanie root'a powodowało więcej problemów niż rozwiązań. Użytkownicy mieli wszelkie prawa, co oznaczało, że jeśli oni zrobili jakieś porządki wiosna i dosłownie usunięty /usr
, /lib
i /bin
foldery (bo myśleli, że ich nie potrzebne) .. wiecie co by się stało. Wiele problemów w przeszłości było spowodowanych tym, że użytkownicy nie znali mocy, jaką mieli podczas korzystania z roota. Zasadniczo mieli root, ale nie rozumieli Linuksa, hierarchii systemu plików, jakie pliki były ważne itp. (Coś w stylu ferrari i nieumiejętności prowadzenia ... na autostradzie!)
SUDO jest również używany przez aplikacje GUI (jak Update Manager), gdy potrzebują tymczasowych uprawnień administracyjnych, aby coś zrobić. Potrzebują go tylko do określonej liczby poleceń (zazwyczaj 1), a następnie wracają do uprawnień na poziomie użytkownika. Ma to na celu uniknięcie posiadania uprawnień roota przez cały czas i uniknięcie pomyłki, jeśli użytkownik zdecyduje się usunąć ważną część systemu.
Ponadto zapewnia większe bezpieczeństwo, ponieważ użytkownik root jest domyślnie wyłączony.
Wreszcie, jeśli masz komputer stacjonarny lub serwer, naprawdę nie chcesz, aby wszyscy byli rootami ani nie mieli wszystkich uprawnień administratora. Bardzo zły pomysł, jeśli twoja młodsza siostra lub młodsi bracia zaczną się zastanawiać, co by się stało, gdyby /boot
spotkał się z DELkluczem. W tym sudo
momencie zmniejsza się szansa, że stanie się coś złego.
Co oznacza Ograniczone uprawnienia superużytkownika dla określonych użytkowników ?
Użytkownik sudo lub sudoers faktycznie mają plik konfiguracyjny, który mówi im, jak ograniczone lub otwarte jest polecenie sudo dla konkretnego użytkownika. Plik /etc/sudoers
zawiera wszystkie informacje, aby ograniczyć lub umożliwić dostęp do użytkownika sudo. Domyślnie ma dostęp do wszystkiego, ale możesz to skonfigurować lub ograniczyć, jak chcesz.
Aby uzyskać informacje o tym, jak używać typu sudoers man sudoers
w terminalu. Na przykład normalny format to:
HOSTA UŻYTKOWNIKA = POLECENIA
Na przykład cyrex server1 = /bin/ls
da użytkownikowi cyrex na serwerze hosta1 dostęp do uruchomienia polecenia ls.
Na przykład cyrex server1 (root) = /bin/ls
da użytkownikowi cyrex na serwerze hosta1 dostęp do uruchomienia komendy ls jako root.
Na przykład cyrex ALL = /bin/ls
da użytkownikowi cyrex dostęp do wszystkich hostów w celu uruchomienia polecenia ls.
Na przykład cyrex ALL = ALL
zapewni użytkownikowi cyrex dostęp do wszystkich hostów w celu uruchomienia wszystkich poleceń.
Na przykład luis ALL=(root) NOPASSWD: /bin/kill, /usr/bin/killall
pozwoli mi uruchomić sudo dla poleceń kill
i killall
jako root bez pytania o hasło.