在没有密码提示的情况下从PHP执行samba mount命令?

时间:2018-08-10 17:30:59

标签: php samba cifs

我想用PHP编写一个脚本,该脚本通过命令执行samba临时安装

sudo mount -t cifs //xx.yy.zz/windows_shared /var/www/html/test -o user=TestUserWindow,uid=testuser,gid=testgroup

如您所知,它将提示您输入 WINDOWS密码而非Linux。

但是我想使用shell_exec()静默运行脚本。
如何在没有提示的情况下自动通过密码?

1 个答案:

答案 0 :(得分:0)

您可以将用户,密码和域添加到安装命令中。例如,仅通过usernam和password定义的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在安装命令中引用新创建的凭据文件:

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

参考文献:

mount CIF手册页

这个问题还有很多其他答案。我建议您询问“ mount cifs example using credentials file”或“ mount cifs example username password”。基本上,在执行shell命令时不再出现问题的“ php”部分,而不再是在php中。