环境: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请大家看看 这是什么一个原因呢 ?

解决方案 »

  1.   

    权限问题么?
    用sudo权限执行你的php文件呢?
      

  2.   

    不是 权限问题的! 现在已经解决了   最终是 把要执行的命令 写入一个shell脚本文件中 ,然后用php 来调用这个脚本文件,然后就正常了…… 
    但是不知道为什么这样就行了 !
    大家可以尽量讨论一下撒 ?
      

  3.   

    exec("echo -e \"0\\n0\\n\"|sudo smbpasswd -as test3");双引号嵌套错误了,不是必须shell文件然后调用exec('echo -e \"0\\n0\\n\"|sudo smbpasswd -as test3');