【问题标题】:Preserving ownership of file with Lsyncd使用 Lsyncd 保留文件的所有权
【发布时间】:2017-02-27 19:19:44
【问题描述】:

我有两台服务器:源服务器和目标服务器。我想使用 lsyncd 将源服务器目录中的文件同步到目标服务器上的另一个目录。

在我的 ssh 守护进程中,在两台服务器上,我都禁用了 root 登录 (PermitRootLogin no),因此我不能使用 root 用户通过 ssh 运行 lsyncd。

我在两台服务器上创建了一个用户“同步器”,该用户具有一个密钥对,允许从源服务器到目标服务器的无密码 ssh 登录。所以这行得通:

[syncer@source-server]$ ssh syncer@target-server

我的 lsyncd.conf 如下所示:

settings = {
    logfile = "/var/log/lsyncd.log",
    statusFile = "/var/log/lsyncd.stat",
    statusInterval = 2
}


sync {
    default.rsync,
    source="/var/www/html/",
    target="target.server.ip:/backup/",
    rsync = {
        rsh ="/usr/bin/ssh -l syncer -i /home/syncer/.ssh/id_rsa",
        compress = true,
        acls = true,
        xattrs = true,
        archive = true
    }
}

它可以工作除了目标服务器上复制文件的所有者始终是“同步器”。源的权限得到尊重并在目标上正确复制。我只是想不出一种方法来保留复制文件的所有者(和组)。 (即,如果源上的文件归“deknuth”所有,我希望目标上的同步文件也归“deknuth”所有,而不是“syncer”)。

TIA

【问题讨论】:

  • 这到底为什么会被否决?一个解释会有些道理。
  • 好建议!!!!

标签: linux file-transfer lsyncd


【解决方案1】:

要关闭此操作,使用非 root 用户将始终以该非 root 用户作为目标所有者的文件移动文件——无论源文件的所有者是谁。这可能是可以接受的。如果没有,请以 root 身份运行 lsyncd 并允许使用密钥对的 root 登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2013-11-16
    • 2013-10-08
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多