我有一个 php 页面。
它调用一个验证 bash 脚本来检查从 php 页面传递的变量。
然后我调用另一个需要在 root 用户下执行的 bash 脚本。我已按照此处的指南如何在 root 用户下从 PHP 运行 bash 脚本,但仍然无法让脚本以 root 身份执行。
我有以下内容:
页面
$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 谁能看到我做错了什么?非常感谢编辑:我可以在没有 sudo 命令的情况下运行 CoinCreationBashFile 脚本,并且它运行良好,直到需要 root priv... 在 tmp/BASH2log.txt 中输出
sudo: no tty present and noaskpass program specified