Как запустить это в sudo?

У меня есть эта строка, которую я выполняю из php

sudo -u db2inst1 -s -- "/opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 \"update EDU.contact set MOBILE_PHONE = '123'\""

он отлично работает на Sudo версии 1.7.2 .

Теперь у меня появился новый сервер с SUSE Linux Enterprise Server 11 (x86_64) . Судо не было, поэтому я установил его из репозитория (Sudo версии 1.6.9p17 ). Но знать, что синтаксис выше не работает. Он выбрасывает bin/bash: /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 "update EDU.contact set MOBILE_PHONE = '123'": No such file or directory bin/bash: /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 "update EDU.contact set MOBILE_PHONE = '123'": No such file or directory

Любая идея, как я могу сделать эту работу?

Если я запускаю /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 "update EDU.contact set MOBILE_PHONE = '123'" /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 "update EDU.contact set MOBILE_PHONE = '123'" разделе db2inst1 все работает нормально.

One Solution collect form web for “Как запустить это в sudo?”

Я действительно не совсем понимаю, почему вы получаете эту ошибку. У меня есть система с sudo 1.8.3, и в документации четко сказано что-то вроде sudo -s "echo hi" должно работать, но это не так.

То, как я всегда это делал, – это сделать то же самое, что и -s [command] , но вручную.

 sudo sh -c 'echo hi' 

или в вашем случае

 sudo -u db2inst1 sh -c "/opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin/db2 \"update EDU.contact set MOBILE_PHONE = '123'\"" 

Его более совместимый, поскольку аргумент -s не всегда был вокруг (и у меня к сожалению есть некоторые действительно старые машины на работе).

Редактировать:
Что происходит в ошибке, которую вы получаете, так это то, что она ищет исполняемый файл, который буквально назван db2 "update EDU.contact set MOBILE_PHONE = '123'" в каталоге с именем /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin /opt/ibm/db2/current/bin/db2 connect to PLC; /opt/ibm/db2/current/bin (да, он ищет db2 connect to PLC; для db2 connect to PLC; как каталог). Это, очевидно, не существует.

  • Есть ли способ получить контрольную сумму пакета, используя `zypper`?
  • Переместить / var в другой раздел
  • Как удалить все уведомления на рабочем столе навсегда в SUSE KDE
  • Как установить пакет src в SUSE?
  • Система локального управления пакетами
  • Серверы SUSE предназначены для использования графически?
  • Какая версия openSUSE ближе всего к SLES11SP1
  • Сделать загрузочный диск из tar-архива
  • Где я могу получить пакет «kernel-default-debuginfo» для SLES 11?
  • Suse-эквивалент Solaris ls -V
  • Проблемы с ncurses-devel в SuSE Linux Enterprise Desktop 11
  • Linux и Unix - лучшая ОС в мире.