我使用synchronize模块运行ansible,它下面运行rsync。我的问题与ansible无关,因为我从调试输出中获取rsync命令并手动运行它--仍然是相同的问题。
我运行的命令是:
/usr/bin/rsync --delay-updates -F --rsync-path="sudo rsync" --compress --delete-after --archive "/local/path" "ansible@1.2.3.4:/remote/path" --chown=myuser:myuser
无论我尝试什么,我最终都会得到属于root:root的目录。
因此,我现在成功地将rsync作为root运行,因此它应该具有所有必要的权限。我还试过使用--usermap=*:myuser --groupmap=*:myuser - nothing。
我添加了--chmod=750 --没有被应用。
在调试输出(-vvvv)中,我可以再次看到参数,但仅此而已。
Debian 8上的rsync为3.1.1。
任何帮助都将不胜感激..。
发布于 2018-11-04 17:27:25
sudo不是罪犯..。部分原因是我,也许它也是一个错误/特性,其工作方式与预期不同。
我的ansible任务将源文件夹名添加到目标路径,这导致创建了该路径,并且比在该文件夹中创建的源文件夹更多,从而有效地将文件夹结构加倍为/destination/path/source/source/...。
--chmod正在应用于第二个source文件夹,但不应用于作为目标结构一部分创建的文件夹。因此,顶部的source属于根,而第二个source也属于它应该属于的用户。
修正了我的不可用的任务使用正确的路径,因此也是这个问题。
我想知道是否应该期望rsync也会创建chown/chmod文件夹,作为目标路径的一部分?
https://serverfault.com/questions/938023
复制相似问题