LinuxサーバーをWindows共有にバックアップしています。現在、Windows共有をcifsにマウントし、増分バックアップにrsyncを使用しています。読んだ後に予想されるように、ファイルのパーミッションと所有権は保持されていません このsambaドキュメント :
コアCIFSプロトコルは、ファイルとディレクトリのUNIX所有権情報またはモードを提供しません。このため、ファイルとディレクトリは通常、uid =またはgid =オプションが設定されている値によって所有されているように見え、マウントのデフォルトのfile_modeおよびdir_modeに設定されたアクセス許可があります。
Windows共有への書き込み中にUNIXファイルのアクセス許可を保持するという目標を達成するにはどうすればよいですか?これを可能にする別のネットワークファイルシステムはありますか?
ありがとう。
CIFSプロトコルには、すでにSambaの一部であるPOSIXファイルパーミッション(ACLについては不明)のサポートを追加するための拡張機能があります。 Services for Unix(またはMicrosoftが現在呼んでいるもの)をインストールすると、この機能がWindowsにも追加されます。さらに、SfUには、Unixファイルシステム用に設計されたNFSv3用のサーバーとクライアントの両方が付属しています。
Edit:grawityが指摘しているように MSにはアドオンパッケージがあります これについて。読む 彼の答え 最初に。
この種のアクセス許可データを保存しないのはネットワークファイル共有プロトコルだけではありません。Windowsファイルシステム自体には、そのデータを保存する場所がありません。*。これを行う唯一の方法は、ウィンドウの上にある種のレイヤーを追加して、ファイルシステムとそれらの機能を備えたネットワークプロトコルの両方を持つことです。これは、ディスクイメージを備えた仮想マシン、cygwinを備えたクレイジーな魔法、または特別なWindowsドライバーである可能性がありますが、すべてある程度の作業が必要になります。
ユースケースが本当に単純でバックアップが好きな場合は、代わりにtar
を使用することを検討してください。またはrsnap
。これらは、すべてのファイル許可データが埋め込まれたデータの単一ファイルオブジェクトを作成し、それらを圧縮して、ネットワークを介して任意のファイルシステムに送信できます。増分データ更新を処理する方法もあります。これは、問題を解決するためのローテクな方法かもしれません。
*比較可能性レイヤーを設定し、追加のアクセス許可データを格納するServices forUnixツールセットを追加しない限り...どこかに。