在没有来自PHP的密码提示的情况下执行samba装载命令?

在没有来自PHP的密码提示的情况下执行samba装载命令?,php,samba,cifs,Php,Samba,Cifs,我想用PHP编写一个脚本,通过命令执行samba mount temporary sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,uid=testuser,gid=testgroup 正如您所知,它将提示输入WINDOWS而非linux的密码 但是我想使用shell\u exec() 如何在没有提示的情况下自动传递密码?您可以在mount命令中添加用户、密码和域。例如,

我想用PHP编写一个脚本,通过命令执行samba mount temporary

sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,uid=testuser,gid=testgroup
正如您所知,它将提示输入WINDOWS而非linux的密码

但是我想使用
shell\u exec()


如何在没有提示的情况下自动传递密码?

您可以在mount命令中添加用户、密码和域。例如,仅定义usernam和密码yor命令如下所示:

sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,password=TestUserPassword,uid=testuser,gid=testgroup
一个更好/更安全的选项是使用凭证文件,但是您失去了将用户名密码从php传递到mount命令的选项。以下是一个凭证文件示例:

1创建凭证文件:

sudo vim /etc/php.cred
2如果需要,添加用户名、密码和域。确保它们位于各自的直线上,且等号两侧之间不能有任何空格:

username=TestUserWindow
password=TestUserPassword
domain=TestDomain
3在mount命令中引用新创建的凭据文件:

sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o credentials=/etc/php.cred,uid=testuser,gid=testgroup
参考资料:

cifs手册页


这个问题还有很多其他答案。我建议你问“或”。基本上,当您正在执行shell命令而不再使用php时,请删除问题中的“php”部分。

Add-in/etc/sudoers抱歉,我的问题中遗漏了一些重要的部分。我指的是用于文件共享的Windows帐户密码,而不是Linux本身