Что произошло после sudo -s

Я новичок в оболочке.

Я пишу очень простой скрипт:

#!/bin/bash example() { echo "Code that don't need sudo." sudo -s echo "Code that need sudo" } example 

После запуска этого сценария я ожидаю:

  1. prompt Code that don't need sudo.

  2. shell спросить меня пароль

  3. если пароль в порядке, введите Code that need sudo.

Но после ввода хорошего пароля введите Code that need sudo. не появляется почему и как его исправить?

  • Разрешить удаление sudo для удаленного пользователя для цели восстановления. Последствия для безопасности?
  • Как сохранить пользовательский PS1 в режиме суперпользователя?
  • Ошибка Vim E138: не удается написать файл viminfo $ HOME / .viminfo!
  • Как получить root внутри vi?
  • Запустить команду sudoed после завершения скрипта?
  • Какой пользователь выполняет сценарий / приложение Linux как?
  • потерянная способность sudo после изменения модуля pam
  • Работа Sudo cron с использованием arp-scan дает пустой результат
  • 2 Solutions collect form web for “Что произошло после sudo -s”

    Это потому, что sudo -s запускает корневую оболочку, и именно там вы оказываетесь после ввода пароля. Если вы выйдете из оболочки, вы увидите Code that need sudo :

     $ foo.sh Code that don't need sudo. [sudo] password for terdon: [root@tpad terdon]# exit Code that need sudo 

    В общем, во всех сценариях, когда вы говорите ему, чтобы запустить команду, скрипт будет продолжать выполнение только после завершения команды. Итак, когда ваш скрипт запустил sudo -s , он ждал, пока это закончится, прежде чем продолжить. Вот почему текст был напечатан после того, как я запустил exit (или нажал Ctrl + D ).

    -s без команды запускает интерактивную оболочку, поэтому вы больше не будете в той же оболочке, что и скрипт.

    Подробнее см. man sudo .

    Это должно работать, хотя:

     #!/bin/bash example() { echo "Code that don't need sudo." sudo -s echo "Code that need sudo" } example 
    Interesting Posts

    Есть ли способ передать переменную из выражения awk в функцию bash в качестве аргумента?

    Можно ли использовать Grub для запуска двоичного файла EFI?

    Некоторые вопросы, связанные с процессом сборки внешнего модуля Linux

    Отмена / отключение CTRL + ALT + F #

    Есть ли способ вызвать команду с установленным временным лимитом и убить ее, когда это время пройдет?

    почему я должен использовать tar.xz вместо tar.gz? xz – программа сжатия данных без потерь и формат файла

    Очистить / стереть скрытый невидимый пароль на оболочке / терминале в Linux

    «Find» не перечисляет все файлы в определенных каталогах

    Почему выражения подзаголовков в ~ / .zsvv не приводят к бесконечному регрессу?

    Realtek rtl8192cu-fixes выпускает элементарные os

    Запретить закрытие окна / окна при завершении команды – tmux

    Цитирование фигурных скобок в оболочке

    Скорость передачи бит, показанная в `iw`, неожиданно низкая

    как установить пакет ast python

    Совместимость виртуального псевдонима Postfix с регулярным выражением

    Linux и Unix - лучшая ОС в мире.