Z ciekawości chciałbym wiedzieć, dlaczego logując się jako root, nie jestem już w / home / user . Jaki jest powód i co dokładnie robi katalog / root ?
Nie jestem zaawansowanym użytkownikiem. Proszę odpowiedzieć prostymi słowami lub podać link, który zawiera jasne, proste wyjaśnienia. Używam Ubuntu 16.04 i loguję się jako root sudo -i
. Jak wyjaśniono tutaj , sudo -i
ma / root jako home. Chcę wiedzieć, jaki jest powód; czy może być jakaś korzyść? I nie w ~ jak użytkownik sudo -s
.
home
katalog, ale ten nazywa sięroot
sudo -s
aby być w tym samym katalogu użytkownika.man sudo
odpowie na pytanie. Aby być prostym,user -i
należy użyć ustawień użytkownika root, alesudo -s
bieżących ustawień użytkownika.Odpowiedzi:
Nie logujesz się jako root, uruchamiając
sudo
polecenie. Uruchamiasz powłokę z uprawnieniami roota.Jeśli chcesz pozostać w bieżącym katalogu osobistym użytkownika, możesz użyć
sudo -s
zamiastsudo -i
polecenia.cd ~
przeniesie Cię do tego samego katalogu, jakbyś nie był w powłoce z uprawnieniami roota. Dosłownie/home/$USER
.Podczas używania
sudo -i
system działa tak, jakbyś był zalogowany jakoroot
użytkownik. Z tego powoduprzenosi cię do katalogu domowego użytkownika root
/root
./root
katalog to katalog domowyroot
użytkownika.Główną różnicą jest to, że pliki ustawień powłoki, takie jak,
.bashrc
są używane/root
w przypadkusudo -i
i od zwykłego użytkownika w przypadkusudo -s
.źródło
.bashrc
są używane stamtąd w określonej powłoce. W większości przypadków nie ma dużej różnicy./home
nie jest dostępny, problem nie istnieje. Następnie naprawdę logujesz się jako root.Powodem, dla którego dom
root
użytkownika jest/root
i nie/home/root
jest, jest to, że zwykle/home
jest to punkt montowania oddzielnej partycji / woluminu / dysku ... (z różnych powodów, takich jak miejsce na dysku lub zdalne ...)Jeśli z jakiegoś powodu montowanie się
/home
nie powiedzie, możesz nadal łączyć sięroot
i znajdować się w/root
katalogu domowym, aby sprawdzić i naprawić problemyCo więcej, w celu konserwacji, wstępnej konfiguracji, zmiany rozmiaru ... będziesz podłączony tak jak
root
powinien i możesz być w stanie odmontować / ponownie zamontować/home
źródło
root ma / root jako swój dom, a kiedy przełączysz się na root, skończysz w jego domu. Taka jest natura
sudo -i
.sudo -s
robi to samo, ale nie przełącza katalogów. Podręcznik do sudo :Użytkownik root musi być częścią systemu. Gdy umieścisz / home na innej partycji, a root był częścią / home, możesz mieć poważne kłopoty, jeśli partycja nie zostanie zamontowana. Z tego samego powodu my także
i
Kiedy umieścisz / usr na partycji i / usr nie zamontuje się, nadal masz działający system.
źródło
sudo -i
vssudo -s
?System plików Linux ma określoną strukturę. Niezbędne są pliki binarne
/bin/
, pliki modułu ładującego/boot/
, większość plików urządzeń/dev/
, punkty montowania nośników wymiennych/media/
itp.Zobacz https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard .
Niektóre drobne szczegóły mogą się różnić w zależności od dystrybucji (np.
/usr/bin/
Vs./usr/local/bin/
), ale ogólnie prawie wszystkie dystrybucje Linuksa mają tę samą strukturę katalogów.Odpowiedzieć na Twoje pytanie:
Katalogi domowe użytkowników są w
/home/
. Zasadniczo Linux to system operacyjny dla wielu użytkowników. Możesz mieć tylko jedno konto użytkownika na swoim laptopie z jego katalogiem domowym/home/<username>/
, ale jeśli spojrzysz/home/
na udostępniony serwer Linux, zobaczysz wiele katalogów domowych: po jednym dla każdego konta użytkownika. Chodzi o to, że każdy użytkownik systemu ma uprawnienia do zapisu tylko we własnym katalogu domowym. Jeśli masz nazwę użytkownikabob
, możesz odczytywać, zapisywać i usuwać pliki,/home/bob/
ale nie możesz niczego dotykać w/home/alice/
ani w/var/log/
.root
jest jednak inny.root
jest użytkownikiem administracyjnym i ma uprawnienia do zapisu w dowolnym miejscu w systemie (i może działać jako dowolny użytkownik systemu).root
Ma więc sens, że ma specjalny katalog domowy,/root/
ponieważroot
nie jest zwykłym użytkownikiem. Poza tym/root/
jest to zwykły katalog bez specjalnej magii, chociaż jest cicho możliwe (nawet prawdopodobne), że narzędzia systemowe polegają na/root/
tym, że są domem użytkownikaroot
.Kiedy wykonujesz polecenie
sudo -i
w terminalu, przełączasz się z bycia np. Zwykłym użytkownikiembob
na bycieroot
. Zauważ, że ten przełącznik wpływa tylko na okno terminala, w którym wpisałeśsudo -i
. W przypadku menedżera plików nadal jesteś,bob
a jeśli otworzysz inne okno terminala, nadalbob
tam będziesz . W tym kontekście symbol~
jest skrótem dla katalogu domowego bieżącego użytkownika. Dlabob
~
środków,/home/bob/
ale dlaroot
~
środków/root/
.Mam nadzieję, że wszystko to wyjaśni.
źródło
/
. Standardowa lokalizacja została zmieniona ze względów bezpieczeństwa (każdy musi mieć możliwość wyświetlania listy plików/
, aby każdy mógł zobaczyć, jakie pliki kropkowe posiadał użytkownik rootWidzę, że wszyscy odpowiadają, co się dzieje, gdy logujesz się jako root (dostajesz katalog ~, który nie znajduje się w / home), ale nikt nie mówi dlaczego. Dlatego:
Jeśli cała struktura / home staje się bezużyteczna i musisz ją naprawić, lub jeśli musisz zmienić przydział / home, ponieważ brakuje miejsca, musisz to jakoś zrobić. Nie możesz zalogować się jako każdy użytkownik, który ma ~ in / home, ponieważ zawiesisz się, gdy tylko spróbujesz cokolwiek zrobić. Więc użytkownik root ma hir ~ gdzie indziej.
źródło
hir
to literówka. Dzięki za wszystkie informacje! Zalecam, aby formatowanie kodu było trudne, ale to zależy od ciebie.Mówisz, że nie jesteś zaawansowanym użytkownikiem, więc postaram się napisać odpowiedź krok po kroku.
Kiedy używasz Linuksa, musisz pamiętać o kilku ważnych rzeczach:
Linux to system dla wielu użytkowników. Zostało tak pomyślane od samego początku, zgodnie z filozofią uniksową (zwróć uwagę na inne podejście systemu Windows, który został pomyślany jako system dla jednego użytkownika)
Jako system wielu użytkowników, Linux ma możliwość oddzielania plików należących do każdego użytkownika w systemie. Linux to osiąga, przypisując każdemu użytkownikowi podfolder w
/home/
katalogu. Każdy plik użytkownika jest jego własnością i tylko on może go otworzyć, zmodyfikować lub zezwolić innym użytkownikom na korzystanie z nich. I odwrotnie, każdy plik w systemie plików należy do użytkownika i ten użytkownik ma kontrolę nad tym, kto może zobaczyć ten plik lub z niego korzystać. Jak wspomniano w innej odpowiedzi, pierwotnie użytkownicy mogli umieszczać swoje pliki w dowolnym miejscu w systemie, ale w pewnym momencie stało się jasne, że rzeczy powinny być lepiej zorganizowane, a/home/
(„slash-home”) stało się miejscem, w którym powinny znajdować się pliki użytkownika.Są jednak pliki, których potrzebuje sam system i / lub każdy użytkownik w systemie: pliki binarne, pliki urządzeń, pliki systemowe itp. (Pamiętaj: w Linuksie i każdym innym systemie uniksowym wszystko jest plikiem) . Wymagało globalnie pliki są przechowywane w różnych miejscach wzdłuż plików, organizowanych w różnych folderach w katalogu głównym systemu plików :
/
. Te globalnie potrzebne pliki nie należą do konkretnego użytkownika systemu, ale do samego systemu ... ale to może być mylące: kto jest właścicielem plików binarnych? Kto daje uprawnienia na te globalnie potrzebne pliki?Ponieważ każdy plik w systemie „potrzebuje właściciela”, musi istnieć „specjalny użytkownik”, który może administrować plikami potrzebnymi na całym świecie. Co więcej, ten „użytkownik specjalny” może robić rzeczy, których nie może zrobić żaden inny użytkownik w systemie: może tworzyć innych użytkowników dla systemu. Ten użytkownik nazywa się „superużytkownikiem” (dla nas śmiertelników) lub „rootem” (dla systemu).
Teraz ten superużytkownik jest innym użytkownikiem systemu, ale ma uprawnienia (i obowiązki) znacznie przewyższające uprawnienia innych użytkowników: na przykład konserwację. Naturalne jest więc myślenie, że „root” potrzebuje miejsca do umieszczenia swoich rzeczy, ale nie należy tego mylić z rzeczami należącymi do innych użytkowników. Zatem zamiast podfolderu poniżej
/home/
„root” ma swoje własne zarezerwowane miejsce w systemie plików:/root/
(zwane „slash-root”). Pamiętaj: „root” jest bardzo wyjątkowym użytkownikiem, więc potrzebuje specjalnego, uprzywilejowanego miejsca do umieszczenia swoich rzeczy.Teraz Ubuntu nie ma domyślnie włączonego konta root, więc „normalny” użytkownik musi mieć uprawnienia do systemu jako całości. W tym momencie
sudo
uruchamia się polecenie („zmień użytkownika i zrób”): pozwala zwykłemu użytkownikowi (wcześniej znajdującemu się na liście „sudoers”) wykonywać polecenia tak, jakby był innym użytkownikiem, na przykład „root”.Wreszcie,
-i
opcje te oznaczają „symuluj początkowe logowanie”. Oznacza to, żesudo
odczyta dane „profilu użytkownika docelowego” przed wykonaniem danego polecenia. Jeśli nie podasz polecenia,sudo
uruchomi się instancja powłoki z profilem docelowego użytkownika (root) ... i zaczyna się od przejścia do folderu „home” „docelowego użytkownika”. Taksudo -i
przeniesie Cię do zrobienia katalogu domowego roota (/root/
).Mam nadzieję, że to pomoże ci zrozumieć, co się dzieje
sudo -i
.EDYTOWAĆ
Myślę, że zostawiłem coś nieokreślonego, więc dodam je tutaj:
Powiedziałem powyżej: „w Linuksie wszystko jest plikiem”. I mam na myśli to dosłownie! Twoje dokumenty i obrazy to pliki, ale także terminale (te, do których możesz uzyskać dostęp naciskając [CTRL] + [ALT] + [Fn]), a także dyski fizyczne i klawiatura. System uniksowy działa poprzez odczytywanie lub zapisywanie danych z / do plików oraz kierowanie przepływu danych do / z odpowiednich plików w systemie, które reprezentują plik, z którym pracujesz, oraz wprowadzanie wpisywanych klawiszy, i wyjście, które widzisz na ekranie. Niektóre z tych plików mogą być używane bezpośrednio przez użytkowników, ale inne nie; na przykład nie możesz odczytywać ani zapisywać bezpośrednio na dysku twardym, ale musisz pozwolić Linuxowi połączyć normalny, możliwy do przeglądania folder z plikiem urządzenia (poniżej
/dev/
) reprezentującym twój dysk twardy.System plików Linux może obejmować wiele dysków fizycznych . Prostym przykładem jest podłączenie pendriva USB: Linux może zamontować ten dysk (montowanie to proces, w którym system łączy standardowy folder, w którym można zobaczyć pliki w powłoce lub nawigatorze plików, do pliku urządzenia
/dev/
) i możesz z nim pracować, a kiedy skończysz, poprosisz Linuksa o odinstalowanie napędu, a następnie usunięcie go z portu USB. Ważne jest tutaj to, że ten cykl „podłączania - odmontowywania” wpływa na * ten sam system plików, którego używasz na co dzień: nie tworzysz nowego systemu plików za każdym razem, gdy dodajesz lub usuwasz dysk fizyczny, ale dodajesz ten dysk fizyczny do systemu plików ( ponownie porównaj tę filozofię z podejściem Wndowsa).Ponieważ system plików może obejmować wiele dysków fizycznych, staje się oczywiste, że różne pliki systemu można zapisać na różnych dyskach fizycznych. Jeden dysk może przechowywać systemowe pliki binarne (
/bin/
), a drugi może przechowywać pliki użytkownika (/home/
i jego potomków). W konfiguracji z wieloma dyskami często/home/
zapisuje się na innym dysku fizycznym niż/root/
, więc jeśli system się zepsuje, a użytkownicy nie będą mogli się zalogować, ponieważ dysk, na którym/home/
przestaje działać, root może. (Jest to uproszczone ... wiele rzeczy musi zostać skopiowanych na każdy dysk fizyczny, aby umożliwić rootowi zalogowanie się, jeśli żaden inny użytkownik nie może, ale może to dać ogólny pomysł).I ten
~
znak tyldy ( ) ... oznacza katalog domowy bieżącego użytkownika. Jeśli jesteś zalogowany jako „bob”,cd ~
zabierze Cię do/home/bob/
, ale jeśli jesteś zalogowany jako „root”,cd ~
zabierze Cię do/root/
tl; dr Więc teraz myślę, że wszystko zostało powiedziane:
„root” to specjalny użytkownik, którego uprawnienia i obowiązki znacznie przewyższają innych użytkowników
„/ root /” to miejsce, w którym „root” może przechowywać swoje rzeczy, nie ryzykując, że zostaną pomylone z innymi rzeczami należącymi do zwykłych użytkowników. Ten folder można zapisać na innym dysku fizycznym niż
/home/
.sudo -i
uruchamia powłokę symulującą logowanie roota, co oznacza przejście do katalogu głównego roota. Podobnie jak w przypadku każdego innego użytkownika,cd ~
zabierze Cię do katalogu domowego, ale jeśli jesteś rootem, tak będzie/root/
Jeśli system jest zainstalowany na różnych dyskach fizycznych, root może się zalogować i spróbować naprawić problemy, nawet jeśli inny dysk w systemie ulegnie awarii.
źródło
Główny powód, dla którego katalog domowy root'a jest traktowany inaczej:
Kiedy coś pójdzie nie tak, musisz być w stanie wykonać zadania odzyskiwania systemu, gdy tylko zdołasz zamontować system plików /.
W zależności od konfiguracji katalogi domowe użytkowników mogą znajdować się w innym systemie plików lub nawet mogą być montowane w sieci.
Aby zalogować się jako root (tj. Wpisać nazwę root i hasło root po wyświetleniu monitu logowania) z konsoli, wystarczy zamontowany tylko jeden system plików.
(Z tego też powodu podstawowe narzędzia znajdują się w / bin i / sbin zamiast / usr / bin lub / usr / sbin - wszystko w / usr jest zbywalne).
źródło