非ルートユーザーとしての unison

非ルートユーザーとしての unison

unison を使用して、2 つの EL6 ボックス間で /home ディレクトリを同期したいと思います。

ほとんどの記述では、unison が root として実行され、2 つのボックス間で root として ssh 接続できることを前提としています。ただし、/etc/passwd と /etc/login.block の両方で root ログインを無効にしています。sshd_config では、root として ssh 経由で接続することが無効になっています。

ルートログインを必要とせずに /home のようなものを unison 同期する一般的な方法や確立された方法はありますか?

私が考えたのは

  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を使用する

長所:

  • ログインするためにルート権限は必要ありません
  • sudoを使用すると、特権アクションを簡単に使用できます
  • ラッパースクリプトを書くと、制御された環境になりやすくなります。

短所:

このアプローチは手動で行うとうまく拡張できません。何らかの構成管理が行われていれば問題ありません。

関連情報