Jaka jest różnica między dwoma poleceniami superużytkownika, su -s
a sudo -s
?
Oba dają powłokę z dostępem do konta administratora.
W praktyce oboje uczynią cię superużytkownikiem. Robią jednak nieco inne rzeczy, na nieco inne sposoby.
Po pierwsze, su -
przełącza cię do powłoki logowania, podczas sudo -s
gdy nie. W praktyce często oznacza to, że zmienne środowiskowe nie zostaną przełączone root
na sudo -s
. Pamiętaj, że możesz uruchomić tylko su
po to, aby nie uzyskać powłoki logowania lub sudo -i
uzyskać powłokę logowania [nie we wszystkich wersjach].
Po drugie, su
i su -
przełącznik do nowego użytkownika przez prośbą o uwierzytelnienie jako nowy użytkownik. sudo -s
oraz sudo -i
(i po prostu zwykłe sudo foo
) pozwalają uruchomić polecenie, dla którego masz wstępną autoryzację [patrz /etc/sudoers
], być może prosząc o potwierdzenie aktualnego ID.
Jeśli chcesz być naprawdę słodki, możesz także uruchomić sudo su -
, który poprosi o zalogowanie się jako root ( su -
) prowadzony przez użytkownika root ( sudo
część).
Jeśli użytkownik root jest zablokowany (np. W systemie Ubuntu), nie będzie można zalogować się jako użytkownik root su
. W takim przypadku musisz użyć sudo -s
lubsudo -i
sudo
nie ma domyślnych uprawnień dla zwykłych użytkowników. W tych systemachsu
jest to jedyna opcja.Przełącza się na użytkownika (w tym przypadku root) i uruchomi wskazaną powłokę lub jedną z kilku innych metod określania powłoki. Jest to przydatne, jeśli chcesz używać zsh lub innej powłoki jako root bardzo szybko ... iz jakiegoś powodu nie używasz sudo.
Po prostu wykonuje powłokę za pomocą sudo, co dałoby ci root root. Możesz także przekazać do niej powłokę.
su -s jest starszy, znacznie starszy niż polecenie sudo -s. Domyślam się, że programista stara się maksymalnie ułatwić przejście na sudo.
źródło
su to polecenie zmiany na innego użytkownika w celu uruchomienia powłoki lub wykonania określonego polecenia. Musisz uwierzytelnić się jako drugi użytkownik. Jeśli chcesz su do rootowania, potrzebujesz hasła roota.
sudo to polecenie do wykonania innego polecenia (opcjonalnie powłoki) jako inny użytkownik. Musisz uwierzytelnić się jako własny użytkownik . Zezwolenie na korzystanie z sudo (i konkretne rzeczy, które możesz z nim zrobić) są określone przez administratora w pliku sudoers.
Jeśli dasz komuś dostęp do su (na przykład podając mu hasło roota), może on zrobić z nim wszystko - uruchomić inne polecenia, otworzyć powłokę, zmienić hasło, zalogować się zdalnie przez ssh i tak dalej. Zasadniczo dajesz im dostęp do drugiego konta, a „su” jest tylko jedną rzeczą, którą mogą z tym zrobić.
sudo jest znacznie bardziej drobnoziarnisty. Możesz przyznać uprawnienia użytkownikowi lub grupie. Możesz zezwolić użytkownikowi lub grupie na sudo w określonych ramach czasowych (np. Od poniedziałku do piątku w godzinach od 9:00 do 17:00). Możesz określić konkretną listę poleceń, które mogą uruchamiać (np. Tylko / usr / local / bin / run_backup) lub możesz określić konkretnego użytkownika, któremu mogą uruchamiać polecenia (np. Www, backup, personel itp. ).
Oprócz swojej elastyczności, sudo jest lepszym rozwiązaniem we wszystkich przypadkach, ponieważ nie wymaga dostępu do niczego, czego użytkownik jeszcze nie ma. Jeśli dasz komuś dostęp do sudo, możesz go odwołać, usuwając jego linię z pliku sudoers lub usuwając go z grupy sudoers. Jeśli usuniesz ich konto, ich dostęp zniknie.
Jeśli podasz im hasło roota, nawet zakładając, że nie zrobią z nim nic nieprzyjemnego, będą go znali na zawsze. Jeśli masz wiele osób, które potrzebują dostępu do konta root w celu wykonania zadań administracyjnych, oznacza to albo zmianę wszystkich haseł użytkownika root, ilekroć ktoś odejdzie, albo założenie, że dostęp do twoich systemów jest pełny po twoim odejściu.
źródło
źródło
Z Wikipedii :
źródło
Jedną z rzeczy, które nie zostały w pełni wyjaśnione, jest to: to, którego można często używać, zależy od używanej dystrybucji i od tego, kto ją obsługuje. Jedno lub drugie (
su
lubsudo
) prawdopodobnie nie jest skonfigurowane do pełnego użycia domyślnie. Na przykład, jak wspomnieli niektórzy, OS X i Ubuntu wyłączają konto roota (su
domyślnie ). Debian nie daje również zwykłym użytkownikom żadnych domyślnych uprawnieńsudo
. (We wszystkich tych systemach możesz zmienić te ustawienia domyślne, ale tylko wtedy, gdy masz na początku jakieś uprawnienia administracyjne. Przypuszczam, że mówimy o sytuacji innej niż serwer i administrujesz maszyną, ponieważ jesteśmy na SU niż SF, ale na wszelki wypadek.)Na koniec, jeśli chcesz używać
sudo
w bardziej szczegółowy sposób, powinieneś sprawdzić,man sudoers
jak edytować plik / etc / sudoers . Jednak nigdy nie należy go edytować ręcznie. Użyj programu visudo - zapobiegnie to zapisywaniu zmian, chyba że są one co najmniej minimalnie rozsądne. Jest to świetne zabezpieczenie przed prostymi błędami, które mogą zablokować ci uprawnienia administratora twojego systemu.źródło
W systemach, w których konto administratora jest wyłączone, takich jak Mac OS X,
su
nie będzie działać;sudo -s
Wola.Wygląda też na to, że nie jest
su -s
dostępny, przynajmniej na moim komputerze.źródło
sudo
których (nawet nie zawsze są instalowane).To wprowadzenie może ci pomóc.
su
jest skrótem odsu root
, i zachowujesz swoje prawa jako drugiego użytkownika na czas nieokreślony. Bardziej niebezpieczne, ale także wygodniejsze, jeśli wykonujesz wiele poleceń dostępu do konta root przez pewien czas.źródło
su po prostu utworzy nową powłokę logowania z innymi uprawnieniami użytkownika (logowanie). sudo tymczasowo zezwoli na wykonanie polecenia przy użyciu określonego użytkownika. W niektórych systemach UNIX, takich jak FreeBDS, nie ma opcji „-s”.
źródło