【问题标题】:copying linux device files through rsync-daemon fails通过 rsync-daemon 复制 linux 设备文件失败
【发布时间】:2016-02-17 00:16:31
【问题描述】:

我可以通过这种方式复制 linux 设备文件而不会出现任何错误:

rsync --recursive --links --perms --times --group --owner --devices --specials --xattrs --acls --stats /path/to/dev root@MACHINE:/path/to/bkps/

但是我遇到了很多类似的错误

跳过非常规文件“dev/audio”

当我这样做时:

rsync --recursive --links --perms --times --group --owner --devices --specials --xattrs --acls --stats /path/to/dev  rsync://root@MACHINE/MODULE/

MACHINE 上的 rsync 以守护程序模式运行,其 rsyncd.conf 包含以下配置:

lock file = /var/run/rsync.lock
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
strict modes = true
uid = UID_TO_SET
gid = GID_TO_SET
read only = no
list = yes

[MODULE]
path = /path/to/bkps/

上述命令行的唯一区别是目标路径:

root@MACHINE:/path/to/bkps/

对比

rsync://root@MACHINE/MODULE/

谁能帮我解决这个问题? 谢谢

【问题讨论】:

    标签: linux rsync


    【解决方案1】:

    守护进程和模块必须是 uid root,--owner--devices 才能工作。从您的rsyncd.conf 中不清楚uidgid 的值是什么。仅仅因为您的用户被命名为 root 并不意味着守护程序或模块正在以 root 权限运行。

    此外,您可以替换以下参数:

    --recursive --links --perms --times --group --owner --devices --specials

    使用-a--archive,这是所有这些的别名。

    【讨论】:

      【解决方案2】:

      感谢 Matt 的意见,经过更多的手动阅读和测试,我可以解决问题:

      • rsyncd.conf 中的 UID 和 GID 指令确实指定了非特权的“普通”用户/组,因为我认为这些指令是设置复制数据的用户/组

      • 由于 rsync-daemon 是由系统在启动时启动的,所以我认为它仍然以 root 身份运行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-24
        • 2011-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多