Shell脚本命令“ldap_search”不能与php exec或shell_exec命令一起使用

时间:2017-01-19 07:30:38

标签: php linux bash ldap-query

我正在开发一个代码,该代码使用ldap_search Shell脚本命令,使用用户ID和正确的 LDAP服务器身份验证从Active Directory中提取用户信息。我从ldap_search脚本获得了准确的结果。

但是,每当我将shell脚本放在execshell_exec PHP命令中时,我都没有得到任何东西。

除了exec之外,所有其他shell脚本在PHP ldap_search命令的帮助下工作正常。

还有一些额外的任务要做吗?

ldap_searchexec/shell_exec彼此不兼容吗?

1 个答案:

答案 0 :(得分:0)

您必须使用echo exec('your command or script');

确保有权运行它。我的意思是,Web用户必须具有执行该权限的权限。

似乎显而易见,但我认为你的失败是基于这样的事情。您必须使用echo来显示命令的结果。

编辑在阅读完关于它的新评论并使用该新信息之后...我看到您正在尝试将输出重定向到文件...但是您可能有2个不同的问题。< / p>

  1. 让正在执行php(通常是www-data)权限的用户写入php所在的文件夹?

  2. 您的代码在引号内引号必须使用转义。试试这个:

  3. <?php exec("ldapsearch -x -v -h 'LDAP://server' -p '389' -D 'uid=\"domain_user_id\",ou=users,ou=internal,o=\"organization\"' -w 'domain_password' -b 'ou=users,ou=internal,o=organization' 'uid=person's_user_id' >> result.txt"); ?>

    如果您想要输出文件,则不需要echo。重定向>>可以在执行的命令中,而不是在php中。

    请记住,>会替换de文件,并在文件末尾添加>>添加内容。