【问题标题】:Execute a samba mount command without password prompt from PHP?在 PHP 没有密码提示的情况下执行 samba 挂载命令?
【发布时间】:2018-08-10 17:30:58
【问题描述】:

我想用 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() 静默运行脚本。
如何不提示自动传递密码?

【问题讨论】:

  • 添加到 /etc/sudoers
  • 对不起,我只是错过了我的问题中的一些重要部分。我是指用于文件共享的 Windows 帐户密码,而不是 Linux 本身

标签: php samba cifs


【解决方案1】:

您可以在 mount 命令中添加用户、密码和域。例如,只需定义用户名和密码,您的命令将如下所示:

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

参考文献:

mount cifs 手册页

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 2012-05-26
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多