На этот вопрос уже есть ответ здесь:
Насколько я знаю следующую команду должен сделать меня 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
Я помню, что он работал некоторое время назад. Как мне снова включить его?
Я помню, что это работало некоторое время назад. Как я повторно включаю его?
Вы почти наверняка использовали 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
.