У меня есть php-страница.
Он вызывает bash-скрипт проверки, который проверяет переменные, переданные с php-страницы.
Затем я вызываю другой сценарий bash, который мне нужно выполнить под пользователем root. Я следил за руководством здесь Как запустить из PHP скрипт bash под пользователем root и все еще не может заставить скрипт выполняться от имени root.
У меня есть следующее:
php-страница
$bashFile = shell_exec('./Validation.sh "'.$coinName.'" "'.$coinNameAbreviation.'" "'.$blockReward.'" "'.$blockSpacing.'" "'.$targetTimespan.'" "'.$totalCoins.'" "'.$firstBitAddy.'" "'.$seedNode.'" "'.$seedName.'" "'.$headline.'" ');
echo "<pre>$bashFile</pre>";
файл проверки:
sudo nohup /bin/bash /usr/sbin/CoinCreationBashFile "$coinName" "$coinNameAbreviation" "$blockReward" "$blockSpacing" "$targetTimespan" "$totalCoins" "$firstAddyBit" "$seedNode" "$nameSeedNode" "$headline" "$blocksPerDay" "$startingDifficulty" >> /tmp/BASH2log.txt 2>&1 &
я добавил
www-data ALL=NOPASSWD /usr/sbin/CoinCreationBashFile
до конца sudo visudo
и сделал:
chown root:root /usr/sbin/CoinCreationBashFile
chmod 755 /usr/sbin/CoinCreationBashFile
запускал его из usr/sbin из предложения здесь http://ubuntuforums.org/showthread.php?t=1848069 Кто-нибудь может увидеть, что я делаю неправильно?? Большое спасибо, редактирование: я могу запустить скрипт CoinCreationBashFile без команды sudo, и он работает нормально до того момента, когда ему требуется привилегия root ... поэтому я знаю, что скрипт работает, и при выполнении из терминала скрипт работает идеально, как и хотелось. вывод в tmp/BASH2log.txt
sudo: no tty present and noaskpass program specified