web-dev-qa-db-ja.com

rsync(chown chmod)で宛先のアクセス許可を設定するにはどうすればよいですか

マウントポイントからローカルフォルダーまで、ローカルrsyncを実行しようとしています。所有者、グループ、および権限を特定の設定に設定する必要があります。これが私が使っているものです:

 rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test

私はディレクトリとファイルの両方で760のパーミッションを取得し、所有権のroot:rootを取得します(rsyncはrootとして実行されます)。

何が悪いのですか?

TIA

12
Roger Creasy

権限と所有者/グループ情報を設定することをrsyncに通知する必要があります。 --chmodまたは--chownがあるとわかると思うのは当然ですが、そうではありません。

権限を伝播するには、--permsまたは-pフラグが必要です。所有者/グループには、所有者/グループ/権限情報を設定するための--owner --groupまたは-ogフラグが必要です。

ドキュメントは少し不明確に書かれているので、パーミッションが異なる組み合わせでどのように処理されるか、または既存のファイルが影響を受けるかどうかは明確ではありません。

19
Sami Kuhmonen

私は 同じ質問のこのStackOverflowバージョン がより役立つことを発見しました。それは、Rogerのようで、--chmodの形式について異なる設定のrsyncがあるためです(私のものはDebianの3.1.3です)。パッケージ)。

Samiが言ったように、rsyncには「権限」を伝える必要があるため、-pを含めるか、-aを使用して暗黙的に含めます。ただし、コマンドを実際に実行するには、「D755、F644」形式ではなく、(たとえば、ディレクトリ755およびファイル644の場合)--chmod=Du=rwx,Dg=rx,Do=rx,Fu=rw,Fg=r,Fo=rが必要です。

1
FarFetchd