我正在尝试寻找将文件从一台服务器传输到另一台服务器的最安全的方法。
我有以下架构:
目前我正在使用主用户salamis
来挂载目录。
原始目录中的文件是通过 PHP 文件管理器创建的elfinder
。
不幸的是,我无法通过 PHPmove
执行rename
或delete
挂载目录中的任何文件。我被拒绝了权限。
1)是不是因为我使用salamis
而不是 来挂载文件系统www-data
?
2) 将文件系统挂载Server 2
为是否安全www-data
?如果是,我该如何实现?www-data
没有密码,我无法使用 登录su -m www-data
。我得到authentication failure
。
3)你能想到更好的架构吗?
答案1
正如您所怀疑的,这可能是 uid/gid 映射的问题。首先,您需要找到 uid www-data
:
$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
然后你可以要求 sshfs 进行如下映射:
$ sshfs -o uid=33,gid=33 <remote> <local>
这也许能解决问题。
就设计而言,只要注意,如果您的 ssh 连接断开,挂载的文件系统也会断开。我不知道有什么简单的方法可以检测它(除了可能有一个 cron 作业可以检测它)。如果可以选择 NFS,它可能会更强大。不过,我确实发现 sshfs 非常方便。