【发布时间】:2015-01-03 09:23:14
【问题描述】:
问题:最初,我通过命令行以root用户身份访问了一个名为pandoc (/root/.cabal/bin/pandoc)的包,该包安装在根文件夹中。当我尝试使用 shell_exec() 通过 php 访问该包时,它失败了。
问题: 为了安全起见,php shell_exec() 是否有任何限制不能访问根包?如果有,如何解决?
我试过了:给根文件夹写权限然后我可以通过
命令行不是root用户。但我无法通过 php shell_exec() 访问它。
php代码:
shell_exec("cd /home/quotequadsco/public_html/pandoc_jats ; sudo -u quotequadsco
-S /root/.cabal/bin/pandoc ex.tex --filter /root/.cabal/bin/pandoc-citeproc
-t JATS.lua -o ex.xml");
也试过了,
shell_exec("cd /home/quotequadsco/public_html/pandoc_jats ;/root/.cabal/bin/pandoc
ex.tex --filter /root/.cabal/bin/pandoc-citeproc -t JATS.lua -o ex.xml");
预期:我需要在php中通过shell_exec()执行pandoc root包。
【问题讨论】:
-
你是如何运行这个脚本的? Apache 在哪个用户下运行?
-
在quotequadsco用户下运行的public_html文件夹中的php文件
-
那么它不会工作你确定它的quotequadsco而不是www-data?你需要设置apache以root身份运行,这是不安全但可能的
-
那么最安全的解决方法是什么?
标签: php shell root permission-denied