Odpowiedzi:
Myślę, że sudo -s
nie jest „lepszy”, jest po prostu inny.
sudo -s
przechowuje katalog $ HOME, więc podczas uruchamiania programów będą używać plików konfiguracyjnych (a nie roota) itp. Wada: mogą również zmienić własność plików w katalogu $ HOME, typowym przykładem jest .Xauthority
plik, ale ja nigdy nie doświadczyłem z tym problemu.
sudo su
lub sudo -i
programy będą używać katalogu głównego root i jego plików konfiguracyjnych. Może to być bardziej intuicyjne, ale oznacza również, że nie będzie korzystał z żadnej konfiguracji, którą sam sobie ustawiłeś (aliasy, historia bash, ...).
Ponieważ sudo -s
nie zmieni twoich zmiennych środowiskowych, szczególnie $HOME
, które pozostaną HOME=/home/USER
. Jeśli użyjesz sudo su
tej opcji, zmieni się to, HOME=/root
co może mieć negatywne skutki uboczne, gdy programy zaczniesz próbować uzyskać dostęp do katalogu domowego użytkownika.
Zasadniczo jest to jak sudo
vs gksudo
podczas uruchamiania programów graficznych.
Oprócz wspomnianych już różnic w zmiennych środowiskowych, uważam sudo su
głupie i marnotrawstwo, ponieważ prosisz sudo
o uruchomienie su
jako root, i poprosisz o uruchomienie powłoki jako root. Po co prosić program, aby poprosił program o podanie powłoki roota, skoro pierwszy program może dać ci tę powłokę? Czy ma to jakiekolwiek znaczenie praktyczne? Nie, jestem pedantyczny.
sudo su
rootowania, tak, po prostu idź sudo -i
na przykład. Ale to nie pomaga, gdy chcemy stać się inny użytkownik: sudo su - myuser
.
sudo -i
przejdzie do /root
katalogu i sudo su
pozostanie w katalogu, w którym się znajdujesz.
sudo -u myuser
.
Nie zgadzam się z innymi odpowiedziami, rozważając przypadki, w których chcesz zalogować się jako użytkownik, który nie ma powłoki. Jest to bardzo częsty przypadek użytkowników przypisanych do usług.
Użycie „sudo su” uruchomi powłokę określoną przez użytkownika. Jednak w przypadku użytkownika przypisanego do procesu serwera powłoką jest / usr / bin / false, a logowanie się nie powiedzie. Zamiast tego należy wprowadzić jako:
sudo -sHu <server-user>
spowoduje to zalogowanie się i przejście do ścieżki domowej, nawet jeśli użytkownik nie ma przypisanej powłoki
sudo -i
czysudo su
jest lepszy niżsudo -s
z powodów wymienionych tutaj: ubuntuforums.org/showpost.php?p=6188826&postcount=4 także: jest to możliwe duplikat superuser.com/questions/29/...