Polecenia su i su - są używane do przełączania na inne konto użytkownika w systemach Unix/Linux, najczęściej na konto superużytkownika (root). Istnieje jednak istotna różnica między nimi, która wpływa na środowisko, w jakim pracuje użytkownik po przełączeniu konta.
Polecenie su (skrót od substitute user lub switch user) zmienia użytkownika na wskazany, domyślnie na root, ale nie inicjuje pełnego środowiska użytkownika docelowego.
Środowisko użytkownika, takie jak zmienne środowiskowe (PATH, HOME), nie zostaje w pełni zmienione na to, które przynależy do nowego użytkownika. Nadal korzystasz z niektórych ustawień swojego bieżącego użytkownika.
To polecenie jest często używane, gdy chcesz szybko przełączyć użytkownika, ale zachować dostęp do niektórych ustawień bieżącego użytkownika.
Przykład:
su
Po wpisaniu hasła dla użytkownika root, pozostajesz w bieżącym katalogu roboczym, a ścieżki i inne zmienne środowiskowe mogą nie być w pełni zgodne z kontem root.
su -
Polecenie su - również przełącza na innego użytkownika, domyślnie na root, ale dodatkowo inicjuje pełne środowisko użytkownika docelowego.
To oznacza, że zmienne środowiskowe, katalog domowy, ścieżki (PATH) itp. są ustawiane tak, jakbyś zalogował się bezpośrednio na konto nowego użytkownika (np. root).
Jest to zalecany sposób przełączania się na konto root, gdy chcesz pracować w pełnym środowisku tego użytkownika, na przykład w celu wykonywania administracyjnych zadań systemowych.
Po wpisaniu hasła zostaniesz przeniesiony do katalogu domowego użytkownika root (/root), a wszystkie zmienne środowiskowe zostaną ustawione zgodnie z domyślnymi ustawieniami tego konta.