Windowsでのrsyncファイルのアクセス許可


32

リモートマシンのファイルをネットワークドライブにドロップするマシンに同期するrsyncサービスがあります。

コピー先のフォルダーのネイティブアクセス許可を取得するには、コピーしたファイルが必要です。

同期プロセスは正常に実行されますが、終了後、一部のフォルダーにアクセスできません-許可が拒否されました。

ドメイン管理者としてログインしています。そのフォルダのアクセス許可を変更することもできません。何が得られますか?

コマンドを実行します:

rsync.exe  -v -rlt -z --delete "src_path" "dst_path"

現在どのコマンドを使用して同期していますか?
ジョンT

回答:


24

http://www.samba.org/ftp/rsync/rsync.htmlから)

要約すると、宛先ファイル(古いものと新しいものの両方)にソース許可を与えるには、を使用します--perms

(既存のファイルを変更せずに)新しいファイルにdestination-defaultパーミッションを付与するには、--permsオプションがオフになっていることを確認し、使用します--chmod=ugo=rwX(これにより、マスクされていないビットがすべて有効になります)。

この後者の動作を入力しやすくしたい場合は、この行をファイル〜/ .poptに入れるなど、poptエイリアスを定義できます(以下は-Zオプションを定義し、-no-を含みます) g宛先ディレクトリのデフォルトグループを使用するには)

    rsync alias -Z --no-p --no-g --chmod=ugo=rwX

ありがとう。使用する適切なフラグを思い出すことができませんでした...
ボクヒラ

2
これはLinuxのrsyncに関連していますが、Windowsドライブにrsyncするときの問題を常に解決するとは限りません。これは元の投稿が求めていることです。
サイモンイースト

18

Cygwinの「posix」セキュリティは--no-perms、rsync を使用しても、Windows NTFSファイルのアクセス許可に関する多くの問題を引き起こしました。

新しく作成されたファイル/フォルダーはデフォルトのアクセス許可を適切に継承しないことがわかりましたが、すべてのファイル/フォルダー<not inherited>はWindowsファイル/フォルダーの[高度なセキュリティ]タブに多くのエントリがあります。(そして、この問題はrsync関連だけではありません)。

この関連記事リンクの両方がnoacl、cygwinの/etc/fstabファイルのオプションを使用してこれらの問題を解決する方法で非常に役立つことがわかりました。このソリューションの欠点は、cygwinがファイル/フォルダーのアクセス許可を設定する機能を失うことですが、多くの場合、これは重要ではありません。

(このトピックをグーグルで検索すると、おそらくCYGWIN = NONTSEC環境変数の設定への参照が見つかりますが、これはcygwin v1.5向けであり、cygwin v1.7以降では機能しません。)


/ etc / fstabファイルを編集すると修正されました。これを行うには、DeltaCopyなどの別の展開ではなく、cygwin内でrsyncを使用する必要がありました。
マットコノリー

cygwinではなくcwrsyncパッケージだけを使用している場合、fstabファイルはどこに配置しますか?
サイモンイースト

cygwinは使用しません。OS Xにマウントされた通常のNTFSドライブを使用し、そこにファイルを同期します。次に、Windows内のこれらのファイルは、アクセス許可を完全に台無しにしました。解決策を探しています。
スティーブンルー

私は、組み込みドライバーを使用してmacOSにNTFSをマウントする「危険な」方法を使用しているようです。同じボートに乗っている場合は、そのことを覚えておいてください
スティーブンルー

8

WindowsでDeltaCopyを使用すると、次の機能を使用できます

rsync --perms --chmod=a=rw,Da+x ...

でもうまくいった --recursive


これはほとんど機能しましたが、バッチファイルなどが適切に実行されるように--chmodオプションを変更してa = rwxを含める必要がありました。
テイラー

1
これは私のために働いた唯一のオプションです。上記の--no-permsを試してみて、fstabを無効にしました。これにより、一部の<not inherited>権限のみが付与されました。これは、必要な権限の一種であり、実行中のユーザーに対する拒否権限は含まれていません。ありがとう!
-AronVanAmmers

DeltaCopyには、後で権限を修正できるchmod実行可能ファイルも含まれます。たとえば、chmod -R 777 / cygdrive / g
jnnnnn

1
--permsは、コピーを読み取り専用の問題として解決するために欠けていたものです。
タイラーS.ルーパー

1

rsync、少なくともCygwinでは、次のスイッチがあります。

-A、-aclsはACLを保持します(--permsを意味します)

私のCygwinバージョンは:

CYGWIN_NT-6.3 1.7.29(0.272 / 5/3)2014-04-07 13:46 x86_64 Cygwin

お役に立てれば!


1
スーパーユーザーへようこそ!これは理論的には質問に答えることができますが、改善のために、これが質問にどのように答えるかの詳細を含めることが望ましいでしょう(あなたの主張をバックアップするソースを引用することはプラスです)。
G-Manは「Reinstate Monica」と言います

1

上位の回答は、ssh over windowsでrsyncを使用している場合にのみ機能します。/ etc / fstabでnoaclを使用するだけでcygwin rsyncデーモンを使用している場合は、何らかの理由でユーザーを削除してnoacl、overrideなどを試しても継承を尊重しません。これは起こるようですトップレベルのドライブに再同期していて、/ etc / rsyncd.confでpath = / cygdrive / whateverを使用している場合。代わりに、/ etc / fstabに別個のマウントポイントを作成し、代わりにrsyncd.confでそれを使用する必要があります。

D:\     /d_drive  ntfs    binary,posix=0,noacl,user,override      0 0

/etc/rsyncd.confには、次のようなものがあります。

use chroot = yes

[d_drive]
path = /d_drive
comment = d_drive
auth users = someUser
secrets file = /etc/rsyncd.secrets
read only = false
write only = false
list = false
uid = someUser

その後、Windowsシステムを再起動する必要がありましたが、rsyncサービスのみを再起動するだけでは役に立たなかったため、chrootおよびchdirエラーがスローされ続けました(/ d_driveがマウントされ、chroot = falseを使用して書き込みができた場合でも)。次に、Windowsシステムにrsyncするときに次を使用します。

cd /local/path/to/copy
rsync -rltD --no-p --no-g --no-o  ./ rsync://someUser@localhost:remotePort/d_drive/

1

過去に、現在のユーザーにWindowsのアクセス許可を再割り当てした後takeown、昇格したコマンドプロンプトで次のように使用しました。

takeown /f <NameOfFolder> /r /d Y

もちろん、rsync最初に正しいフラグを使用した場合、これは不要rsyncですが、既にコピーしたファイルを再実行したくない場合は、これをお勧めします。


1
スーパーユーザーへようこそ!質問を注意深く読んでください。あなたの答えは元の質問には答えませ
デビッドポスティル

質問が「何を与えるのか?」その答えは解決策ではなく説明でもあると思いますので、ここでの答えのほとんどは質問に答えていません。これは、この問題に対する有用で文脈的に適切な追加ですが、より適切な場合はコメントに移動できます。
CodingLumis

ちょっと待ってください。50以上の評判がないので、コメントを追加できません。
CodingLumis

correct rsync flags>そしてそれらは何でしょうか?
oldmud0

@ oldmud0は、コピー中に許可を設定するフラグの適切な組み合わせについて、私の前にある回答を参照します。私のソリューションは、すでにファイルをコピーしたことがあり、それらを削除して再度コピーしたくない人に最適で、アクセス許可が正しいことを確認します。
CodingLumis

0

rsnapshotバックアップにrsyncを使用するでこの問題が発生しました。--relativeから削除してオーバーライドしましたrsync_long_argsc奇妙な権限を持つディスク自体のそのフォルダは作成されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.