CIFS/Sambaの制限を回避する

CIFS/Sambaの制限を回避する

私の状況: CIFS/Samba 経由で共有を提供する NAS があります。内部的には ext3 ファイルシステムを使用していますが、これは関係ありません (と思います)。Linux コンピューター (ext4 ファイルシステムを使用) がいくつかあり、それらの共有にバックアップしたいと考えています。

問題: バックアップに共有を使用すると、2 つの主な問題が発生します。一方では、一部のファイルの名前が非常に長く、CIFS が処理できないため、すべてのファイルを NAS にコピーできません。他方では、ファイルとディレクトリの権限が正しくコピーされません。たとえば、元のファイルの権限に関係なく、共有上のすべてのファイルに「実行」ビットがすべて設定されています。

質問: これらの「欠点」を回避して、ファイル名や権限を手動で処理せずにファイルをバックアップおよび復元できる最も簡単な方法は何ですか?

これまでの私の実験についての追加情報:

  1. 私の最初のアイデアは、共有上の (スパース) ファイル内に ext4 ファイルシステムを作成し、それをマウントして実際のバックアップに使用することでした。ここでの欠点は、ファイルシステムからファイルを削除しても共有上の ext4「ファイル」のサイズは小さくならず、ファイルシステムのサイズは最初から制限する必要があることです。作成後にサイズを変更するのは面倒です。

  2. 使ってみた暗号化ファイル名と権限を暗号化して、CIFS の制限を回避できると期待したからです。ファイル名は暗号化されますが、再びファイル名として使用されるので、これは機能しませんでした (したがって、長いファイル名は長くなるだけで、短くなりません)。また、権限は ecryptfs によって「隠される」わけではありません。暗号化されたファイルは元のファイルの権限を保持するだけなので、復号化されたファイルには再びすべての「実行」ビットが設定されます。

  3. IRC の親切な人が、動的な数の大きなファイルを使用して、それらを LVM のボリュームとして使用することを勧めてくれました。まだテストしていませんが、理論上は機能するはずです。共有上の複数のファイルに分散される ext4 の論理ボリュームを作成します。より多くのスペースが必要な場合は、さらにファイルを作成してボリュームに追加し、使用するスペースが少ない場合はいくつか削除できます。唯一の欠点は、サイズ変更 (および実際に必要なスペースの定期的なチェック) を実行する必要があることです。振り返ってみると、単一のファイルを使用する場合に比べて、切り捨て/拡張してから ext4 ファイルシステムのサイズを変更できるため、ほとんどまたはまったく利点がありません。

  4. 私が想像しているのは、たとえば、ファイル名と権限をデータベースに保存し、すべてをサポートするのに基礎となるファイルシステムに依存しない FUSE です。残念ながら、私はまだこのようなものを見つけていません。

答え1

ecryptfs を使用した Samba は、Ubuntu 14.04 で動作しているようです。

私はこのガイドを使いました:http://www.cyberciti.biz/faq/samba-smb-share にユーザーを追加する/

私の直感では、次の場合に同じパスワードを入力するのがコツです:

passwd USER

そして

smbpasswd -a USER

私は、パスワードが Samba に渡されたときに ecryptfs がそれを取得すると想定していますが、これがどのように行われるのかを明確に説明していただければ幸いです。

関連情報