Używam Ubuntu 10.04.
Zauważyłem, że po uruchomieniu „ sudo -s ” w terminalu monit zmienił się z
„ XXX @ XXX ”
do
„ root @ XXX ”,
wygląda na to, że zmieniło się w uprawnienie root.
Ale kiedy sprawdzić dokumentację komendy „sudo” tutaj , to wyjaśnia inna historia „sudo -s”, może ktoś mi wyjaśnić, co to jest „ sudo -s ” robi dokładnie?
sudo
nie jest specyficzny dla Ubuntu ...Odpowiedzi:
Oba nie są tak naprawdę niespójne -
sudo
polecenie zawsze zmienia użytkownika, albo na root, albo na użytkownika określonego za pomocą-u
przełącznika. Wszystko, co-s
robi, to skrót do uruchamiania powłoki jako ten użytkownik. To naprawdę odpowiada:z wyjątkiem tego, że prawdopodobnie nastąpi awaria
/bin/sh
lub coś, jeśliSHELL
nie zostanie ustawione.źródło
sudo -s
uruchamia powłokę określoną w$SHELL
zmiennej środowiskowej jako administrator / root. Możesz określić innego użytkownika za pomocą-u
.$SHELL
Zmienna zawiera ścieżkę do domyślnej powłoki logowania użytkownika. Rzeczywiste ustawienie domyślnego programu powłoki jest zwykle wetc/passwd
. W zależności od tego, co zrobiłeś w bieżącej sesji, zmienna $ SHELL może nie zawierać aktualnie używanego programu powłoki. Jeśli na przykład zalogujesz się automatycznie za pomocą zsh, ale uruchomisz bash, $ SHELL się nie zmieni/bin/zsh
.Pokaż bieżącego użytkownika i program powłoki:
echo $(whoami) is logged in and shell is $0
whoami
wypisuje nazwę użytkownika, pod którą pracuje użytkownik.$0
zawiera nazwę / ścieżkę aktualnie uruchomionego programu (w tym przypadku program powłoki).źródło
Z instrukcji:
Mówiąc poważniej, sudo -s uruchamiają zmienną środowiskową powłoki. Ponieważ nie dodałeś żadnej zmiennej, działa ona tak, jak określono w passwd, więc łączy Cię jako root.
źródło
-u
opcji, aby się tego nauczyć. Ale dla kogoś, kto nie jest zaznajomionysudo
, nie wiedziałby, na kogo patrzeć-u
.Spójrz na ten post od administratora:
Jaka jest różnica między poleceniami „su -s” i „sudo -s”?
Nawiasem mówiąc, twój post powinien zostać przeniesiony do superużytkownika (lub askubuntu, jak powiedziano w komentarzach)!
źródło
Wygląda na to, że tworzy kolejną instancję powłoki na wierzchu bieżącej powłoki, ale z uprawnieniami roota. Założę się, że
sudo -s
jeśli to zrobisz, jeśli wpiszesz polecenie exit, wrócisz do oryginalnej powłoki.źródło
sudo -s pozwala uruchomić komendę, dla której jesteś wstępnie autoryzowany [patrz / etc / sudoers], prawdopodobnie prosząc cię o potwierdzenie aktualnego ID.
źródło