Каково различие между 'su -', 'sudo колотят' и 'sudo sh'?

Я хотел бы знать то, что является различием между

  • su -
  • sudo bash
  • sudo sh

Я не могу войти в систему как корень при выполнении su - потому что у меня нет пароля root - я подразумеваю, что у меня есть свой пароль пользователя, с которым я могу sudo "command" но этот пароль не работает на su - Я могу войти в систему как корень с sudo bash с моим паролем пользователя и я могу войти в систему при выполнении sudo sh но затем я получаю командную строку в этой форме #

29
задан 14 August 2011 в 04:04

2 ответа

Фон

В Linux (и Unix в целом), существует SuperUser под названием Корень. SuperUser может сделать что-либо и все и таким образом выполнение ежедневной работы, поскольку SuperUser может быть опасным. Вы могли ввести команду неправильно и уничтожить систему. Идеально, Вы работаете как пользователь, который имеет только полномочия, необходимые для задачи под рукой. В некоторых случаях это - обязательно Корень, но большую часть времени это - обычный пользователь.

su -

Эта команда используется для входа в систему в корневой учетной записи.
По умолчанию Корневой пароль учетной записи заблокирован в Ubuntu. Это означает, что Вы не можете войти в систему как Корень непосредственно или использовать команду su для становления Пользователем root. Однако, так как Корневая учетная запись физически существует, все еще возможно запустить программы с полномочиями корневого уровня. Это - то, где sudo входит - он позволяет авторизованным пользователям (обычно "Административные" пользователи) запускать определенные программы как Корень, не имея необходимость знать пароль root.

Посмотрите, как включить корневую учетную запись.

sudo sh

Эта команда выполняет "sh" как суперпользователь.
sh утилита является интерпретатором командного языка, который должен выполнить команды, считанные из строки командной строки, стандартного входа или указанного файла.

удар sudo

Эта команда выполняет "удар" как суперпользователь.
Bash является оболочкой или интерпретатором командного языка. Bash является оболочкой sh-compatible, которая включает полезные функции от оболочки Korn (ksh) и оболочки C (csh). Это предназначается для приспосабливания стандарту Инструментов и IEEE POSIX P1003.2/ISO 9945.2 Shell. Это предлагает функциональные улучшения по сравнению с sh и для программирования и для интерактивного использования. Кроме того, большинство sh скриптов может быть запущено Bash без модификации.

Ссылки: 1, 2, 3.

26
ответ дан 23 November 2019 в 00:53

su -:

Это изменит Ваш идентификатор пользователя и наследует переменные среды, как будто Вы вошли в систему с тем пользователем. Обычно Вы использовали бы формат su - <userid> входить в систему как пользователь. При отбрасывании "идентификатора пользователя", он предполагает, что Вы пытаетесь войти в систему как корень - который Вы не можете (если Вы не изменяете пароль root).

sudo bash & sudo sh:

Что-либо после sudo - программа для выполнения - так в этих случаях, Вы просите выполнять несколько оболочек - удар и тире соответственно. использовать man bash и man sh для получения дополнительной информации о различных оболочках.


Связанные вопросы:

6
ответ дан 23 November 2019 в 00:53

Другие вопросы по тегам:

Похожие вопросы: