Jaka jest różnica między „su -”, „sudo bash” i „sudo sh”?
29
Chciałbym wiedzieć, jaka jest różnica między
su -
sudo bash
sudo sh
Nie mogę zalogować się jako root podczas pracy, su -ponieważ nie mam hasła roota - mam na myśli moje hasło użytkownika, które mogę, sudo "command" ale to hasło nie działa, ponieważ su -
mogę zalogować się jako root za sudo bashpomocą hasła użytkownika i mogę się zalogować robienie, sudo shale wtedy pojawia się wiersz polecenia w tej formie
#
W Linuksie (i ogólnie w Uniksie) istnieje SuperUser o nazwie Root . SuperUser może robić wszystko i wszystko, a tym samym wykonywanie codziennej pracy, ponieważ SuperUser może być niebezpieczny. Możesz wpisać polecenie niepoprawnie i zniszczyć system. W idealnym przypadku działasz jako użytkownik, który ma tylko uprawnienia potrzebne do danego zadania. W niektórych przypadkach jest to koniecznie rootowanie, ale przez większość czasu jest to zwykły użytkownik.
su -
To polecenie służy do logowania na koncie root.
Domyślnie hasło do konta root jest zablokowane w Ubuntu. Oznacza to, że nie można zalogować się bezpośrednio jako root lub użyć polecenia su, aby zostać użytkownikiem root. Ponieważ jednak konto root istnieje fizycznie, nadal można uruchamiać programy z uprawnieniami na poziomie administratora. W tym miejscu pojawia się sudo - pozwala autoryzowanym użytkownikom (zwykle użytkownikom administracyjnym) na uruchamianie niektórych programów jako root bez konieczności znajomości hasła roota.
To polecenie uruchamia „sh” jako superużytkownik.
Narzędzie sh to interpreter języka poleceń, który wykonuje polecenia odczytane z ciągu wiersza poleceń, standardowego wejścia lub określonego pliku.
sudo bash
To polecenie uruchamia „bash” jako superużytkownik.
Bash jest tłumaczem powłoki lub języka poleceń. Bash jest powłoką kompatybilną z sh, która zawiera przydatne funkcje z powłoki Korn (ksh) i powłoki C (csh). Jest przeznaczony do zgodności ze standardem powłok i narzędzi IEEE POSIX P1003.2 / ISO 9945.2. Oferuje ulepszenia funkcjonalne w stosunku do sh zarówno w zakresie programowania, jak i interaktywnego użytkowania. Ponadto większość skryptów sh może być uruchamiana przez Bash bez modyfikacji.
Warto zauważyć, że możesz zalogować się jako superużytkownik, uruchamiając sudo su -bez hasła roota. Ponieważ sudo uruchamia su -polecenie z uprawnieniami administratora, użytkownik zostanie poproszony tylko o podanie hasła użytkownika. Ma to tę zaletę, że konfiguruje środowisko użytkownika root, czego nie można zrobić po prostu uruchamiając powłokę z sudo.
Aaron D
6
su -:
Spowoduje to zmianę identyfikatora użytkownika i odziedziczy zmienne środowiskowe, tak jakbyś zalogował się z tym użytkownikiem. Zwykle używasz tego formatu su - <userid>do logowania się jako użytkownik. Jeśli upuścisz „identyfikator użytkownika”, zakłada się, że próbujesz zalogować się jako root - czego nie możesz (chyba że zmienisz hasło roota).
sudo bashI sudo sh:
Wszystko po sudo jest programem do uruchomienia - więc w takich przypadkach należy uruchomić kilka powłok - odpowiednio bash i dash. użyj man bashi man shpo więcej szczegółów na temat różnych powłok.
Ok, dziękuję za odpowiedź, ale jakie jest domyślne hasło dla roota? Gdzie mogę to znaleźć ?
Patryk
Katalog główny @lordmonkey nie ma hasła i nie potrzebuje go. sudo -ida ci powłokę logowania, tak jak su -sudo, z wyjątkiem sudo pytającego o twoje hasło, a nie roota.
sudo su -
bez hasła roota. Ponieważ sudo uruchamiasu -
polecenie z uprawnieniami administratora, użytkownik zostanie poproszony tylko o podanie hasła użytkownika. Ma to tę zaletę, że konfiguruje środowisko użytkownika root, czego nie można zrobić po prostu uruchamiając powłokę z sudo.su -
:Spowoduje to zmianę identyfikatora użytkownika i odziedziczy zmienne środowiskowe, tak jakbyś zalogował się z tym użytkownikiem. Zwykle używasz tego formatu
su - <userid>
do logowania się jako użytkownik. Jeśli upuścisz „identyfikator użytkownika”, zakłada się, że próbujesz zalogować się jako root - czego nie możesz (chyba że zmienisz hasło roota).sudo bash
Isudo sh
:Wszystko po sudo jest programem do uruchomienia - więc w takich przypadkach należy uruchomić kilka powłok - odpowiednio bash i dash. użyj
man bash
iman sh
po więcej szczegółów na temat różnych powłok.Powiązane pytania:
źródło
sudo -i
da ci powłokę logowania, tak jaksu -
sudo, z wyjątkiem sudo pytającego o twoje hasło, a nie roota.