Как мне стать пользователем root, если su -i не поддерживается? [дубликат]

На этот вопрос уже есть ответ здесь:

Насколько я знаю следующую команду должен сделать меня root:

su -i

Тем не менее, когда я набираю его в Ubuntu 17.04 Zesty Zapus, я получаю следующее сообщение:

su: invalid option -- 'i'
Usage: su [options] [LOGIN]
Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

Я помню, что он работал некоторое время назад. Как мне снова включить его?

0
задан 17 September 2017 в 21:30

1 ответ

Я помню, что это работало некоторое время назад. Как я повторно включаю его?

Вы почти наверняка использовали sudo -i прежде, с тех пор su не поддерживает -i опция, и это не поддерживало такую опцию даже в более ранних выпусках. (Только, чтобы быть уверенным, я перепроверил это на 16.04 LTS.) Можно все еще использовать sudo -i.

В системе, где корневые логины включены, можно войти su и пройдите проверку подлинности с паролем корня. Это дает Вам корневую оболочку, но она не моделирует оболочку входа в систему. Это подобно sudo -s (или sudo --shell), который работает, даже когда корневая учетная запись отключена. С sudo, Вы используете свой собственный пароль. В конфигурации по умолчанию необходимо быть администратором - т.е. член sudo группа - для использования его.

Точно так же, если можно войти в систему как корень затем, можно также моделировать корневой вход в систему с su - (или su -l, или su --login). Передача - флаг к su переменные среды наборов, подобные тем, которые были бы установлены в среде входа в систему корня и запускают оболочку входа в систему. Это подобно sudo -i (или sudo --login).

Наиболее распространенный способ использовать sudo должен выполнить просто единственную команду, только путем выполнения sudo command args.... Это может также быть, покончили su путем передачи -c флаг, но это является неловким, потому что целая команда включая ее аргументы должна быть заключена в кавычки так, это передается как единственный параметр командной строки su: su -c 'command args...' (Если Вы не передаете аргументов команде, и само название команды не требует заключения в кавычки, затем кавычки могут быть опущены.)

Я упоминаю все это для не обеспечения полного руководства по sudo, и я рекомендую man sudo, RootSudo, этот поток, этот вопрос, тег Wiki и восходящий сайт для получения дополнительной информации. Кроме показа команд Вы, скорее всего, захотите, мой основной момент то, что даже сделать подобные вещи, sudo и su используйте вполне по-другому названные краткие опции, включая для --login. Если Вы когда-нибудь выполняли команду для получения корневой оболочки, и Вы передали -i, та команда была наиболее вероятной sudo.

2
ответ дан 2 November 2019 в 06:12

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

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