If-Koubou

Jaka jest różnica między Sudo i Su w systemie Linux?

Jaka jest różnica między Sudo i Su w systemie Linux? (Jak)

Jeśli jesteś użytkownikiem Linuksa, prawdopodobnie widziałeś odniesienia do sudo i su. Artykuły na temat "Jak to jest maniakiem" i gdzie indziej polecają użytkownikom Ubuntu używanie sudo i innych użytkowników dystrybucji Linuksa do używania su, ale jaka jest różnica?

Sudo i su to dwa różne sposoby na uzyskanie uprawnień roota. Każdy działa w inny sposób, a różne dystrybucje Linuksa domyślnie używają różnych konfiguracji.

Użytkownik root

Zarówno su, jak i sudo są używane do uruchamiania poleceń z uprawnieniami root. Użytkownik root jest w zasadzie równorzędny z użytkownikiem administratora w systemie Windows - użytkownik root ma maksymalne uprawnienia i może zrobić wszystko w systemie. Normalni użytkownicy w systemie Linux działają z ograniczonymi uprawnieniami - na przykład nie mogą instalować oprogramowania ani pisać do katalogów systemowych.

Aby zrobić coś, co wymaga tych uprawnień, musisz je zdobyć za pomocą su lub sudo.

Su vs. Sudo

Komenda su przechodzi do superużytkownika - lub użytkownika root - po uruchomieniu bez dodatkowych opcji. Musisz podać hasło do konta root. Nie jest to jednak całe polecenie su - możesz go użyć do przełączenia się na dowolne konto użytkownika. Jeśli uruchomisz su bob polecenie, zostaniesz poproszony o podanie hasła Boba, a powłoka przełączy się na konto użytkownika Boba.

Po zakończeniu wykonywania poleceń w powłoce głównej, należy wpisać wyjście opuścić powłokę główną i powrócić do trybu ograniczonego przywileju.

Sudo uruchamia pojedyncze polecenie z uprawnieniami roota. Kiedy wykonujesz Polecenie sudo, system wyświetli monit o podanie hasła do bieżącego konta użytkownika przed uruchomieniem dowództwo jako użytkownik root. Domyślnie system Ubuntu zapamiętuje hasło przez piętnaście minut i nie będzie prosić o hasło ponownie, dopóki nie minie piętnaście minut.

Jest to kluczowa różnica między su i sudo. Su przełącza użytkownika na konto użytkownika root i wymaga hasła do konta root. Sudo uruchamia pojedyncze polecenie z uprawnieniami roota - nie przełącza się do użytkownika root lub nie wymaga oddzielnego hasła użytkownika root.

Ubuntu a inne dystrybucje systemu Linux

Polecenie su jest tradycyjnym sposobem uzyskiwania uprawnień root'a na Linuksie. Polecenie sudo istniało przez długi czas, ale Ubuntu był pierwszą popularną dystrybucją Linuksa, która domyślnie przechodziła tylko do sudo. Podczas instalacji Ubuntu tworzone jest standardowe konto root, ale nie jest do niego przypisywane żadne hasło. Nie możesz zalogować się jako root, dopóki nie przypiszesz hasła do konta root.

Istnieje kilka zalet korzystania z sudo zamiast su domyślnie. Użytkownicy Ubuntu muszą tylko podać i zapamiętać jedno hasło, podczas gdy Fedora i inne dystrybucje wymagają utworzenia oddzielnego hasła konta root i konta użytkownika podczas instalacji.

Kolejną zaletą jest to, że zniechęca użytkowników do zalogowania się jako użytkownik root - lub użycia su do uzyskania powłoki głównej - i utrzymania otwartej powłoki głównej w celu wykonywania normalnej pracy. Uruchomienie mniejszej liczby poleceń jako root zwiększa bezpieczeństwo i zapobiega przypadkowym zmianom w całym systemie.

Dystrybucje oparte na Ubuntu, w tym Linux Mint, również domyślnie używają sudo zamiast su.

Kilka sztuczek

Linux jest elastyczny, więc nie trzeba wiele pracy, aby zrobić coś podobnego do sudo - lub na odwrót.

Aby uruchomić pojedyncze polecenie jako użytkownik root z su, uruchom następujące polecenie:

su -c 'command'

Jest to podobne do uruchamiania polecenia z sudo, ale potrzebujesz hasła konta root zamiast aktualnego hasła do konta użytkownika.

Aby uzyskać pełną, interaktywną powłokę root z sudo, uruchom sudo -i.

Będziesz musiał podać hasło do bieżącego konta użytkownika zamiast hasła konta root.

Włączanie użytkownika root w Ubuntu

Aby włączyć konto użytkownika root w systemie Ubuntu, użyj następującego polecenia, aby ustawić dla niego hasło. Należy pamiętać, że Ubuntu zaleca od tego.

sudo passwd root

Sudo poprosi cię o podanie hasła do obecnego konta użytkownika, zanim będziesz mógł ustawić nowe hasło. Użyj nowego hasła, aby zalogować się jako root z wiersza logowania do terminala lub polecenia su. Nigdy nie należy uruchamiać pełnego środowiska graficznego jako użytkownik root - jest to bardzo słaba praktyka bezpieczeństwa, a wiele programów odmówi pracy.

Dodawanie użytkowników do pliku Sudoers

Tylko konta typu administratora w Ubuntu mogą uruchamiać polecenia z sudo. Możesz zmienić typ konta użytkownika w oknie konfiguracji Konta użytkowników.

Ubuntu automatycznie wyznacza konto użytkownika utworzone podczas instalacji jako konto administratora.

Jeśli używasz innej dystrybucji Linuksa, możesz udzielić użytkownikowi uprawnień do używania sudo, uruchamiając visudo polecenie z uprawnieniami roota (w takim przypadku uruchom su najpierw lub użyj su -c).

Dodaj następujący wiersz do pliku, zastępując użytkownik z nazwą konta użytkownika:

użytkownik ALL = (ALL: ALL) ALL

naciśnij Ctrl-X i wtedy Y aby zapisać plik. Możesz także dodać użytkownika do grupy określonej w pliku. Użytkownicy w grupach określonych w pliku automatycznie będą mieć uprawnienia sudo.

Wersje graficzne Su

Linux obsługuje także wersje graficzne su, które pytają o hasło w środowisku graficznym. Na przykład możesz uruchomić następujące polecenie, aby uzyskać graficzne hasło i uruchomić przeglądarkę plików Nautilus z uprawnieniami root. naciśnij Alt-F2 aby uruchomić polecenie z graficznego dialogu uruchamiania bez uruchamiania terminala.

gksu nautilus

Polecenie gksu ma również kilka innych sztuczek w rękawie - zachowuje bieżące ustawienia pulpitu, więc graficzne programy nie będą wyglądały na nie na miejscu, gdy uruchomisz je jako inny użytkownik. Programy takie jak gksu są preferowanym sposobem uruchamiania aplikacji graficznych z uprawnieniami roota.

Gksu używa backendu su lub sudo, w zależności od dystrybucji Linuksa, której używasz.

Powinieneś być przygotowany na spotkanie z su i sudo! Napotkasz oba, jeśli używasz różnych dystrybucji Linuksa.