Передавать команды при переключении на корень

Ваша система будет использовать NTP-сервер Ubuntu в ntp.ubuntu.com по умолчанию.

Чтобы узнать, какой сервер NTP используется, запустите:

grep ^server /etc/ntp.conf

Если вы получите сообщение об ошибке , то NTP не установлен. Чтобы установить его, просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, запустите следующие команды:

sudo apt-get install ntp

1
задан 2 September 2017 в 18:25

9 ответов

Вы можете использовать что-то вроде:

$ sudo -i /bin/bash -c 'mkdir qq && bash'

# pwd
/root

# ls -d qq
qq

сначала вы передаете /bin/bash в качестве вашей оболочки, mkdir qq в качестве команды, которую вы хотите запустить, и && bash, чтобы получить оболочку с корнем доступ.

1
ответ дан 22 May 2018 в 18:51

Вы можете использовать что-то вроде:

$ sudo -i /bin/bash -c 'mkdir qq && bash' # pwd /root # ls -d qq qq

сначала вы передаете /bin/bash в качестве вашей оболочки, mkdir qq в качестве команды, которую вы хотите запустить, и && bash, чтобы получить оболочку с корнем доступ.

1
ответ дан 18 July 2018 в 07:32

Вы можете использовать что-то вроде:

$ sudo -i /bin/bash -c 'mkdir qq && bash' # pwd /root # ls -d qq qq

сначала вы передаете /bin/bash в качестве вашей оболочки, mkdir qq в качестве команды, которую вы хотите запустить, и && bash, чтобы получить оболочку с корнем доступ.

1
ответ дан 24 July 2018 в 18:49

sudo запускает команды. Просто выполните:

sudo -i mkdir qq

Вам не нужен специальный параметр, например su.

2
ответ дан 22 May 2018 в 18:51
  • 1
    Да, я почти уверен, что это то, что искали OP, потому что они передали флаг -c, который при передаче в su или большинстве оболочек запускает одну команду. То, что они не знали, заключается в том, что выполнение одной команды является общим использованием sudo, не требуя специального флага. Однако, в зависимости от того, что они делают, им может не понадобиться -i. – Eliah Kagan 6 September 2017 в 04:54

Как говорит муру, типичное использование sudo состоит в том, чтобы запустить только одну команду. Вам не нужно передавать флаг -c, как если бы вы были с большинством оболочек или командой su.

Однако, в зависимости от того, на что вы намерены выполнить результат mkdir qq, вы может также опустить флаг -i. Независимо от того, запускаете ли вы sudo -i без аргумента команды для запуска оболочки или с помощью аргумента команды (sudo -i command...) для запуска одной команды, sudo -i имитирует среду, которую вы получите, если вы должны войти в систему как целевой пользователь. Если целевой пользователь не указан, этот пользователь root, чей домашний каталог /root. Вход в систему как пользователь помещает вас в свой домашний каталог, поэтому sudo -i делает это тоже, но только для запуска оболочки или выполнения одной команды.

Таким образом, запуск sudo -i mkdir qq фактически выполняется [ f13] как root из /root. Поскольку qq является muru, говорит , каталог, который создает команду, фактически /root/qq, то есть каталог с именем qq внутри каталога /root. Если это то, чего ты хочешь, отлично! Но если вы хотите на самом деле создать каталог с именем qq, где бы вы ни находились прямо сейчас, тогда вы должны сделать одну из этих вещей:

Чтобы создать каталог, вам, как правило, не нужна причина [ f20]. Поэтому вы можете просто сбросить флаг -i и запустить sudo mkdir qq. В весьма маловероятном случае вам понадобилась среда входа root для создания каталога - я не могу думать о причине, которую вы хотели бы - тогда вы можете использовать полный путь к каталогу. Хотя я сомневаюсь, что вам понадобится это в этом случае, хорошо знать, что вы используете полный путь в команде, которую вы запускаете с помощью sudo -i, чтобы убедиться, что вы ссылаетесь на правильный файл или каталог. Например, если ваша цель состояла в создании qq в /opt, вы могли бы запустить sudo -i mkdir /opt/qq. Опять же, для mkdir это не обязательно, просто отпустите -i. Если вам не нужно запускать команду в качестве root или любого другого альтернативного пользователя, не делайте этого. Чтобы создать новый каталог где-то у вашего пользователя уже есть доступ на запись, вам лучше просто запустить mkdir qq без sudo. В частности, если в этом каталоге qq вы собираетесь установить программу QQ для обмена мгновенными сообщениями только для вас, а не для других пользователей в системе, и вы создаете ее внутри своего домашнего каталога, тогда лучше не используйте sudo при установке или запуске программы. (Я не предполагаю, что это для QQ. Это просто пример.)
2
ответ дан 22 May 2018 в 18:51

Как говорит муру, типичное использование sudo состоит в том, чтобы запустить только одну команду. Вам не нужно передавать флаг -c, как если бы вы были с большинством оболочек или командой su.

Однако, в зависимости от того, на что вы намерены выполнить результат mkdir qq, вы может также опустить флаг -i. Независимо от того, запускаете ли вы sudo -i без аргумента команды для запуска оболочки или с помощью аргумента команды (sudo -i command...) для запуска одной команды, sudo -i имитирует среду, которую вы получите, если вы должны войти в систему как целевой пользователь. Если целевой пользователь не указан, этот пользователь root, чей домашний каталог /root. Вход в систему как пользователь помещает вас в свой домашний каталог, поэтому sudo -i делает это тоже, но только для запуска оболочки или выполнения одной команды.

Таким образом, запуск sudo -i mkdir qq фактически выполняется mkdir qq как root из /root. Поскольку qq является muru, говорит , каталог, который создает команду, фактически /root/qq, то есть каталог с именем qq внутри каталога /root. Если это то, чего ты хочешь, отлично! Но если вы хотите на самом деле создать каталог с именем qq, где бы вы ни находились прямо сейчас, тогда вы должны сделать одну из этих вещей:

Чтобы создать каталог, вам, как правило, не нужна причина root. Поэтому вы можете просто сбросить флаг -i и запустить sudo mkdir qq. В весьма маловероятном случае вам понадобилась среда входа root для создания каталога - я не могу думать о причине, которую вы хотели бы - тогда вы можете использовать полный путь к каталогу. Хотя я сомневаюсь, что вам понадобится это в этом случае, хорошо знать, что вы используете полный путь в команде, которую вы запускаете с помощью sudo -i, чтобы убедиться, что вы ссылаетесь на правильный файл или каталог. Например, если ваша цель состояла в создании qq в /opt, вы могли бы запустить sudo -i mkdir /opt/qq. Опять же, для mkdir это не обязательно, просто отпустите -i. Если вам не нужно запускать команду в качестве root или любого другого альтернативного пользователя, не делайте этого. Чтобы создать новый каталог где-то у вашего пользователя уже есть доступ на запись, вам лучше просто запустить mkdir qq без sudo. В частности, если в этом каталоге qq вы собираетесь установить программу QQ для обмена мгновенными сообщениями только для вас, а не для других пользователей в системе, и вы создаете ее внутри своего домашнего каталога, тогда лучше не используйте sudo при установке или запуске программы. (Я не предполагаю, что это для QQ. Это просто пример.)
2
ответ дан 18 July 2018 в 07:32

sudo запускает команды. Просто выполните:

sudo -i mkdir qq

Вам не нужен специальный параметр, например su.

2
ответ дан 18 July 2018 в 07:32

Как говорит муру, типичное использование sudo состоит в том, чтобы запустить только одну команду. Вам не нужно передавать флаг -c, как если бы вы были с большинством оболочек или командой su.

Однако, в зависимости от того, на что вы намерены выполнить результат mkdir qq, вы может также опустить флаг -i. Независимо от того, запускаете ли вы sudo -i без аргумента команды для запуска оболочки или с помощью аргумента команды (sudo -i command...) для запуска одной команды, sudo -i имитирует среду, которую вы получите, если вы должны войти в систему как целевой пользователь. Если целевой пользователь не указан, этот пользователь root, чей домашний каталог /root. Вход в систему как пользователь помещает вас в свой домашний каталог, поэтому sudo -i делает это тоже, но только для запуска оболочки или выполнения одной команды.

Таким образом, запуск sudo -i mkdir qq фактически выполняется mkdir qq как root из /root. Поскольку qq является muru, говорит , каталог, который создает команду, фактически /root/qq, то есть каталог с именем qq внутри каталога /root. Если это то, чего ты хочешь, отлично! Но если вы хотите на самом деле создать каталог с именем qq, где бы вы ни находились прямо сейчас, тогда вы должны сделать одну из этих вещей:

Чтобы создать каталог, вам, как правило, не нужна причина root. Поэтому вы можете просто сбросить флаг -i и запустить sudo mkdir qq. В весьма маловероятном случае вам понадобилась среда входа root для создания каталога - я не могу думать о причине, которую вы хотели бы - тогда вы можете использовать полный путь к каталогу. Хотя я сомневаюсь, что вам понадобится это в этом случае, хорошо знать, что вы используете полный путь в команде, которую вы запускаете с помощью sudo -i, чтобы убедиться, что вы ссылаетесь на правильный файл или каталог. Например, если ваша цель состояла в создании qq в /opt, вы могли бы запустить sudo -i mkdir /opt/qq. Опять же, для mkdir это не обязательно, просто отпустите -i. Если вам не нужно запускать команду в качестве root или любого другого альтернативного пользователя, не делайте этого. Чтобы создать новый каталог где-то у вашего пользователя уже есть доступ на запись, вам лучше просто запустить mkdir qq без sudo. В частности, если в этом каталоге qq вы собираетесь установить программу QQ для обмена мгновенными сообщениями только для вас, а не для других пользователей в системе, и вы создаете ее внутри своего домашнего каталога, тогда лучше не используйте sudo при установке или запуске программы. (Я не предполагаю, что это для QQ. Это просто пример.)
2
ответ дан 24 July 2018 в 18:49

sudo запускает команды. Просто выполните:

sudo -i mkdir qq

Вам не нужен специальный параметр, например su.

2
ответ дан 24 July 2018 в 18:49
  • 1
    Да, я почти уверен, что это то, что искали OP, потому что они передали флаг -c, который при передаче в su или большинстве оболочек запускает одну команду. То, что они не знали, заключается в том, что выполнение одной команды является общим использованием sudo, не требуя специального флага. Однако, в зависимости от того, что они делают, им может не понадобиться -i. – Eliah Kagan 6 September 2017 в 04:54

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

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