Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Linux: Administrator dziś i kiedyś.

Na wortalu dobreprogramy.pl w wielu komentarzach osoby zamieszczają sugestię, że to właściwie root jest administratorem w Linuksie i porównują go do administratora w Windows. Nie pokuszę się nawet o przytoczenie tego definicji tego terminu, gdyż za wikipedią właśnie root jest administratorem.

Ponieważ jednak muszę się na czymś oprzeć, to napiszmy, że administrator jest użytkownikiem, który może uruchamiać dowolne programy - również te, które ingerują w system. Nie jest przy tym powiedziane, jak taka procedura miałaby wyglądać: jeżeli ktoś uzyskałby taką możliwość w nieautoryzowany sposób, to nie będzie administratorem.

Oczywistym jest, że root ma prawo do ingerencji wszędzie w domyślnych ustawieniach wielu dystrybucji(na pewno nie tych do celów wojskowych). Jeżeli komuś to nie odpowiada, to może użyć SeLinux.
Możliwe jest więc ograniczenie praw root-a, pewne systemy są projektowane w ten sposób, jednak większość desktopów nie.

W przeciwieństwie do wielu Uniksów, to w Linuksie(prócz Ubuntu i może paru innych systemów) root ma prawo się zalogować. Jest to jeden z powodów nie zrozumienia zagadnienia. Jednak w prawie każdej dystrybucji root nie ma prawa się zalogować graficznie, by nie przeglądał internetu na swoim koncie.

Trzeba to ująć tak, że w tym aspekcie Ubuntu jest znacznie lepiej zabezpieczone od wielu innych dystrybucji.

Co w takim razie z graficzną administracją systemem? Otóż, to należy powrócić do dawnych czasów. Kiedyś nie było mechanizmu o wdźwięcznej nazwie sudo. Wtedy wykorzystywano tzw. suid bit-y, co powodowało, że użytkownik posiadający(np. z grupy wheel) odpowiednie prawa mógł uruchomić taki program, a on już pracował w roli root-a. Reszta programów uruchomionych przez użytkownika działało z jego uprawnieniami. Miało to jednak swoje wady: ponoć każde oprogramowanie ma swoje błędy, więc takie podejście było zbyt huraoptymistyczne - wirus mógłby wykorzystać błędy w programie do wyrządzenia szkód.

Nawet bardzo dawno wydzielono już konto dla administratora, który miał prawa uruchamiać programy na uprawnieniach root-a.

W końcu narodził się sudo. Program sudo pozwala, lecz w bardzo ograniczonych możliwościach, ograniczyć listę możliwych parametrów do przekazania poleceniu. Różni się od op tym, że w przypadku op administrator definiuje skrypty-owijki, co wywołują prawdziwe polecenia, a w przypadku sudo można jedynie ograniczyć parametry(lub podać pełny wiersz polecenia).

W Ubuntu korzysta się z sudo nadmiernie. Tylko użytkonicy z grupy admin, w tym użytkiwnik utworzony, jako pierwszy, mają prawo do wykonywania poleceń z użyciem sudo. Charakteryzuje się to dodatkowo tym, że muszą podać swoje własne hasło, a nie hasło sepcjalnego użytkownika do którego w wielu dystrybucjach Linuksa jakimś cudem można się zalogować. Pod Ubuntu natomiast nie zalogujemy się, jako root. W przypadku innych dystrybucji Linuksa instalator wymusza na nas utworzenia konta dla administratora, które jednak nie posiada praw root-a.

Administrator w systemach Unikso-podobnych to dziś nie to samo, co root. Kiedyś było inaczej, lecz te czasy odeszły dawno temu. Można to porównać do administratora w Windows XP i nowszych. Tyle tylko, że te wszystkie wymienione mechanizmy(poza wspomnianym SeLinux) zaczeły powstawać zanim powstał Linux czy jakikolwiek Windows. Dodatkowo, to w Windows XP możliwa jest zmiana jednego klucza w rejestrze, by administrator w Windows XP przypominał bardziej Linuksowego root-a. Możliwe jest wtedy nawet zabicie procesu system, jak root może zabić init. W przeciwieństwie do Linuksa, to nie ma żadnej kontroli dostępu do tego klucza(ma do niego dostęp adminstrator, lecz dowolny program może go sobie zmienić). W Linuksie przynajmniej dostanie się na root-a wymaga podania hasła.

Chciałem udowodnić, że administratorem w Linuksie dziś nie jest korzeń. Ktoś kiedyś wpadł na dziwny pomysł, by można było się zalogować, jako korzeń(ang. root), jednak nie znaczy to, że tak należy postępować i takie założenia bezpieczeństwa mieli twórcy wszystkich dystrybucji. Należy też nadmienić, że Windowsowy admin przeradza się powoli w tego Linuksowego - już w Windows XP były widoczne zmian, a Vista i 7 podążyły tym.

Jako administrator(pierwszy utworzony użytkownik w systemie), bez użycia sudo i innych narzędzi nie możesz:
* Przeglądać plików i zasobów innych użytkowników
* Ingerować w zasoby innych użytkowników
* Kasować pliki, które nie należą do Ciebie
* Modyfikować pliki, które nie należą do Ciebie
* Do administratora należą tylko pliki z jego katalogu domowego, które mają go za właściciela(takie rozumienie dwóch powyższych należy przyjąć)
* Tworzyć nowych pseudourządeń
* Dodawać/usuwać użytkowników w systemie czy grup
* Zmieniać uprawnienia do plików
* Mnóstwa innych
* Właściwie, to jako admninstrator wolno Ci jedynie wszystko to, co wolno użytkownikowi, a poza tym użyć sudo
* Od powyższego punktu są jednak odstępstwa, np. poprzez użycie PolicyKit - można dzięki temu ustawić, by użytkownicy z grupy admin, wheel lub konkretny użytkownk przy pomocy dowlnego lub wskazanego programu mogli np. montować wewnętrzne napędy, zmieniać priorytety procesów systemowych, zabijać procesy systemowe, itd.

Tak więc można napisać, że root jest odpowiednikiem administratora w Windows XP, w którym wystarczy ustawić jeden klucz w rejestrze, by stać się adminem. Natomiast root nie pełni tej samej roli, co administrator w Windows XP. Tę samą rolę pełni użytkownik stworzony, jako pierwszy w naszym systemie, a także może nim być każdy inny użytkownik. W nowszych Windowsach(dzięki m.in UAC) odpowiednikiem Administratora w Linuksie na pewno już nie będzie root, a jakiś użytkownik z grupy wheel lub admin.

Warto nadmienić, że właśnie root ma większe prawa niż administrator, ale taki administrator z krwii i kości, to jakiś inny użytkownik. Nie chciałem zepchnąć root-a poniżej adminsitratora czy pisać, że nie jest admniistratorem(może i jest, ale takim dziwnym, bo ani nie jest programem, ani istotą materialną). 

Komentarze

0 nowych
TheUsh   7 #1 18.07.2010 10:30

Ciekawy artykuł muszę przyznać ;) Dowiedziałem się dzięki niemu czegoś nowego o historii systemów, dzięki :D

przemo_li   11 #2 19.07.2010 13:23

Trochę zagmatwany i przez to ciężki w odbiorze. Ale na prawdę ciekawy.

nintyfan   11 #3 19.07.2010 15:36

Przyznaję.

Skoro nawet Wikipedia twierdzi inaczej niż ja w treści tego artykułu, a w dodatku, to już się przejęło, iż root w Linuksie jest administratorem, to miałem ciężki problem to sprecyzowania.

W każdym razie, to root rzeczywiście ma maksymalnie uprawnień, a w Linuksie można się na niego zalogować. Są nawet systemy, który nie wymagają przypisywania użytkownikom grupy admin, gdyż root ma oddzielne hasło.

Jednak root nie jest kontem przeznaczonym do normalnej pracy, więc nie jest kontem do uruchamiania przeglądarki internetowej, itd. Również instalatory w Linuksie nie wymagają uprawnień root-a(tylko niektóre wymagają).

Soren   8 #4 19.07.2010 17:33

Przyjęło się że root = administrator ponieważ przeważnie osoba "która ma pełną władzę nad komputerem/systemem" jest jego administratorem.

Z technicznego punktu widzenia może nie wszystko się zgadza (i może faktycznie jest tak jak piszesz) jednak ja rozumiejąc idee roota/administratora/pierwszego użytkownika tworzonego w instalatorze ubuntu dla uproszczenia stosuje się do niepisanej zasady root = administrator.

  #5 20.07.2010 00:02

@Plichu zgadzam się, dla mnie root to też administrator. Ale root w linuksie to nie taki admin co w windowsie bo w prawach i możliwościach jest jak user system w windowsach do którego w win XP się logowało z pewną sztuczką a w Vista i 7 to nie wiem już jak jest.

  #6 20.07.2010 03:13

A dlaczego piszesz, że nie można się zalogować na root-a w ubuntu?

wklep: sudo su

  #7 20.07.2010 17:48

@Tomak2 (niezalogowany) | 20.07.2010 3:13 : To nie to samo, gdyż wtedy root nie będzie mieć sesji(np. polecenie logout nie będzie działać).

  #8 05.10.2010 09:40

W Ubuntu _domyślnie_ nie można się zalogować na konto root'a.
Ale wystarczy utworzyć hasło dla tego użytkownika (tj.: sudo passwd root) i można się logować na TTY1-6. Żeby dostać się na X'y należy jeszcze odblokować w GDM'ie (czy też innym manadżerze) możliwość logowania jako root. Także można. Pytanie tylko, po co?

nintyfan   11 #9 06.11.2010 15:56

@fiku (niezalogowany) | 05.10.2010 9:40 :
Właśnie. Root nie jest stworzony do normalnej pracy. Powinno się go używać tylko poprzez sudo i tym podobne. Ubuntu zgabiło podobno brak możliwości zalogowania na root z MacOS X, podobnie ciasteczko w sudo zostało wzięte z MacOS X. Przedtem wiele dystrybucji pozwalała na logowanie jako root.

  #10 23.12.2010 14:04

Ech, Linuszki. Odpowiednikiem roota w Windows jest SYSTEM.

nintyfan   11 #11 23.12.2010 18:25

@Anonim (niezalogowany) | 23.12.2010 14:04 :
Czy ktokolwiek pisał inaczej? Trochę się mylisz, bo root-a też, za pomocą SeLinux i Apparmour można ograniczyć, jednak coś w tym jest, co napisałeś.
Gdzie całkowicie odrzucałem twoją wypowiedź?
Napisałem jasno, że administrator, to użytkownik z grupy wheel, adm lub admin .