最近在搞一个php网页修改samba共享用户密码的事情,遇到很郁闷的问题背景:apache_2.2.24 php_5.3.24 CentOS6_x86-64 apache以root权限运行在php代码中
{
    $cmd = "/usr/local/bin/smbpwd ".$username." ".$userpwd;
    exec($cmd);
}
执行完成之后查看 /etc/samba/private/smbpasswd,发现对应用户名的密码已经被修改,但是改的不正确,外部无法访问这个samba共享。但是直接在命令行执行/usr/local/bin/smbpwd $username $userpwd可以得到正确的结果!求大神解释啊!
附smbpwd的内容:#!/bin/sh
userName=$1;
password=$2;
echo $password > /tmp/smbpwd.dat
echo $password >> /tmp/smbpwd.dat
(cat /tmp/smbpwd.dat) | smbpasswd -s -a $userName > /dev/null 2>&1;
phpsmbpasswd execphpsmbpasswdshellexec