我想使用 unison 在两个 EL6 盒之间同步 /home 目录。
大多数文章都假设 unison 以 root 身份运行,并且可以以 root 身份在两个框之间进行 ssh 连接。但是,我们在 /etc/passwd 和 /etc/login.block 中禁用了 root 登录。在 sshd_config 中禁用了以 root 身份通过 ssh 进行连接。
是否存在一种常见和/或已建立的方法来同步 /home 之类的东西而不需要 root 登录?
我的一个想法是
- 在两个框上设置 uid:gid unison:unison
- 为 uid unison 配置一个 ssh 密钥对。
- 设置 unison/.ssh/authorized_keys 以便只有 unison 可以从远程运行
- 在 /home 上设置 acl setfacl -R -md:g:unison:rwx,g:unison:rwx /home
- 设置 cronjob 使其以 uid“unison”运行。
但我希望有一个更好、更普遍接受的方法
谢谢!
答案1
什么我通常会是创建角色账户。
- 创建一个角色帐户(实际上只是另一个用户,但我们为此保留了一个 uid 空间)——可能是你使用过的
unison
~unison/.ssh/authorized/keys
与限制模式一起使用,例如“force-command =“/usr/local/bin/unison-homesync.sh”- 写
/usr/local/bin/unison-homesync.sh
- 使用 sudo 执行所需的特权操作
优点:
- 无需 root 即可登录
- sudo 让使用特权操作变得简单
- 编写包装脚本可以轻松进入受控环境
缺点:
这种方法在手动操作时扩展性不佳。如果配置管理到位,则不会出现问题。