以非 root 用户身份进行 unison

以非 root 用户身份进行 unison

我想使用 unison 在两个 EL6 盒之间同步 /home 目录。

大多数文章都假设 unison 以 root 身份运行,并且可以以 root 身份在两个框之间进行 ssh 连接。但是,我们在 /etc/passwd 和 /etc/login.block 中禁用了 root 登录。在 sshd_config 中禁用了以 root 身份通过 ssh 进行连接。

是否存在一种常见和/或已建立的方法来同步 /home 之类的东西而不需要 root 登录?

我的一个想法是

  1. 在两个框上设置 uid:gid unison:unison
  2. 为 uid unison 配置一个 ssh 密钥对。
  3. 设置 unison/.ssh/authorized_keys 以便只有 unison 可以从远程运行
  4. 在 /home 上设置 acl setfacl -R -md:g:unison:rwx,g:unison:rwx /home
  5. 设置 cronjob 使其以 uid“unison”运行。

但我希望有一个更好、更普遍接受的方法

谢谢!

答案1

什么我通常会是创建角色账户。

  1. 创建一个角色帐户(实际上只是另一个用户,但我们为此保留了一个 uid 空间)——可能是你使用过的unison
  2. ~unison/.ssh/authorized/keys与限制模式一起使用,例如“force-command =“/usr/local/bin/unison-homesync.sh”
  3. /usr/local/bin/unison-homesync.sh
  4. 使用 sudo 执行所需的特权操作

优点:

  • 无需 root 即可登录
  • sudo 让使用特权操作变得简单
  • 编写包装脚本可以轻松进入受控环境

缺点:

这种方法在手动操作时扩展性不佳。如果配置管理到位,则不会出现问题。

相关内容