rsyncでsudoを使用するにはどうすればいいですか

rsyncでsudoを使用するにはどうすればいいですか

フェイルオーバー サーバー上の多数のフォルダーをミラーリングするために使用していますrsync。ただし、サムネイルやフルテキスト インデックスなどの一部のファイルは、Web ユーザー (「nobody」という名前) のアプリケーションによって生成され、デフォルトで制限されたアクセス許可が設定されます。

また、私はこれを ssh 経由で実行しており、ルート アクセスが無効になっています。可能であれば、この状態を維持したいと考えています。

rsync を sudo として実行するように指示する合理的な方法はありますか? または、ファイルの権限を変更することを検討する必要がありますか?

答え1

あなたは出来る:

  1. rsyncで読み取るデータ用の新しいグループを作成し、そのグループにUIDを追加したり、ファイルやディレクトリのGIDを変更したりして適切な権限を設定すると、そのユーザー名でrsyncを使用できるようになります。
  2. rsync-over-ssh を使用するときにサーバー側で実行される正確なコマンドラインを取得します (ヒント: -v を複数回使用し、取得したコマンドラインから '-v' を削除することを忘れないでください)。また、特定のコマンドを強制する SSH 公開鍵認証を使用します (sshd(8) の AUTHORIZED_KEYS ファイル形式を参照してください)。

2 番の方法で、root ユーザーに対して ssh 経由で rsync を使用すれば、セキュリティを確保できます (sshd_config(5) の PermitRootLogin no-password を参照)。さらに良い方法としては、この 2 つを組み合わせて、特定の rsync コマンドラインでのみ使用できる非特権ユーザーを作成することもできます。

編集:SSH経由で認証データを送ってルートを取得する(例:ユーザーとしてSSH、ユーザーパスワードでsudo)ことは、ルートユーザーに直接SSHを実行する(公開鍵経由または良いパスワード)、私見です。

答え2

リモート rsync コマンドとして実行する内容は--rsync-path、次のように指定できます。

rsync --rsync-path='sudo rsync' --blah --blah /src blah@dest:/dst

答え3

使用することもできますrsyncデーモンただし、ここで説明した方法では、rsync デーモンを実行しているマシン上の誰でもモジュール名にアクセスできるようになることに注意してください。

あまり深く調べたわけではありませんが、この方法では安全な公開鍵ベースの(したがってパスワードなしの)セットアップを作成できませんでした。しかし、できるかもしれません。

関連情報