
フェイルオーバー サーバー上の多数のフォルダーをミラーリングするために使用していますrsync
。ただし、サムネイルやフルテキスト インデックスなどの一部のファイルは、Web ユーザー (「nobody」という名前) のアプリケーションによって生成され、デフォルトで制限されたアクセス許可が設定されます。
また、私はこれを ssh 経由で実行しており、ルート アクセスが無効になっています。可能であれば、この状態を維持したいと考えています。
rsync を sudo として実行するように指示する合理的な方法はありますか? または、ファイルの権限を変更することを検討する必要がありますか?
答え1
あなたは出来る:
- rsyncで読み取るデータ用の新しいグループを作成し、そのグループにUIDを追加したり、ファイルやディレクトリのGIDを変更したりして適切な権限を設定すると、そのユーザー名でrsyncを使用できるようになります。
- 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 デーモンを実行しているマシン上の誰でもモジュール名にアクセスできるようになることに注意してください。
あまり深く調べたわけではありませんが、この方法では安全な公開鍵ベースの(したがってパスワードなしの)セットアップを作成できませんでした。しかし、できるかもしれません。