unison 作為非 root 用戶

unison 作為非 root 用戶

我想使用 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 統一配置 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 讓使用特權操作變得容易
  • 編寫包裝器腳本可以輕鬆處於受控環境中

缺點:

手動完成時,該方法不能很好地擴展。如果有一些配置管理到位,那就不是問題。

相關內容