Zainstalowałem Ubuntu na swoim komputerze. Aby się zalogować, używam nazwy użytkownika i hasła, które utworzyłem podczas instalacji. Czy to oznacza, że jestem użytkownikiem root? Jeśli tak, to jak mogę stać się rootem? Wygląda na to, że użytkownik inny niż root jest bezpieczniejszy niż użytkownik admin.
sudo
root
users
privileges
administrator
Imię Nazwisko
źródło
źródło
sudo
. Mówiąc bardziej ogólnie, administrator (lub w inny sposób upoważniony użytkownik) X może działaćcommand...
jako Y zsudo -u Y command...
. W systemie Windows Vista i nowszych, przy włączonym UAC , użytkownicy z uprawnieniami administracyjnymi uruchamiają programy bez nich , z wyjątkiem sytuacji, gdy wyraźnie autoryzują program, który dziedziczy ich umiejętności. Uruchom jako Administrator pojawia się, gdy UAC jest włączony (lub dla ograniczonych użytkowników).Odpowiedzi:
Jesteś administratorem, ale nie jesteś
root
.root
Użytkownik może nic zrobić. Administratorzy mogą wykonywać działania jakoroot
, ale zwykle to, co robią administratorzy, nie jest wykonywaneroot
. W ten sposób masz pełną kontrolę nad własnym systemem, ale tylko wtedy, gdy zdecydujesz się go używać.Ubuntu prosi o podanie hasła, gdy próbujesz robić różne rzeczy
root
, aby upewnić się, że to naprawdę Ty.Konta użytkowników: ludzkie i inne
Prawdziwi użytkownicy mają konta użytkowników do ich reprezentowania. Utworzyłeś jedno takie konto podczas instalacji Ubuntu. Ale nie wszystkie konta użytkowników reprezentują prawdziwych użytkowników .
Prawdziwym użytkownikom przypisuje się (i odmawia) zdolności za pośrednictwem ich kont użytkowników. Muszą używać swoich kont użytkowników, aby korzystać z systemu; dlatego mają do nich zastosowanie możliwości i ograniczenia ich kont użytkowników.
Konta użytkowników służą również do kodyfikacji zestawów umiejętności i ograniczeń. Niektóre konta użytkowników - w rzeczywistości, chyba że masz wielu ludzkich użytkowników maszyny - istnieją, aby niektóre programy lub polecenia mogły być uruchamiane z ich tożsamością, tożsamością o odpowiednich możliwościach i ograniczeniach dla zadania.
Na przykład
www-data
użytkownik istnieje, więc jeśli uruchamiasz serwer WWW, jest on właścicielem danych, które serwer udostępnia. Żaden prawdziwy użytkownik nie musi być upoważniony do wprowadzania niekontrolowanych zmian w tych danych, a serwer WWW nie musi być upoważniony do wykonywania żadnych czynności niepotrzebnych do obsługi Internetu. W związku z tym zarówno dane sieciowe, jak i reszta systemu są bardziej zabezpieczone przed przypadkowym lub umyślnym uszkodzeniem, niż gdyby serwer sieciowy był uruchamiany przez jakiegoś człowieka, który posiadałby wszystkie uprawnienia serwera WWW (i którego uprawnienia serwer WWW miałby posiadać).Najważniejsze konto użytkownika innego niż człowiek
Superuser , którego nazwa jest
root
, jest nie-ludzka konto użytkownika o bardzo specyficznej kombinacji umiejętności i ograniczeń: wszystkie możliwości, a nie ograniczenia .root
„y wolno nic robić. Wciąż są rzeczy,root
których nie można zrobić, ponieważ sam system nie może ich wykonać ani nadać im sensu. Więcroot
nie można zabić procesu, który jest w nieprzerwanym śnie , ani uczynić skały zbyt ciężką, aby się poruszać, a następnie przenieść ją .Wiele ważnych procesów systemowych, takich jak
init
uruchamianych jakoroot
iroot
służy do wykonywania zadań administracyjnych.Czy mogę się zalogować jako
root
?Możliwe jest skonfigurowanie
root
konta, aby można było zalogować się przy użyciu hasła, ale domyślnie nie jest włączone w Ubuntu. Zamiast tego, można myślećroot
jako jakwww-data
,lp
,nobody
i innych kont niż ludzkie. (Uruchomcat /etc/passwd
lub,getent passwd
aby zobaczyć je wszystkie.)Ludzcy użytkownicy logują się przy użyciu własnych kont użytkowników, a następnie, jeśli jakieś zadanie ma zostać wykonane przy użyciu innego konta użytkownika, powodują, że zadanie wykonuje się z tą tożsamością , bez faktycznego zalogowania się jako ten użytkownik.
Możliwe jest skonfigurowanie innych użytkowników innych niż ludzie, na przykład
www-data
, aby można było się również zalogować. Jest to jednak dość rzadkie, podczas gdy w niektórych innych systemach uniksowych często loguje się jakroot
w terminalu . Ryzyko związane z prowadzeniem cały interfejs graficzny wroot
połączeniu z ilu graficzny programy nie są przeznaczone do pracy jakroot
i może nie działać poprawnie, oznacza to, że nigdy nie należy próbować uzyskaćroot
-owned sesji pulpitu .Należy pamiętać, że podczas logowania, jak
root
jest domyślnie wyłączona w Ubuntu, istnieją sposoby, aby uzyskaćroot
powłokę bez uwierzytelniania jakoroot
, które wytwarzają podobny efekt: najczęściej sąsudo -s
albo-i
, tryb odzyskiwania i podobne techniki . (Nie martw się, jeśli nie wiesz, co to takiego.) To nie jest logowanie: w trybie odzyskiwania możesz sięroot
zalogować, zanim nastąpi logowanie; zsudo
metodami opartymi na systemie , po prostu uruchamiasz powłokę jako root.Administratorzy
W Ubuntu administratorzy to użytkownicy, którzy mogą robić, co chcą
root
, kiedy tylko zechcą .Ustawienia systemowe> Konta użytkowników. „Eliah Kagan” jest administratorem, więc może robić rzeczy jako
root
, ale nie jestroot
.Jestem administratorem mojego systemu Ubuntu. Kiedy uruchamiam programy, zwykle działają one jako
ek
(„Eliah Kagan” to pełna nazwa odpowiadająca nazwieek
użytkownika).Kiedy uruchamiam AbiWord lub LibreOffice, działa jako
ek
. Kiedy uruchamiam Firefox, Chromium, Empathy lub Pidgin, działa jakoek
. Programy działające w celu zapewnienia interfejsu pulpitu działają jakoek
.Jestem jednak administratorem, więc jeśli muszę wykonać zadanie administracyjne, mogę to zrobić.
sudo
W wierszu poleceń zwykle używałbym
sudo
polecenia do uruchomienia jakoroot
:Będzie to skłonić mnie do mojego hasła. (To nie
root
jest hasło;root
nie ma.)root
. W domyślnej konfiguracji muszę wprowadzić moje hasło, aby to zrobić.root
, nawet po wprowadzeniu hasła.sudo
polecenia zakończą się niepowodzeniem, jeśli uruchamiający je użytkownik nie jest administratorem.Ponieważ administratorzy są całkowicie zwykłymi użytkownikami, z wyjątkiem możliwości wykonywania akcji as
root
, uruchomienie polecenia wymagającegoroot
uprawnień nadal nie powiedzie się, z wyjątkiem sytuacji, gdy polecenie zostanie uruchomione jakoroot
.Zrzut ekranu ilustrujący potrzebę
sudo
wykonywania zadań administracyjnych. (Na podstawie "sandwich" przez Randall Munroe ).sudo, graficznie
Programy graficzne mogą działać jako
root
pośrednictwem interfejsów graficznych dlasudo
takich jakgksu
/gksudo
akdesudo
. Na przykład, aby uruchomić GParted tak,root
jakbym mógł uruchomićgksudo gparted
. Następnie zostaniesz poproszony graficznie o podanie hasła.Ponieważ pojawia się monit graficzny, nie musi istnieć terminal. Jest to jeden ze sposobów uruchamiania narzędzi administracyjnych
root
.Polkit
Polkit (niegdyś znany jako PolicyKit) to kolejny sposób dla administratorów na robienie takich rzeczy jak
root
. Program uzyskuje dostęp do usługi wykonującej akcję. Czasami akcja uruchamia cały program; czasami akcja jest bardziej ograniczona.Obecnie wiele graficznych narzędzi do administrowania systemem jest skonfigurowanych tak, aby domyślnie korzystały z pakietu polkit, a nie z nich
sudo
.Jednym z przykładów takiego narzędzia jest Centrum oprogramowania. W pełni wykorzystuje polkit, wymagając od użytkownika wprowadzenia hasła tylko wtedy, gdy chce zrobić coś , co wymaga
root
uprawnień. (Jest to możliwe również przysudo
uwierzytelnianiu opartym na danych, ale jest trudniejsze i trudniejsze do osiągnięcia).W Centrum oprogramowania mogę znaleźć i przeczytać o aplikacji; wtedy jestem proszony o podanie hasła, kiedy chcę je zainstalować.
Czym różni się polkit
Dowolny program graficzny może być uruchamiany
root
zgksudo
innymisudo
interfejsami graficznymi . (Program może nie działać zbyt dobrze, w zależności od tego, czy ma być używany jakoroot
. Ale polecenie uruchomienia programu zostanie wykonane jakoroot
.)Podczas gdy polkit jest teraz bardziej powszechny niż
sudo
nakładki GUI jako sposób, w jaki aplikacje na Ubuntu wykonują działaniaroot
za kulisami, polki uruchomi aplikację graficzną tylko tak,root
jakby istniał plik konfiguracyjny pozwalający na to i wskazujący, jakie akcje można wykonać .Polkit, nie graficznie
pkexec
to komenda używana do uruchamiania programu z polkit.Podobnie
sudo
,pkexec
można uruchamiać polecenia nie graficzne. (I nie wymaga pliku konfiguracyjnego określającego możliwości polecenia - po prostu uruchamia polecenie jakoroot
.)pkexec
monituje o hasło w formie graficznej, nawet jeśli jest uruchamiane z terminala (jest to jeden ze sposobów, w których jego zachowanie jest bardziej podobnegksudo
niż uruchamianie prostosudo
).(Jeśli nie ma GUI - na przykład, jeśli jesteś zalogowany z wirtualnej konsoli lub sesji SSH w trybie tekstowym lub GUI nie działa poprawnie - wtedy
pkexec
z wdziękiem się pogorszy i poprosi o podanie hasła w wierszu poleceń .)Po pomyślnym przeprowadzeniu uwierzytelnienia polecenie jest uruchamiane w terminalu.
Uruchamianie poleceń jak inni użytkownicy
root
root
jest wyjątkowy, ponieważ robi wszystko, co można zrobić. Ale jest to konto użytkownika jak każde konto, a sposoby uruchamiania poleceń jakroot
wsudo
(bezpośrednio lub z graficznym interfejsem użytkownika) lub polkit można nieznacznie zmodyfikować, aby uruchomić polecenie jak każdy inny użytkownik:Co? Po prostu piszesz
sudo
pierwszy? Jak to bezpieczeństwo ?!Uruchamianie poleceń za pomocą
sudo
przypomina przywoływanie papieskiej nieomylności .Kiedy uruchomisz polecenie z
sudo
[wywołaj nieomylność papieża] , Ubuntu [lud katolicki] stara się upewnić, że naprawdę jesteś [naprawdę papieżem].Tak, wiem, że nieomylność papieża (nawet gdy jest normatywna) jest deklaratywna; równoległość nie jest idealna.
Próba zrobienia czegoś takiego jak
root
przy pomocysudo
(lub polkit) to wielka sprawa - Ubuntu nie tylko pozwoli, aby przesuwało się to tak samo, jak przy innych uruchomieniach programu.Zostaniesz poproszony o podanie hasła. (To, co zrobiłeś, zostaje zapamiętane na krótki czas, więc nie musisz ciągle wprowadzać hasła podczas administrowania systemem.)
Oprócz przypomnienia o ostrożności należy zabezpieczyć się przed dwoma scenariuszami:
root
(co obejmuje wszystko instalowane przez menedżera pakietów, takich jak LibreOffice), ani zmieniać systemu na głębokim poziomie.Słyszałem o
su
. Co to jest? Czy mogę tego użyć?su
uwierzytelnia się jako inny użytkownik i uruchamia polecenie (lub uruchamia interaktywną powłokę). Można ograniczyć, kto może używaćsu
, alesu
uwierzytelnia się przy użyciu hasła do konta docelowego , a nie hasła uruchomionego użytkownika.Na przykład działa jako nazwa użytkownika , podobnie jak .
su username -c 'command...'
command...
sudo -u username command...
Ale kiedy uruchomisz polecenie tak jak w
username
przypadkusudo
, wprowadź hasło . Kiedy uruchomisz polecenie jak wusername
przypadkusu
, wprowadźusername
hasło .Ponieważ
su
wykonuje uwierzytelnianie dla użytkownika docelowego ,su
możesz uruchamiać polecenia tylko jako użytkownicy, których konta są włączone .root
Konto (jakwww-data
inobody
) jest domyślnie wyłączona. Nie ma hasła, które będzie działać, aby zalogować się jakoroot
. Dlatego nie można używaćsu
do uruchamiania poleceń jakoroot
.Państwo może używać
su
do wykonywania poleceń jako inny użytkownik, który może zalogować się (który zazwyczaj zawiera wszystkie konta użytkowników w systemie, które reprezentują ludzi).Po zalogowaniu jako gość nie możesz w ogóle korzystać
su
.Łączenie
su
isudo
Ktoś, kto nie jest administratorem, może nawet
su
uruchomićsudo
jako administrator. (Jest to OK, ponieważ potrzebują hasła administratora, aby uruchamiać polecenia jako administrator.) Oznacza to, że ograniczony użytkownik może użyćsu
polecenia,sudo
aby uruchomić polecenie jakoroot
. Może to wyglądać następująco:(Uruchamianie programów graficznych w ten sposób wymaga specjalnej uwagi ).
Czy nie
su
byłoby bezpieczniejszym sposobem uruchamiania poleceń jakoroot
?Prawdopodobnie nie.
Co jeśli użytkownik nie powinien mieć możliwości działania
root
?Ustaw je jako ograniczonego użytkownika zamiast administratora.
Co zrobić, jeśli program pracuje jako administrator stara się
sudo
doroot
?Jeśli nie zostanie ponownie skonfigurowany w
sudo
celu umożliwienia powodzenia bez hasła, zakończy się niepowodzeniem.Czy program, który nie powinien być uruchamiany jako
root
piggyback dla ostatniegosudo
polecenia, nie wymaga hasła?To bardzo mało prawdopodobne, aby się udało. Obecnie większość systemów operacyjnych (w tym Ubuntu)
sudo
skonfigurowała się domyślnie, tak aby znaczniki czasu były stosowane tylko w określonym kontekście.Na przykład, jeśli uruchomię
sudo ...
na jednej karcie Terminala i pomyślnie się uwierzytelnię,sudo
na innej karcie (lub uruchamiany przez niepowiązany program GUI lub uruchamiany z konsoli wirtualnej lub sesji SSH) nadal będzie monitowany o hasło. Nawet jeśli jest uruchamiany natychmiast potem.Czy program działający jako użytkownik X nie ma dostępu do hasła użytkownika X?
Nie.
Jeśli złośliwy program może działać jako administrator, czy nie może „wsłuchiwać się” w to, co jest wpisywane, gdy administrator uwierzytelnia się za pomocą
sudo
lub uruchamia polkit?Potencjalnie tak. Ale wtedy może „podsłuchiwać” wpisane hasło
su
.Jeśli powiem komuś moje hasło -
Nie podawaj ludziom swojego hasła.
Co jeśli ktoś musi znać moje hasło, aby zrobić coś w moim imieniu, ale nie chcę pozwolić mu na administrowanie systemem?
Idealnie powinny mieć osobne konto użytkownika, które pozwala im robić to, co trzeba. Na przykład może udostępniać pliki między kontami, umożliwiając wielu użytkownikom pisanie na nich, jednocześnie odmawiając dostępu innym użytkownikom.
Jednak w sytuacji, gdy mniej zaufana osoba może uzyskać zezwolenie na udostępnienie konta, powinno to być konto użytkownika z ograniczonym dostępem. Możesz w tym celu utworzyć osobne konto (co ma sens - jeśli jest to konto dla ciebie i kogoś, kogo chcesz mieć inne możliwości, powinno to być inne konto).
Tak, to najbardziej bezpieczne rzeczą jest, aby nie pozwolić zarówno
sudo
asu
i ludzie zalogować się jakoroot
ręcznie?Nie, ponieważ istnieją poważne wady związane z umożliwieniem użytkownikom zalogowania się w
root
ogóle. O ile to możliwe, należy podjąć jak najmniejszą liczbę działańroot
. Nawet większość czynności związanych bezpośrednio z administrowaniem systemem (np. Przeglądanie konfiguracji użytkowników i odczytywanie dzienników) zwykle nie wymagaroot
uprawnień.Ponadto, podobnie jak potencjalnie złośliwy program może obserwować, co ktoś wpisuje podczas uruchamiania
sudo
lubsu
, lub utworzyć fałszywe hasłosudo
/su
monit, potencjalnie złośliwy program może również stworzyć fałszywy ekran logowania.Co sprawia, że użytkownik jest administratorem?
Członkostwo w grupie.
W systemie Ubuntu 12.04 i nowszych administratorzy są członkami grupy o nazwie
sudo
.W systemie Ubuntu 11.10 i wcześniejszych administratorzy są członkami grupy o nazwie
admin
.Gdy system Ubuntu przed 12.04 zostanie zaktualizowany do wersji 12.04 lub nowszej,
admin
grupa jest zachowywana w celu zachowania kompatybilności wstecznej (i nadal zapewnia użytkownikom uprawnienia administracyjne), alesudo
grupa jest również używana.Konta z ograniczoną liczbą użytkowników
Czy mogę korzystać z konta użytkownika z ograniczonym dostępem zamiast konta administratora?
Jeśli chcesz, na pewno. Utwórz konto użytkownika z ograniczeniami w Ustawieniach systemu > Konta użytkowników i zaloguj się jako ten użytkownik.
Czy mogę ustawić moje konto administratora jako ograniczone konto użytkownika?
Tak, po prostu usuń go z grup
sudo
iadmin
(patrz wyżej).Należy jednak upewnić się, że istnieje co najmniej jedno inne konto administratora, aby można było administrować systemem. Jeśli nie, musisz uruchomić komputer w trybie odzyskiwania lub na dysku CD i ponownie ustawić administratora jako administratora . (Jest to podobne do resetowania utraconego hasła administratora ).
Graficzne narzędzia do administrowania użytkownikami i grupami zwykle powstrzymują cię przed tworzeniem systemu bez administratorów lub przynajmniej ostrzegają. Narzędzia wiersza poleceń zwykle tego nie robią (ufając, że wiesz, co robisz).
źródło
root
robić wszystko” za pomocąsudo
i PolicyKit. Administrator może nawet włączyćroot
konto i zalogować się. Jeśli wyodrębnisz konto użytkownika jako kombinację działań mechanistycznych i świadomych, użytkownicy zarówno użytkownicy, jak i użytkownicy niebędący ludźmi, będąroot
działali wyłącznie mechanicznie. Jeśli rozumiesz, jak to wszystko działa, to jeśli twoja analogia to potwierdza, świetnie! Ale nie sądzę, że tak naprawdę oddaje relację root-admin.root
Batman. Różnica polega wyłącznie na konstruowaniu tożsamości. Bruce Wayne może zostać Batmanem, kiedy tylko chce i robić prawie wszystko, ale zawsze będzie Bruce Wayne pod maską. Mimo to Batman jest tym, kim naprawdę jest - postać Bruce'a Wayne'a to pomysł, który chroni go przed konsekwencjami bycia Batmanem. Przedstawiając się jako Wayne w życiu codziennym, często może chronić siebie i swoich bliskich przed własnymi błędami, wadami systemu i złośliwym oprogramowaniem Gotham City.Nie ma czegoś takiego jak głupie pytanie;)
Mam nadzieję, że to trochę wyjaśnia:
W Ubuntu można utworzyć dwa różne typy kont użytkowników: konta standardowe i konta administratora . Różnica między nimi: konto standardowe nie może dokonywać żadnych ważnych zmian w systemie poprzez uzyskanie dostępu do konta root, podczas gdy konto administratora może używać swojego hasła do wprowadzania zmian jako użytkownik root. Sam użytkownik root jest jednym z wielu użytkowników utworzonych przez system, których zwykle nie widzisz ani nie zauważasz, i nie możesz się zalogować (domyślnie tak czy inaczej). Jeśli jesteś zalogowany na konto typu administrator, możesz zostać tym rootem za pomocą
sudo
polecenie w terminalu i możesz wpisać hasło, aby zainstalować oprogramowanie, wprowadzić zmiany systemowe itp. Jeśli jesteś zalogowany jako użytkownik standardowy, nie możesz tego zrobić.źródło
sudo
We wszystkich systemach Linux Aby dokonać jakichkolwiek zmian w systemie, musimy zostać uwierzytelniony jako użytkownik root, a także aby zastosować wszystkie zmiany, musimy być użytkownikiem root.
Zwykli użytkownicy nie mogą zastosować zmian w całym systemie. Jest to zaleta systemu Linux w porównaniu z oknami.
Jeśli zostanie przeprowadzony jakikolwiek atak, będzie to dotyczyć tylko tego obszaru w systemie Linux / Unix, ponieważ atakowanie lub modyfikowanie pozostałych obszarów wymaga uprawnień roota, ale w systemie Windows, jeśli jedno miejsce zostało zaatakowane, wpłynie to na cały system.
Dlatego tylko w wielu pytaniach, jeśli jakikolwiek użytkownik nie poprosił o hasło roota, ostrzeżymy go, ponieważ nie jest to zalecane ze względów bezpieczeństwa i pozostawiamy wybór.
Jeśli chcesz zmienić się w użytkownika root, sudo może ci pomóc.
Jeśli chcesz uruchomić aplikację jako użytkownik root, możesz sudo.
Zawsze lepiej jest uruchomić system jako użytkownik inny niż root.
źródło
Konto utworzone podczas instalacji jest kontem administratora .
W systemie Ubuntu konto root nie ma hasła, w związku z czym nie można zalogować się jako
root
użytkownik. Istnieją sposoby na obejście tego, ale jest to ustawienie domyślne.Konto administratora w systemie Ubuntu oznacza, że użytkownik jest dodawany do grupy
sudo
, dzięki czemu konto kwalifikuje się do tymczasowego uzyskiwania wcześniejszych uprawnień za pomocąsudo
polecenia. PolicyKit może zażądać eskalacji uprawnień, pytając o hasło administratora. (Musisz wybrać użytkownika administratora i podać hasło do tego konta).Aby potwierdzić, że są to prawda:
Otwórz terminal i spróbuj zaktualizować indeks pakietu oprogramowania.
apt-get update
to polecenie użyte do tego, a to wymaga uruchomienia jako root. Działa tylko wtedy, gdy zalogujesz się jako root lub wykonasz go jako root przy użyciu eskalacji uprawnień. Administrator może uruchomićsudo apt-get update
, uwierzytelniając się wsudo
mechanizmie, który umożliwia uruchamianie poleceń jak każdy użytkownik. Standardowy użytkownik nie będzie mógł tego zrobić.Otwórz konta użytkowników w Ustawieniach systemu i spróbuj dodać nowego użytkownika. Stosowanym tam mechanizmem ochrony jest PolicyKit. Administratorzy będą mogli uwierzytelniać i zwiększać uprawnienia, ale zwykli użytkownicy będą blokowani. Aby kontynuować, wymaga hasła „administratora”.
Oto jak sprawdzić, czy twoje konto jest administratorem, czy nie:
Administrator
pod nazwą konta w obu oknach dla kont administratora iStandard
dla zwykłych użytkowników.źródło
Nie.
użytkownik, za pomocą którego logujesz się do Ubuntu, nie jest użytkownikiem administracyjnym (użytkownik administracyjny w terminologii Linuksa nazywa się root)
źródło
root
przypadkusudo
PolicyKit).sudo
dostęp może być ograniczony przez program, który próbujesz uruchomić jako root, co sprawia, że jest znacznie bardziej niewyraźny.root
przypadkusudo
. Administratorzy mogą uruchamiać dowolne polecenia jak wroot
przypadkusudo
. Domyślnie nikt inny nie może uruchamiać żadnych poleceń jakoroot
(lub jakikolwiek inny użytkownik)sudo
. Ponadtosudo
jest tylko jednym mechanizmem wykonywania działań jako root - wsudo
dzisiejszych czasach ludzie często myślą, że tak naprawdę to często PolicyKit.