Skocz do zawartości

Su / Su-


MC'

Rekomendowane odpowiedzi

W wielu postach pojawia się problem polecenia su i su -. Dlatego mam pytanie :

 

"su" to polecenie dzięki któremu możemy się przełączyć na dowolnego użyytkownika systemu (także roota; oczywiście trzeba znać haslo ) zmienia ono UID i GID i zmienne środowiskowe użytkownika. Natomiast reszta środowiska jest taka jaką ma użytkownik spod, którego wydajemy "su" (np. PWD=katalog roboczy, nie zmienia się)

 

"su -" dostaję uprawnienia (_root'a_ → roota) ORT i "dziedziczę jego środowisko pracy "

 

 

To tyle co wiem o tych dwóch poleceniach. Moje pytania są następujące:

1.Co to naczy "dziedziczy środowisko pracy"? (wiem, że chodzi o np. PWD no ale co z tego wynika? Jakie są praktyczne różnice z tego wynikające? na co to wpływa?)

2. Kiedy należy używać "su" a kiedy "su -" ? (nie chodzi oczywiście o wszystkie sytuacje ale o te które najlepiej zobrazują całą różnice)

 

Pozdrawiam

MC'

Odnośnik do komentarza
Udostępnij na innych stronach

Wydając polecenie "su -" dziedziczysz wszystkie zmienne środowiskowe np. zmienną $PATH.

Spróbuj zrobić "su" i wywołać np. "iptables -L" - i co? Nic. A teraz "su -" i wydaj to samo polecenie. No i to jest - oczywiście tylko najprostsza - różnica między polecenie "su" a "su -" :ph34r:

Generalnie chodzi o to, że pewne zmienne globalne są inne dla użytkownika a inne - to oczywiste - dla (_root'a_ → roota) ORT.

 

Nie wiem czy jasno wytłumaczyłem, ale pewnie ktoś coś doda ;)

 

 

Pozdr,

W.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość _PaT
Ja zauważyłem tylko, że jak wpisze "su -" to wiecej komend mi działa, które mi na "su" nie działają :)

Bo tak jak napisał WalDo po samym su nie masz wyeksportowanej zmiennej środowiskowej $PATH z wkompilowaną wartością domyślną, więc jak wpiszesz jakieś polecenie w konsolę to system go nie szuka np. w katalogu /sbin

Odnośnik do komentarza
Udostępnij na innych stronach

zrób tak:

wydaj polecenie su i po zalogowaniu się na roota sprawdź zmienne środowiskowe (polecenie env), potem sprawdź to samo gdy zalogujesz się jako su -, wtedy zobaczysz różnice :)

 

(samą zmienną PATH możesz sprawdzić pisząc: echo $PATH)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...

polecenie su (sktrot od substitute user, a nie zaden superuser jak ostatnio uslyszalem) moze rowniez byc uzyte w stosunku do zwyklego uzytkownika i to w wypadku "su" jaki i "su -" , np.

$ su zbyszek -

spowoduje to ze system otworzy sesje uzytkownika zbyszek (substitute - podszywac sie) tak jakby on sam sie zalogowal na tej maszynie wraz z jego parametrami srodowiskowymi (sciezka dostepu do plikow, eksporty itp), bez "-" rowniez system otworzy nowa sesje jednak w tym wypadku zmienne systemowe pozostana 'nasze' (czyli konta z ktorego wydalismy polecenie "su")

 

polecenie jak widzac bardzo pomocne kiedy chcemy jako administratorzy ustawic danemu userowi odpowiednie parametry srodowiskowe konta,

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...