11

cwRsyncを使用して、WindowsからUbuntuにファイルを同期します。このプロセスは以前はVistaで正常に機能していましたが、Windows7にアップグレードしてから、アクセス許可の問題が発生し続けます。

いくつかの背景...Vistaで同じ権限の問題を取得するために使用しましたが、CYGWIN=nontsec環境変数を使用することで解決しました。

プレミッションの問題

rsync: failed to modify permissions on xxx: Permission denied (13)

WindowsとUNIXのファイルパーミッションは異なるため、ファイルをWindowsパーミッションと同期しても意味がありません。rsyncが行うことは、UNIX側の権限を0(d---------)に設定することです。これを防ぐために、cygwinにはnontsecWindowsファイルのパーミッションを無視するように指示する変数があります。

問題は、Windows7ではnontsec効果がないように見えることです。

4

5 に答える 5

7

あなたの解決策に関して、私はそれが私のために働くことを確認するために調整をしなければなりませんでした-あなたのetc / fstabコンテンツの代わりに、私はあなたが参照するフォーラムトピックからこのコンテンツを使用しました:

none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

cwRsyncインストーラー4.0.3を使用しています。私はそれが私のために働くのに十分満足していますが、fstabの構文とオプションに十分に精通していないので、理由を提供することはできません。うまくいけば、それは他の誰かに役立つ何かを追加します。

于 2010-02-01T14:57:43.533 に答える
2

これは、cwrsync FAQでも対処されています: http ://www.itefix.no/i2/node/11324

FAQ(およびRaiseの回答)で修正を報告することもできます。

于 2011-05-27T20:49:54.660 に答える
2

問題の原因はWindows7ではないことがわかりました。むしろ、nontsec環境変数を無視していたのはcwrsyncの新しいバージョンでした。1.7より後のバージョンのcwRsyncの場合、オプションを使用する必要がありnoaclます。(フォーラムのトピック:RSYNCバックアップフォルダーのサブフォルダーへのアクセスなしを参照してください)

解決策には、次のオプションfstabを使用してファイルを作成することが含まれます。noacl

# In this example, my cwRsync dir is located at: "C:/Program Files (x86)/cwRsync"
# Filename: "C:/Program Files (x86)/cwRsync/etc/fstab"
C:/Program\040Files\040(x86)/cwRsync / ntfs override,binary,noacl 0 0
C:/Program\040Files\040(x86)/cwRsync/bin /usr/bin ntfs override,binary,noacl 0 0

以上です!CYGWIN=nontsecenv varは使用されなくなったため、削除することもできます。

于 2010-01-28T19:13:36.837 に答える
2

SolarisベースのウェブホストからローカルPCにコピーするときに同じ問題が発生していました。ファイルがコピーされたときに、PCのアクセス許可が無効になりました。fstabファイルをセットアップしましたが、行きません。

結局、rsync.exeへのフルパス呼び出しを行っていることに気付きました。これは、現在のディレクトリが、作成したばかりのetcフォルダーを取得していないことを意味します。これを解決するために、rsyncコマンドの呼び出しのすぐ上にこれらの行を追加しましたが、完全に機能しました。

SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
c:
cd %CWRSYNCHOME%

これで、ファイルのアクセス許可は、問題なく親フォルダーのアクセス許可に正しくデフォルト設定されます。

将来誰かが私と同じ問題に遭遇した場合に備えて、これをこのスレッドにタグ付けしたかっただけです。

于 2010-07-10T17:49:36.913 に答える
1

同じ問題が発生しましたが、宛先フォルダーがrsyncフォルダーの外にあることに気付くまで、どの解決策も機能しませんでした。(LinuxからWindowsにファイルをrsyncしたかった。)

これが私のために働いたものです:

  1. etccwRsyncフォルダー内(つまり、常駐する場所)にサブディレクトリを作成しますrsync.exe

  2. fstabそのフォルダ内に(サフィックスなし)という名前のファイルを作成します。

  3. そのファイルに1行挿入しfstabます。必ず、UNIXの行末を付けてください。

    none /cygdrive cygdrive binary,posix=0,user,noacl 0 0
    
  4. 環境の設定:

    SET CWRSYNCHOME=<cwRsync installation path>
    SET HOME=<Directory to save user configuration files, like ssh known_hosts>
    
  5. rsync.exeを開始する前に(これは私の場合、最も重要なステップでした):

    cd <Destination folder>
    

このSET HOME部分はSSHにとって重要で.sshあり、ファイルを使用してそこにサブフォルダーを作成しknown_hostsます。

于 2015-02-15T13:45:18.740 に答える