Jeśli już, Linux będzie traktował je inaczej niż OS X. OS X ma certyfikat Unix, co oznacza, że jest zgodny z pewnym standardem zachowania. Linux jest podobny do Uniksa, ale nie ma certyfikatu Unix i niekoniecznie jest zgodny ze standardem Unix. Jeśli więc istnieją różnice (inne niż problem z hasłem rootem odnotowany w odpowiedzi Aaron Lake), są one niezgodne ze strony implementatorów konkretnej dystrybucji Linuksa.
alesplin
Odpowiedzi:
21
OS X uchwyty sudoi suidentycznie jak Linux.
sudoto polecenie, które bez żadnych dodatkowych opcji uruchomi polecenie jako root. Na przykład:
% touch /newfile
touch:/newfile:Permission denied% ls -l /newfile
ls:/newfile:No such file or directory% sudo touch /newfile% ls -l /newfile -rw-r--r--1 root wheel 0Apr2711:45/newfile
suz drugiej strony, zmieni bieżącego użytkownika na root (ponownie bez żadnych dodatkowych poleceń). W poniższym przykładzie muszę uruchomić sudo su, ponieważ nie znam hasła roota dla mojego systemu:
% whoami
alake% sudo su
$ whoami
root
Kluczową różnicą między sudoi sujest sudouruchamianie komendy jako root, natomiast supowoduje rootowanie. Podobnie jak inne narzędzia wiersza poleceń, istnieje wiele alternatywnych sposobów korzystania z obu, sudoa sujeśli jesteś zainteresowany, zawsze możesz uruchomić man <command>np. man sudoaby uzyskać więcej informacji.
W prostym języku sudomożna nazwać as super user and do. Dodatkowo, w OS X, po pomyślnym uwierzytelnieniu, możesz następnie używać sudo bez hasła przez krótki czas (domyślnie 5 minut, chyba że zostanie zastąpione sudoers), po czym będziesz musiał ponownie wpisać hasło.
binarybob
1
„bez dodatkowych opcji” jest dość znaczącym kwalifikatorem ... oba pozwolą ci stać się użytkownikami innymi niż root ... np. sudo su -lm _wwwpozwolą ci mieć taką powłokę jak użytkownik serwera WWW (uruchamiając polecenie jako root, jako nie ma prawidłowego hasła)
Joe
2
@Joe, zastanawiałem się nad dodaniem tych informacji, ale zostało to pominięte ze względu na zwięzłość. Jak opisujesz, sudojest to dość solidne narzędzie, a obejmowanie nawet tutaj podstawową funkcjonalnością ostatecznie dezorientuje lub przytłacza docelowych odbiorców szukających rozróżnienia między sudoi su.
Aaron Lake
„Kluczową różnicą między sudo i su jest to, że sudo uruchamia polecenie jako root, podczas gdy su powoduje rootowanie” - false, sudo -suruchamia powłokę („powoduje rootowanie”) i su -c commanduruchamia polecenie jako root.
el.pescado
2
Znowu ze względu na zwięzłość pominąłem wiele alternatywnych metod używania sudo. Ponadto nie można su -c commanddomyślnie robić tego w systemie OS X, ponieważ nie znasz hasła użytkownika root. Możesz jednak sudo suzmienić hasło su -c command. Wydaje mi się, że odpowiedziano na to pytanie i nie było potrzeby zagłębiania się w alternatywne zastosowania sudo i su. Jednak zaktualizuję post dla ciekawskich ludzi.
Odpowiedzi:
OS X uchwyty
sudo
isu
identycznie jak Linux.sudo
to polecenie, które bez żadnych dodatkowych opcji uruchomi polecenie jako root. Na przykład:su
z drugiej strony, zmieni bieżącego użytkownika na root (ponownie bez żadnych dodatkowych poleceń). W poniższym przykładzie muszę uruchomićsudo su
, ponieważ nie znam hasła roota dla mojego systemu:Kluczową różnicą między
sudo
isu
jestsudo
uruchamianie komendy jako root, natomiastsu
powoduje rootowanie. Podobnie jak inne narzędzia wiersza poleceń, istnieje wiele alternatywnych sposobów korzystania z obu,sudo
asu
jeśli jesteś zainteresowany, zawsze możesz uruchomićman <command>
np.man sudo
aby uzyskać więcej informacji.źródło
sudo
można nazwać assuper user and do
. Dodatkowo, w OS X, po pomyślnym uwierzytelnieniu, możesz następnie używać sudo bez hasła przez krótki czas (domyślnie 5 minut, chyba że zostanie zastąpionesudoers
), po czym będziesz musiał ponownie wpisać hasło.sudo su -lm _www
pozwolą ci mieć taką powłokę jak użytkownik serwera WWW (uruchamiając polecenie jako root, jako nie ma prawidłowego hasła)sudo
jest to dość solidne narzędzie, a obejmowanie nawet tutaj podstawową funkcjonalnością ostatecznie dezorientuje lub przytłacza docelowych odbiorców szukających rozróżnienia międzysudo
isu
.sudo -s
uruchamia powłokę („powoduje rootowanie”) isu -c command
uruchamia polecenie jako root.sudo
. Ponadto nie możnasu -c command
domyślnie robić tego w systemie OS X, ponieważ nie znasz hasła użytkownika root. Możesz jednaksudo su
zmienić hasłosu -c command
. Wydaje mi się, że odpowiedziano na to pytanie i nie było potrzeby zagłębiania się w alternatywne zastosowania sudo i su. Jednak zaktualizuję post dla ciekawskich ludzi.