Dlaczego system Ubuntu nie pozwala użytkownikom GUI zalogować się jako root w momencie uruchamiania systemu jak administrator w systemie Windows?
Dlaczego ograniczają nas do logowania tylko przez terminal?
Dlaczego system Ubuntu nie pozwala użytkownikom GUI zalogować się jako root w momencie uruchamiania systemu jak administrator w systemie Windows?
Dlaczego ograniczają nas do logowania tylko przez terminal?
Odpowiedzi:
Ponieważ nie jest to zalecane, chyba że dokładnie wiesz , co robisz. Root jest superużytkownikiem, co oznacza, że może robić wszystko i wszystko - jest przeznaczony tylko do zadań administracyjnych. Codzienne zadania mogą wiązać się z zagrożeniem bezpieczeństwa, które BĘDZIE wykorzystane, jeśli KAŻDY (lub duża część użytkowników) użyje roota. Pomyśl o systemie Windows - 99% problemów ze złośliwym oprogramowaniem i wirusami pochodzi od osób używających kont administratora do codziennych zadań.
Spójrzmy na przykład.
Co jeśli ktoś włamie się do twojego systemu i powie mu, aby wymazał twoje dyski? Jeśli działasz jako zwykły użytkownik, jedynymi plikami, które (powinny) być w stanie usunąć, są te, które należą do ciebie, a nie nikogo innego. Jeśli powiedzmy, że masz inne osoby korzystające z komputera, ich pliki nie zostaną w ogóle dotknięte, bez względu na to, jak bardzo się starasz. Oznacza to, że nie będziesz w stanie zmienić żadnych plików systemowych , a zatem Twój system pozostanie solidny i niezmieniony / niezakażony.
Jeśli jednak uruchamiasz się jako root, możesz całkowicie wyczyścić dysk twardy, prawdopodobnie spowodować uszkodzenie samego sprzętu i ogólnie uniemożliwić korzystanie z systemu. Korekta: każdy, kto może uruchomić jedno polecenie jako root na twoim komputerze (złośliwa strona internetowa lub załącznik e-mail), może to zrobić.
Spójrz na http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , to fajny artykuł, który może wyjaśnić to lepiej niż ja.
EDYCJA: oto kolejna http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html
EDYCJA 2: zawsze możesz użyć sudo command
lub gksu command
uruchomić command
jako superużytkownik, oba działają z narzędziami graficznymi i wiersza poleceń. sudo
jest zwykle używany w interfejsie CLI i gksu
jest graficznym hasłem, które robi to samo.
W pewnym stopniu pozwalają ci stać się root
tymczasowo - znacznie, znacznie lepiej niż ciągłe rootowanie i ryzyko niestabilności.
W standardowym Ubuntu root
logowanie nie jest dozwolone, ani z menedżera logowania GDM (graficznego), ani z konsoli tekstowej (tj. Tej, którą otrzymujesz po naciśnięciu Ctrl+ Alt+ F1).
W celu wykonania root
(czyli administratora) operacje trzeba użyć sudo
polecenia w terminalu lub innego równoważnego GUI nim: to poprosi o swoim hasłem, a następnie wykonać żądanej uprzywilejowaną operację (i tylko jeden).
Przyczyną takiego zachowania jest, jak zauważyli inni, fakt, że wykonywanie root
operacji jest z natury ryzykowne, a liczba operacji wymagających naprawdę root
uprzywilejowanych uprawnień jest stosunkowo niewielka: dzięki takiemu sudo
podejściu przez większość czasu korzystasz z konta nieuprzywilejowanego (tj. Nieszkodliwego do systemu i innych użytkowników) i po prostu uzyskaj root
moc, kiedy jest to naprawdę potrzebne.
Przykład może pomóc w wyjaśnieniu. Załóżmy, że chcesz zainstalować nową usługę (demona) na swoim komputerze; jest to stosunkowo nowe i musisz o nim poczytać i jak skonfigurować go do swoich potrzeb. Skończysz często przeglądając sieć, by znaleźć informacje, przykładowe konfiguracje itp., Może masz jakiś czat IRC z prośbą o więcej informacji - to nie wymaga root
mocy! W końcu potrzebujesz uprzywilejowanego dostępu tylko dla dwóch operacji:
sudo apt-get install ...
) iPowszechnie akceptowaną zasadą bezpieczeństwa komputera jest zawsze używanie najniższego możliwego poziomu uprawnień do wykonywania operacji. - zmniejsza to ryzyko, że stanie się coś złego z powodu błędów w oprogramowaniu lub błędów ze strony operatora.
Domyślna konfiguracja Ubuntu idzie w tym kierunku; gdybyś używał root
loginu, skończyłbyś surfowaniem po Internecie, robiąc IRC (i prawdopodobnie wszystkie inne rzeczy, które jednocześnie robi) z root
konta, niepotrzebnie narażając system na zagrożenie.
Aktualizacja: W twoim przykładzie kompilatora postąpiłbym następująco:
Zaloguj się do węzła za pośrednictwem SSH jako zwykły użytkownik oraz z innego węzła Ubuntu lub GNU / Linux, na którym działa graficzny wyświetlacz X11. Pamiętaj, aby włączyć przekazywanie X11 przez SSH:
ssh -X myuser@remotemachine.example.org
W wierszu poleceń powłoki / SSH wydaj polecenie:
sudo /path/to/the/compiler/install/program
Spowoduje to uruchomienie instalatora kompilatora z root
uprawnieniami i dostęp (poprzez przekazywanie SSH) do wyświetlacza graficznego przed sobą.
Powód używania sudo w Ubuntu można znaleźć tutaj . Jeśli kiedykolwiek potrzebujesz szybkiego sposobu na „rootowanie”, używam sudo -s
lub sudo -i
.
Oprócz gór ostrzeżeń z użyciem korzeń, to może umożliwić logowanie roota logując się i wykonywania wynikających z terminala:
sudo passwd
Najpierw wyświetli się monit o podanie hasła, a następnie prośba o zmianę hasła UNIX. Podane hasło będzie dotyczyło root
konta.
Ubuntu Wiki ma świetny artykuł na głębokości korzeni i sudo wewnątrz Ubuntu - zastrzeżeniami i pułapek.
Tutaj są dwa pytania. Po pierwsze, dlaczego rootowanie jest domyślnie wyłączone w Ubuntu? Zostało to rozwiązane w kilku postach tutaj.
Drugie pytanie brzmi: dlaczego graficzne loginy root są szczególnie zróżnicowane?
Wszystkie wady nielogicznych loginów root dotyczą również graficznych loginów root. Ale kiedy logujesz się graficznie, uruchamiasz o wiele więcej programów, działając w znacznie bardziej skomplikowany sposób, niż gdy logujesz się nielogicznie. Cały graficzny interfejs użytkownika i wszystkie programy graficzne potrzebne do skutecznego korzystania z GUI działałyby jako root. Drobna luka w zabezpieczeniach w dowolnym z nich umożliwiłaby komuś przejęcie pełnej kontroli nad systemem.
Logowanie się jako root nie jest zalecane w Ubuntu, ale społeczność bezpieczeństwa nie ma zgody, że jest to ogólnie zła praktyka. Graficzne loginy root są jednak po prostu złą praktyką i prawie wszystkie systemy operacyjne wycofały je lub zdecydowanie odradzają.
W mniejszym stopniu posiadanie użytkownika innego niż root (zwłaszcza takiego, który może wykonywać operacje jako root z sudo lub PolicyKit) w graficznym logowaniu stanowi ryzyko. Ale są one znacznie bardziej kontrolowane niż wtedy, gdy wszystko w środowisku graficznym musi faktycznie działać jako root z nieograniczonymi możliwościami. Mimo to w sytuacjach, w których bezpieczeństwo jest najważniejsze, zwykle zaleca się całkowite wyeliminowanie interfejsów graficznych, dlatego Ubuntu Server domyślnie nie jest wyposażony w interfejs GUI i oficjalnie odradza jego instalowanie (chociaż jest to obsługiwane) .
W świecie Windows można teraz zainstalować system Windows Server w sposób, który zasadniczo eliminuje graficzny interfejs użytkownika (technicznie niektóre elementy pozostają, ale jest bardzo uproszczony i nie można uruchamiać dowolnych programów graficznych). Opiera się to na tym samym rozumowaniu.
Nawet jeśli zdecydujesz się włączyć logowanie roota, nie loguj się graficznie jako root. Włączenie logowania użytkownika root może spowodować nieznacznie wyższe ryzyko bezpieczeństwa; uruchamianie całego środowiska graficznego jako root naraża Cię na znacznie wyższe ryzyko.
Dodatkowo, z wyjątkiem graficznych narzędzi administracyjnych, które są zaprojektowane do uruchamiania jako root za pomocą gksu / gksudo / kdesudo, większość programów graficznych nie jest przeznaczona do uruchamiania jako root. Ponieważ nie są one dokładnie testowane w tym trybie, mogą zawieść lub zachowywać się nieprawidłowo (co byłoby szczególnie złe, ponieważ działają jako root ).
Wreszcie, nawet niektóre graficzne narzędzia administracyjne, takie jakusers-admin
, przestaną działać, jeśli są uruchamiane jako root, ponieważ spodziewają się, że będą uruchamiane przez zwykłych użytkowników i będą wykonywać działania jako root (bez faktycznego uruchamiania jako root) za pomocą PolicyKit.
Otwórz Terminal ( Ctrl+ Alt+ Tlub Dash home> Więcej aplikacji> Zainstalowane (Rozwiń)> Terminal).
ABY AKTYWOWAĆ KONTO ROOT
W terminalu wpisz lub wklej sudo passwd root
. Wprowadź normalne hasło logowania (jeśli zostaniesz o to poproszony), a następnie zostaniesz poproszony o wprowadzenie nowego root
hasła i potwierdzenie go.
ABY DODAĆ NOWY ZAPYTANIE DO LOGOWANIA, KTÓRE ZEZWALA NA WEJŚCIE DO ROOTA I JEGO HASŁA
W terminalu wpisz lub wklej. gksudo gedit /etc/lightdm/lightdm.conf
. Spowoduje to otwarcie graficznego okna edytora tekstu, w którym możesz edytować plik konfiguracyjny ekranu logowania.
Dodaj linię greeter-show-manual-login=true
na dole pliku.
Plik powinien teraz brzmieć następująco:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
Zapisz lightdm.conf
plik i wyjdź z gedit.
Uruchom ponownie Ubuntu 12.04, a zobaczysz nowe okno „Logowanie” (zastępuje poprzednie okno „Inne”), które umożliwia wprowadzenie nazwy użytkownika i hasła. Wprowadź root
nazwę użytkownika, a następnie hasło przypisane do konta root.
Mam nadzieję, że to pomaga innym, którzy potrzebują / chcą root
dostępu.
tak jak w Ubuntu 12.04 LTS, możesz to zrobić, korzystając z uprawnień roota:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
Następnie zostaniesz poproszony o wpisanie nazwy użytkownika i hasła, aby zalogować się graficznie. Zakładam, że ustawiłeś już hasło roota :)
Wiem, że istnieje niezliczony powód, dla którego nie powinieneś logować się bezpośrednio jako root, jednak zdarzają się rzadkie przypadki (na przykład w polu testowym uruchomionym w vmware), kiedy naprawdę doceniasz poczucie bycia rootem.
Ponieważ użytkownik root i administrator (w systemie Windows) są odpowiednikami boga dla komputera. Ten użytkownik może dostosować wszystko, od uprawnień do plików, a nawet do usuwania całego systemu plików. Przeciętny użytkownik domowy często działa jako administrator (pod tą nazwą lub inną nazwą skonfigurowaną przy pierwszym uruchomieniu). Ponieważ każdy program wykonywany jako ten użytkownik jest ogólnosystemowy, staje się niebezpieczny.
Brak kontroli nad uprawnieniami administracyjnymi pozwala na wirusy / złośliwe oprogramowanie, a nawet na problemy autodestrukcyjne. Z tego powodu wiele dystrybucji, w tym Ubuntu, ograniczyło przejście do wysokiej mocy o dodatkowy krok (nieco poznawczy krok, który pomaga upierać się, że „wszelkie zmiany, które tu wprowadzam, są zmianami o większym zasięgu”).
Chociaż nie możesz zalogować się bezpośrednio jako root (z powodów, które inni już dobrze wyjaśnili), możesz uruchamiać aplikacje GUI jako root. Na przykład System → Administracja → Synaptic Package Manager to aplikacja graficzna działająca jako root.
Aby uruchomić aplikację jako root (aplikacja tekstowa lub aplikacja GUI), wystarczy użyć jednego z następujących poleceń:
sudo name-of-the-application
gksu name-of-the-application
Są prawie identyczne. Główną różnicą jest to, że pierwszy pyta o twoje hasło na terminalu, drugi używa graficznego okna dialogowego.
sudo
i gksu
jest bardziej znacząca niż w przypadku wprowadzenia hasła. gksu
jest preferowany dla aplikacji GUI i sudo
wiersza poleceń, patrz tutaj i tutaj
Root naprawdę nie jest zalecany do normalnego użytkowania, ale czasami masz długą listę poleceń terminalowych, które wymagają uprawnień roota i po prostu wygodniej jest zalogować się jako root. Używam sudo xterm
lub gksu xterm
otwieram terminal root. Myślę, że trochę łatwiej jest rozróżnić, które okno terminów ma uprawnienia roota, gdy masz przydatny monit „root @”.
Uwaga dodatkowa: Ubuntu nie zezwala użytkownikom GUI na logowanie się jako root, ponieważ Ubuntu zapobiega przypadkowemu usunięciu lub usunięciu ważnych plików za pomocą aplikacji GUI (takich jak nautilus).
Dzięki interfejsowi użytkownika CLI można zmniejszyć ryzyko naszego błędu. Ale wcześniej nie mogliśmy zalogować się przy użyciu roota nawet w trybie CLI, ponieważ Ubuntu tworzy losowe hasło do roota. Zadanie administracyjne root można wykonać tylko przy użyciu hasła użytkownika z poleceniem sudo lub gksu.
Opiera się na zasadzie Debiana.
Biorąc pod uwagę, że nie ma dobrych powodów, aby zalogować się jako root , zgaduję, że różnica między RH (zezwalaj na rootowanie) a ubuntu (rób wszystko używając sudo / gksu) jest kwestią preferencji.
Jeśli chodzi o drugą część pytania, powinieneś być w stanie uruchomić instalację graficzną, logując się jako zwykły użytkownik, naciskając ALT-F2
i wchodząc gksu
. W wyświetlonym oknie dialogowym wpisz polecenie uruchamiające instalator.
Zawsze powinieneś zalogować się jako użytkownik, a następnie sudo, aby wykonać działania jako root. System Ubuntu jest skonfigurowany tak, aby domyślnie umożliwiał ci większość dostępu. Drobne zmiany zajmą się resztą (jak dodanie Twojego przyzwyczajonego do innych grup). Logowanie się jako root jest uważane za złą praktykę. Najlepszą praktyką w branży jest tutaj domyślna konfiguracja.
Ktoś, kto może zalogować się jako root, może być bardzo zły z punktu widzenia bezpieczeństwa.