Jaka jest różnica między logowaniem jako użytkownik a zmianą użytkowników korzystających z su przez root?
17
Kiedy masz jakiś serwer, możesz uzyskać do niego dostęp, np. ssh user1@ipI możesz także ssh root@ipprzejść do użytkownika root z uprawnieniami su, a następnie przejść do su user1. W moim przekonaniu oba te sposoby powinny doprowadzić mnie do tego samego środowiska użytkownika (w tym przypadku „użytkownika 1”), ale z mojego rzeczywistego doświadczenia tak nie jest, ponieważ ssh user1@ipsą zainstalowane rzeczy, których su user1nie ma.
SSH uruchamia powłokę logowania. su, domyślnie nie.
W szczególności oznacza to, że ~/.profile(lub podobny plik) dla tego użytkownika nie jest pozyskiwany. Wprowadzone zmiany ~/.profilenie będą obowiązywać. Może się również zdarzyć, że:
nawet jeśli uruchomisz powłokę logowania, w katalogu root wprowadzono różne zmiany ~/.profile, które mogą zanieczyścić środowisko użytkownika.
/etc/profilei /etc/profile.d/*może stosować ustawienia inaczej dla różnych użytkowników (jednak nie domyślnie)
w konfiguracji SSH mogą obowiązywać różne ustawienia dla różnych użytkowników.
Konfiguracja PAM jest inna. Na przykład /etc/pam.d/sshma:
Oznacza to, że SSH ładuje się ~/.pam_environment, ale sunie. To jest duże, ponieważ ~/.pam_environmentjest niezależnym od powłoki miejscem dla zmiennych środowiskowych i jest stosowane, jeśli logujesz się z GUI, TTY lub SSH.
Nawet w przypadku SSH, jeśli uruchomisz polecenie zamiast uruchamiania powłoki, powłoka logowania nie zostanie uruchomiona (zwróć uwagę na brak ~/bintestu SSH, który jest obecny w su -i sudo -i). Aby uzyskać prawdziwy wynik, uruchomię moją powłokę jako powłokę logowania:
Wydaje mi się, że powinienem się obudzić przed podjęciem pytań :) Twoja odpowiedź jest cudowna, a moja nie trafiła w prawidłową odpowiedź. Dobra robota +1
Videonauth,
-1
Zasadniczo jest to głównie różnica strategiczna.
Jeśli jesteś zalogowany jako superużytkownik, możesz cały czas zmieniać wszystko ... tzn. - nie ma ochrony przed katastrofalnymi błędami, dla bezpieczeństwa musisz tymczasowo zmienić się na innego użytkownika.
Podczas gdy: jeśli jesteś zalogowany z ograniczonymi uprawnieniami, unikasz pewnego ryzyka katastrofalnych błędów, ponieważ musisz celowo przejść do rootowania, aby uzyskać tymczasowy dostęp do tej mocy, ale teraz masz domyślną pozycję awaryjną dla bezpiecznego użytkownika .
Różnica jest więc naprawdę strategiczna, a nie techniczna.
Pytanie nie było dokładnie różnicą użytkownika root od innych użytkowników. Była to różnica między dostępem do użytkownika serwera bezpośrednio przez ssh a dostępem do niego przez su już wewnątrz użytkownika root. W każdym razie zgadzam się z tym, co powiedziałeś, haha dzięki
Miguel Corti
Ach ok, przepraszam ... Właściwie zastanawiałem się, dlaczego wszyscy zajmują się szczegółami technicznymi, chyba źle zrozumiałem waszą intencję.
Zasadniczo jest to głównie różnica strategiczna.
Jeśli jesteś zalogowany jako superużytkownik, możesz cały czas zmieniać wszystko ... tzn. - nie ma ochrony przed katastrofalnymi błędami, dla bezpieczeństwa musisz tymczasowo zmienić się na innego użytkownika.
Podczas gdy: jeśli jesteś zalogowany z ograniczonymi uprawnieniami, unikasz pewnego ryzyka katastrofalnych błędów, ponieważ musisz celowo przejść do rootowania, aby uzyskać tymczasowy dostęp do tej mocy, ale teraz masz domyślną pozycję awaryjną dla bezpiecznego użytkownika .
Różnica jest więc naprawdę strategiczna, a nie techniczna.
źródło