Команда не найдена при запуске с sudo bash

Я ssh в мою машину, а затем, чтобы выполнить некоторые команды, мне нужно сначала sudo bash .

В сеансе интерактивного терминала, если я это сделаю:

 [vagrant@33 ~]$ sudo bash [root@33 vagrant]# which bundle /opt/upnxt/rbenv-0.4.0-7/shims/bundle 

все работает. Но если мне нужно сделать это в одной строке:

 [vagrant@33 ~]$ sudo bash -c "whoami; which bundle" root which: no bundle in (/sbin:/bin:/usr/sbin:/usr/bin) 

вещи перестают работать. Почему это происходит и что еще нужно сделать для второго сценария, чтобы иметь возможность запускать его, как первый?

  • Почему sudo openvpn не может работать здесь?
  • Ошибка установки уведомлений по электронной почте Sudo
  • Судо не работает в chroot
  • Получить команды, которые пользователь может запустить из / etc / sudoers?
  • Как я могу заставить sudo отказаться от всех переменных среды?
  • Sudo mkdir не удается из-за разрешения отклонить ошибку
  • использование sudoers, чтобы позволить привилегированному пользователю перезапустить apache
  • Могу ли я получить правильный $ PATH при выполнении sudo -u db2inst -sh "db2"?
  • One Solution collect form web for “Команда не найдена при запуске с sudo bash”

    Когда вы вызываете sudo bash вы запускаете новый экземпляр bash с user root environment . Но если вы назовете sudo bash -c "whoami; which bundle" окружение», то для вашего пользователя остается. Если у вас нет намерения сделать это, вы можете изменить последний вызов по параметрам sudo -i

    -i , –login

    Запустите оболочку, указанную в записи базы данных пользователя целевого пользователя, в качестве оболочки входа. Это означает, что файлы ресурсов, зависящие от пользователя, такие как .profile или .login, будут прочитаны оболочкой. Если задана команда, она передается оболочке для выполнения через опцию -c оболочки. Если команда не указана, выполняется интерактивная оболочка. sudo пытается перейти в домашний каталог этого пользователя перед запуском оболочки. Команда запускается со средой, подобной той, которую пользователь получит при входе в систему. Раздел « Командная среда » в справочных документах sudoers (5) о том, как параметр -i влияет на среду, в которой выполняется команда, когда политика sudoers в использовании.

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