
我想使用 unison 來同步兩個 EL6 盒子之間的 /home 目錄。
大多數文章都假設 unison 以 root 身份運行,並且可以以 root 身份在兩個機器之間進行 ssh。但是,我們在 /etc/passwd 和 /etc/login.block 中停用了 root 登入。 sshd_config 中禁用以 root 身分透過 ssh 連線。
是否有一種通用和/或既定的方法可以統一同步 /home 之類的內容,而無需 root 登入?
我的一個想法是
- 在兩個盒子上設定 uid:gid unison:unison
- 為 uid 統一配置 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 讓使用特權操作變得容易
- 編寫包裝器腳本可以輕鬆處於受控環境中
缺點:
手動完成時,該方法不能很好地擴展。如果有一些配置管理到位,那就不是問題。