我rsync --rsh "ssh"
用来推镜子。在镜像上设置必要的文件系统权限需要在镜像rsync
上以 root 权限运行。但是,镜像文件位于单个层次结构下,我希望rsync
只允许访问该层次结构,而不允许访问镜像上的其他任何内容。
我将如何允许rsync
设置权限同时限制访问?
是否可能有一些组合rsync --rsh "???"
和command="???"
选项authorized_keys
可以解决问题?该rsync
命令已经在使用专用键authorized_keys
。
或者有没有办法rsync
以非特权用户身份连接,被监禁,然后获得设置文件系统权限的访问权限?监禁进程很容易,但允许远程rsync
获得权限似乎很困难,并且允许被监禁的进程获得任何权限似乎有风险。(当然,现在这个过程有根,任何程度的限制都是一种改进,即使只是为了减轻事故。)
要将远程位置同步到本地位置:
要将本地位置同步到远程位置:
从手册页(http://linux.die.net/man/1/rsync):
要让 rsync 在不提示输入密码的情况下工作,您需要通过生成 rsa 密钥并将它们输入到各自的授权密钥中来配置源服务器和目标服务器之间的信任。这是一个很好的教程:
http://troy.jdmz.net/rsync/index.html
您应该
rsync
从您的镜像运行,并将您的原始镜像作为源。根据您的用例,您应该将其作为
cronjob
(定期)或sshkey
命令(推启动拉,实际上是推)运行。在我的特殊情况下,解决方案是使用作为应该拥有被镜像文件的用户
rsync --rsh "ssh"
进行连接,并使用 ssh 配置将该用户 chroot 到适当的层次结构。在目标服务器上使用类似这样的配方:
最后,从远程系统,作为非特权用户,将数据推送到镜像: