php exec运行linux命令不成功问题!求大家帮忙!

MMDD0827 2012-02-06 05:12:05
环境:ubuntu server
情景:使用web页面来修改samba的用户密码

详细描述: 例如 这句:
exec("echo -e \"0\\n0\\n\"|sudo smbpasswd -as test3");

当我在 php页面中运行是 出现如下报错:

Mismatch - password unchanged.
Unable to get new password.

意思就是说,没有修改成功

但是 当我把里边的命令拿出来 放在系统命令行中运行,则会成功 !
下面是直接在命令行中运行的命令,nobody是我的apapche 用户,下面就是以apache用户来运行这条命令
 sudo -u nobody echo -e "0\n0\n"|sudo smbpasswd -as test3


请大家看看 这是什么一个原因呢 ?
...全文
332 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MMDD0827 2012-02-08
  • 打赏
  • 举报
回复
恩 ? 能不能详细点 双引号嵌套错误 ?
ohmygirl 2012-02-08
  • 打赏
  • 举报
回复
exec("echo -e \"0\\n0\\n\"|sudo smbpasswd -as test3");

双引号嵌套错误了,不是必须shell文件然后调用

exec('echo -e \"0\\n0\\n\"|sudo smbpasswd -as test3');
MMDD0827 2012-02-08
  • 打赏
  • 举报
回复
不是 权限问题的! 现在已经解决了 最终是 把要执行的命令 写入一个shell脚本文件中 ,然后用php 来调用这个脚本文件,然后就正常了……
但是不知道为什么这样就行了 !
大家可以尽量讨论一下撒 ?
ohmygirl 2012-02-07
  • 打赏
  • 举报
回复
权限问题么?
用sudo权限执行你的php文件呢?

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧