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 (HOME
SHELL
USER
, 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ą -i
sudo
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.