Яка різниця між 'su -', 'sudo bash' та 'sudo sh'?


29

Я хотів би знати, в чому різниця між

  • su -
  • sudo bash
  • sudo sh

Я не можу ввійти як root під час виконання, su -оскільки у мене немає пароля root - я маю на увазі, що у мене є свій пароль користувача, з яким я можу, sudo "command" але цей пароль не працює, тому що su - я можу увійти як root sudo bashіз своїм паролем користувача, і я можу ввійти під час робити, sudo shале тоді я отримую командний рядок у цій формі #

Відповіді:


27

Фон

У Linux (і в цілому Unix) є SuperUser з назвою Root . SuperUser може робити все, що завгодно, і, таким чином, виконувати щоденну роботу, оскільки SuperUser може бути небезпечним. Ви можете ввести команду неправильно та знищити систему. В ідеалі ви працюєте як користувач, який має лише ті привілеї, які необхідні для виконання завдання. У деяких випадках це обов'язково Корінь, але більшу частину часу це звичайний користувач.

су -

Ця команда використовується для входу в кореневий рахунок.
За замовчуванням пароль облікового запису Root заблокований в Ubuntu. Це означає, що ви не можете ввійти як Root безпосередньо або використовувати команду su, щоб стати користувачем Root. Однак, оскільки обліковий запис Root фізично існує, все одно можливо запускати програми з правами кореневого рівня. Ось тут надходить sudo - він дозволяє авторизованим користувачам (зазвичай «адміністративним» користувачам) запускати певні програми як Root, не знаючи пароля root.

Див. Як увімкнути кореневий рахунок .

судо ш

Ця команда виконує "sh" як суперкористувач.
Утиліта sh - це інтерпретатор мови команд, який повинен виконувати команди, прочитані з рядка командного рядка, стандартного вводу чи заданого файлу.

судо баш

Ця команда виконує "bash" як суперкористувач.
Bash - оболонка, або інтерпретатор мови командної мови. Bash - сумісна з оболонками оболонка, яка включає корисні функції із шкаралупи Korn (ksh) та C shell (csh). Він призначений відповідати стандарту IEEE POSIX P1003.2 / ISO 9945.2 для оболонок та інструментів. Він пропонує функціональні вдосконалення для sh і для програмування, і для інтерактивного використання. Крім того, більшість скриптів sh може запускатися Bash без змін.

Список літератури: 1 , 2 , 3 .


7
Варто зазначити, що ви можете ввійти як суперкористувач, запустивши sudo su -без пароля root. Оскільки sudo виконує su -команду з кореневими правами, вам буде запропоновано лише пароль користувача. Це має перевагу в налаштуванні середовища кореневого користувача, що може не зробити, просто запустивши оболонку з sudo.
Аарон Д

6

su -:

Це змінить ваш ідентифікатор користувача та успадкує змінні середовища, як якщо б ви увійшли з цим користувачем. Зазвичай ви використовуєте формат su - <userid>для входу як користувач. Якщо ви скасуєте "userid", це передбачає, що ви намагаєтесь увійти як root - чого не можете (якщо ви не зміните пароль root).

sudo bash& sudo sh:

Все після судо - це програма, яку потрібно запустити - тому в цих випадках ви просите запустити пару снарядів - удар і тире відповідно. використання man bashта man shдля отримання детальної інформації про різних оболонках.


Пов’язані запитання:


Добре, дякую за відповідь, але який пароль за замовчуванням для root тоді? Де я можу його знайти?
Патрик

@lordmonkey root не має пароля і не потребує його. sudo -iдасть вам оболонку для входу, як su -би, крім sudo запитує ваш пароль, а не root.
geirha
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.