
unison を使用して、2 つの EL6 ボックス間で /home ディレクトリを同期したいと思います。
ほとんどの記述では、unison が root として実行され、2 つのボックス間で root として ssh 接続できることを前提としています。ただし、/etc/passwd と /etc/login.block の両方で root ログインを無効にしています。sshd_config では、root として ssh 経由で接続することが無効になっています。
ルートログインを必要とせずに /home のようなものを unison 同期する一般的な方法や確立された方法はありますか?
私が考えたのは
- 両方のボックスに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を使用する
長所:
- ログインするためにルート権限は必要ありません
- sudoを使用すると、特権アクションを簡単に使用できます
- ラッパースクリプトを書くと、制御された環境になりやすくなります。
短所:
このアプローチは手動で行うとうまく拡張できません。何らかの構成管理が行われていれば問題ありません。