Narzędzie su (skrót od substitute lub switch user) pozwala na uruchamianie poleceń z uprawnieniami innego użytkownika, domyślnie użytkownika root.
Użycie su jest najprostszym sposobem na przełączenie się na konto administracyjne w bieżącej sesji logowania. Jest to szczególnie przydatne, gdy użytkownik root nie może zalogować się do systemu poprzez sshor, korzystając z menedżera wyświetlania GUI.
W tym poradniku wyjaśnimy, jak używać polecenia su.
Jak używać polecenia su #
Ogólna składnia polecenia su jest następująca:
su ]
Po wywołaniu bez żadnej opcji, domyślnym zachowaniem su jest uruchomienie powłoki interaktywnej jako root:
su
Zostaniesz poproszony o podanie hasła roota, a jeśli zostanie uwierzytelniony, użytkownik uruchamiający polecenie tymczasowo stanie się rootem.
Zmienne środowiskowe session shell (SHELL) i home (HOME) są ustawiane od wejścia użytkownika zastępczego /etc/passwd, a bieżący katalog nie jest zmieniany.
Aby potwierdzić, że użytkownik został zmieniony, użyj polecenia whoami:
whoami
Polecenie wypisze nazwę użytkownika prowadzącego bieżącą sesję powłoki:
root
Najczęściej używaną opcją podczas wywoływania su jest --l--login). To czyni powłokę powłoką logowania ze środowiskiem bardzo podobnym do prawdziwego logowania i zmienia bieżący katalog:
su -
Jeśli chcesz uruchomić inną powłokę zamiast tej zdefiniowanej w pliku passwd, użyj opcji -s--shell. Na przykład, aby przełączyć się na roota i uruchomić powłokę zsh, wpisałbyś:
su -s /usr/bin/zsh
Aby zachować całe środowisko (HOMESHELLUSER, i LOGNAME) użytkownika wywołującego, wywołaj polecenie z opcją -p--preserve-environment.
su -p
Gdy używana jest opcja --p jest ignorowana.
Jeśli chcesz uruchomić polecenie jako użytkownik zastępczy bez uruchamiania powłoki interaktywnej, użyj opcji -c--command. Na przykład, aby wywołać polecenie ps jako root, wpiszesz:
su -c ps
Aby przełączyć się na inne konto użytkownika, przekaż nazwę użytkownika jako argument do su. Na przykład, aby przełączyć się na użytkownika tyrion należy wpisać:
su tyrion
Sudo vs. Su #
W niektórych dystrybucjach Linuksa, takich jak Ubuntu, konto użytkownika root jest domyślnie wyłączone ze względów bezpieczeństwa. Oznacza to, że dla roota nie jest ustawione hasło i nie można użyć su aby przełączyć się na roota.
Jedną z opcji zmiany na roota byłoby poprzedzenie polecenia su komendą sudo i wpisanie hasła aktualnie zalogowanego użytkownika:
sudo su -
Komenda sudo pozwala na uruchamianie programów jako inny użytkownik, domyślnie użytkownik root.
Jeśli użytkownik ma przyznaną sudo ocenę, polecenie su jest wywoływane jako root. Uruchomienie sudo su - a następnie wpisanie hasła użytkownika daje taki sam efekt jak uruchomienie su - i wpisanie hasła roota.
Po użyciu z opcją -isudo uruchamia interaktywną powłokę logowania ze środowiskiem użytkownika root:
sudo -i
sudo -i to w zasadzie to samo, co uruchomienie su -.
Przewagą używania sudo nad su jest to, że hasło roota nie musi być dzielone między wiele kont użytkowników administracyjnych.
Z pomocą sudo można również zezwolić użytkownikom na uruchamianie tylko określonych programów z uprawnieniami roota.
Wniosek #
su jest narzędziem wiersza poleceń, które pozwala tymczasowo stać się innym użytkownikiem i wykonywać polecenia z użytkownikiem zastępczym.