PHP Linux + Windows - 共享和权限

时间:2013-01-02 17:34:46

标签: php linux windows permissions samba

我们有一个Windows主实例,可以将数据写入Linux节点,目前这个工作正常。在Windows上运行的PHP文件可以使用一个简单的脚本写入linux机器,如下所示:

file_put_contents('\\\\hostname\\share\\testfile.txt', 'testing123');

linux节点存储了windows php用户,并允许写入文件。但是,我们希望能够在linux机器上执行相同的操作,并写入Windows实例上的共享文件夹。与上面相同的行,但是使用windows主机和共享,仍然返回true,但实际上并未创建该文件。

  • 如果它不起作用,为什么该行返回true?这使得调试和测试错误变得非常困难。
  • 我们如何让脚本工作?解决方案是在Linux中挂载windows共享吗?这似乎不是一个合适的解决方案,因为我们可能会更改Windows共享或添加新的共享,我们不希望在每个Linux实例上继续安装和卸载共享。

我们已将linux用户添加到Windows共享权限,但它似乎无法正常工作。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:3)

我正在处理的项目只是安装了Windows共享。我们在/ etc / fstab文件中有条目,可以在引导计算机时自动挂载共享。例如:

//alpha/inetpub  /mnt/alpha  cifs  credentials=/root/credentials,_netdev,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,rw  0  0
//beta/inetpub   /mnt/beta   cifs  credentials=/root/credentials,_netdev,file_mode=0644,dir_mode=0755,uid=1000,gid=1000,rw  0  0

在我们的环境中,Windows共享不会更改名称。我们的Linux实例不需要访问所有Windows共享,因此我们只需更新fstab文件,以获取任何需要访问任何新共享的实例。

凭证文件是格式为的简单文本文件:

username=SOME_USERNAME
password=THE_PASSWORD_FOR_USERNAME

如果没有root访问权限的用户可能会查看某些其他脚本/文件,这只是保护用户名/密码对的一种简单方法。