我想用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()
静默运行脚本。
如何在没有提示的情况下自动通过密码?
答案 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中。