Widziałem wiele komentarzy tutaj w Ask Ubuntu, dotyczących preferencji w używaniu sudo -s
zamiast sudo su
.
Dla mnie te dwa polecenia robią dokładnie to samo. Ale dlaczego sudo -s
ma być lepiej?
command-line
sudo
su
fitojb
źródło
źródło
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/...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
lubsudo -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, ...).
źródło
Ponieważ
sudo -s
nie zmieni twoich zmiennych środowiskowych, szczególnie$HOME
, które pozostanąHOME=/home/USER
. Jeśli użyjeszsudo 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
vsgksudo
podczas uruchamiania programów graficznych.źródło
Oprócz wspomnianych już różnic w zmiennych środowiskowych, uważam
sudo su
głupie i marnotrawstwo, ponieważ prosiszsudo
o uruchomieniesu
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.źródło
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 isudo 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:
spowoduje to zalogowanie się i przejście do ścieżki domowej, nawet jeśli użytkownik nie ma przypisanej powłoki
źródło