Su vs. SU -

Su vs. SU -
Różnica między Su i dzielnicy Su - Polecenia to Su Polecenie bez argumentów utrzymuje prawie wszystkie zmienne środowiskowe należące do oryginalnego użytkownika. W przeciwieństwie do tego, dzielony Su - Polecenie usuwa większość zmiennych środowiskowych.

Nie mówimy o dwóch różnych poleceń, ale o poleceniu bez konkretnej flagi (łącznik jest flagą) i tym samym polecenie z flagą.

Pisanie su - jest to samo co pisanie su -l; Obie polecenia wyczyści większość zmiennych środowiskowych. Zatem przed kontynuowaniem tego artykułu zobaczmy, czym jest zmienna środowiskowa.

Zmienne środowiskowe w Linux:

Zmienne środowiskowe są wartościami wykorzystywanymi do zdefiniowania charakterystyk środowiska, w którym procesy powłoki i ich procesy dziecięce są wykonywane, na przykład procesy wykorzystują zmienną środowiskową $ Shell, aby poznać powłokę w użyciu (Bash, ZSH itp.).

System ma wiele zmiennych; W tym artykule skupi się na tych zmiennych, których dotyczy użycia Su Komenda.

Aby zobaczyć wszystkie zmienne w systemie, możesz uruchomić eksport polecenie, jak pokazano poniżej.

eksport

Jak widać na zrzucie ekranu powyżej, w naszym systemie jest wiele zmiennych. Skoncentrujemy się na określonych zmiennych DOM, POWŁOKA, UŻYTKOWNIK, Nazwa lognamentu, I ŚCIEŻKA.

Pierwsza zmienna, którą zobaczymy, jest ŚCIEŻKA. Wartości tej zmiennej środowiskowej są przydatne, aby system mógł wiedzieć, gdzie znaleźć polecenia lub programy do wykonania. Zmienna środowiskowa systemu domyślnego systemu ŚCIEŻKA jest zdefiniowane w /itp./Profil plik. Zmienne ścieżki użytkowników znajdują się w ich katalogach domowych pod adresem ~/.profil.

Aby nauczyć się wartości zmiennej środowiska ścieżki, możesz użyć Echo polecenie, a następnie $ symbol i zmienna środowiskowa, którą chcesz sprawdzić, w tym przypadku, ŚCIEŻKA, Jak pokazano w poniższym przykładzie.

Echo $ ścieżka

Jak widać, system zwraca zdefiniowane zmienne środowiskowe, aby nasz system mógł wiedzieć, gdzie szukać i znaleźć polecenia, które chcemy wykonać.

Druga zmienna środowiskowa wyjaśniona w tym artykule jest zmienna powłoki. Wartość tej zmiennej mówi systemowi, jakiego powłoki używamy, jeśli Bash, Zsh, KSH itp.

Aby zobaczyć wartość zmiennej środowiska powłoki, powtórz krok wyjaśniony wcześniej, zastępując $ ścieżkę $ Shell, jak pokazano na zrzucie ekranu poniżej.

Echo $ Shell

I jak widać, skorupa to uderzenie. W ten sposób nasz system wie, jakiego powłoki używamy, z wartością pokazaną powyżej.

Kolejną ważną zmienną środowiskową w Linux jest $ Dom. Ta wartość wskazuje, jaki jest katalog domowy użytkownika. Aby nauczyć się tej wartości, możesz uruchomić poniższe polecenie.

echo $ dom

Wartość zmiennej środowiska $ logName to użytkownik, w którym jesteś zalogowany.

Echo $ logName

Wartość zmiennej środowiska $ użytkownika to identyfikator użytkownika, który jest taki sam jak $ logName.

echo $ użytkownik

Zmienne środowiskowe wyjaśnione powyżej to te, których dotyczy Su polecenie, gdy łącznik lub -L Flaga są dodawane.

Różnica między poleceniami „su” i „su -”:

Różnica między Su polecenie bez flag i Su z łącznikiem lub -L Czy polecenie bez flag utrzymuje zmienne środowiska i zmienia tylko użytkownika.

Gdy jest używany z łączonymi lub -L flaga, większość zmiennych środowiskowych jest oczyszczona.

Następny przykład pokazuje Linuxhint Przełączanie użytkowników na root za pomocą Su bez opcji.

Następnie, po sprawdzeniu zmiennej środowiska $ logName, widzimy, że pozostaje ona jako Linuxhint i nie root.

Su
Echo $ logName

W przeciwieństwie do poprzedniego przykładu, jeśli strzępek zostanie zaimplementowany, zostanie on zaktualizowany do Root podczas sprawdzania zmiennej $ logName.

Su -
Echo $ logName

Spróbujmy tego samego z zmienną środowiska użytkownika $.

Su
echo $ użytkownik

Jak widać, robiąc Su jako Linuxhint Aby zmienić root i sprawdzanie zmiennej $ użytkownika, pozostaje to jako Linuxhint.

W przeciwieństwie do poprzedniego przykładu, jeśli wdrażanie łącznika zmienna $ użytkownika zostanie wyczyszczona i zaktualizowana, jak pokazano poniżej.

Su -
echo $ użytkownik

Aby zakończyć ten samouczek, ten ostatni przykład pokazuje -L flaga robi dokładnie to samo co łącznik.

su -l
Echo $ logName
echo $ użytkownik

Wniosek:

Zmienne środowiskowe to podstawowa koncepcja, jaki każdy użytkownik Linux musi wiedzieć. Gdy zrozumiesz ich funkcję, możesz łatwo zrealizować różnicę między Su polecenie bez i z -L flaga (która jest taka sama jak dzielnica Su). Jeśli podobał Ci się ten samouczek, możesz przeczytać zarządzanie uprawnieniami sudo w Linux.

Mam nadzieję, że ten artykuł pokazuje różnicę między „Su" I "Su -”Był pomocny. Podążaj za tym blogiem, aby uzyskać więcej samouczków i wskazówek Linux.