如何解决高山docker映像中chrooted ssh中的Rsync导致无法设置权限
我使用来自alpine的简单dockerfile并安装了openssh和rsync。 将ssh用户chroot到其主目录,rsync和bash可执行文件以及chown,chmod等。并将其库复制到用户目录,以便可以通过ssh执行rsync。
当我将rsync与-p选项一起使用时(包括在-a中):
rsync -a -e 'ssh -p 2222' /home/user/Pictures/ localhost:/backups/071120
rsync:无法在“ / backups / 071120 /。 2019-12-26 13-47-24.png.NKoiaj“:没有此类文件或目录(2)The
文件已复制,但显然权限设置不正确。
我尝试使用ssh更改权限,并且一切都按预期方式工作,因此它不应成为文件夹权限问题。 然后,我尝试使用ubuntu基本映像,它可以按预期工作,因此高山基本映像中有些东西会阻止rsync更改权限。
有什么想法吗?
解决方法
在基于高山的图像上使用 rsync 遇到类似的问题。
解决方案应该是通过在以下行中指定否来禁用chroot
文件上的rsyncd.conf
设置:
use chroot = no
根据文档(https://download.samba.org/pub/rsync/rsyncd.conf.html),将该选项设置为 yes 可能会使按名称保存用户和组变得复杂
使用chroot
如果“ use chroot”为true,则rsync守护进程将chroot更改为 与客户端开始文件传输之前的“路径”。这有 防止可能实施的额外保护的优势 安全漏洞,但缺点是需要超级用户 特权,无法遵循以下两种情况的符号链接: 新根路径的绝对值或绝对值之外,以及使 按名称保留用户和组(请参见下文)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。