web-dev-qa-db-ja.com

WindowsクライアントからZFSSMBを介して、OpenIndianaのホスト上に作成されたファイルへの書き込みアクセス

nobodyユーザーとグループを使用して共有されるZFSを実行しているOpenIndianaサーバーがあります。 Solaris ACLのアクセス許可を完全には理解していませんが、Linuxスタイルのアクセス許可は知っています。クライアントはWindows8で、サーバーはOpenIndianaはoi_148です。

Windowsクライアントで書き込み権限を正しく機能させる方法を理解できていません。新しいファイルを作成することはできますが、OpenIndianaのシェルによって作成されたファイルを変更することはできません。

ファイル(_"local file"_)がbashでユーザーnobodyとしてローカルに作成され、別のファイル(_"smb file"_)がSMB(nobodyとして)を介してリモートで作成される場合)権限がまったく異なります。

_# ls -V
-rw-r--r--   1 nobody   nobody         0 Dec  2 12:24 local file
                 owner@:rw-p--aARWcCos:-------:allow
                 group@:r-----a-R-c--s:-------:allow
              everyone@:r-----a-R-c--s:-------:allow

-rwx------+  1 nobody   nobody         0 Dec  2 12:24 smb file
            user:nobody:rwxpdDaARWcCos:-------:allow
       group:2147483648:rwxpdDaARWcCos:-------:allow
_

Bashでは、_smb file_に書き込むことができますが、その逆の場合、Windowsクライアントは_local file_に書き込むことができません。 nobodyが所有者であり、ACLにwがあるため、SMBクライアントが_local file_に書き込むことができるように見えるため、これは私を混乱させます。

sharesmbの設定はかなり退屈ですが、ここでumaskのようなものを設定できることを望んでいます。

_sharesmb name=shared,guestok=true
_

これら2つを連携させて、SMBとローカルユーザーの両方が同じアクセス許可を生成する対称的なアクセス許可システムを持つにはどうすればよいですか?

すべてのファイルを同様の方法で作成できるように、ファイルシステムのルートに設定できるACLの種類はありますか?

2
gak

私のセットアップにはいくつかの問題がありました:

  • ローカルユーザーによって作成されたACLにdフラグとDフラグが設定されていなかったため、ローカルユーザーがなぜできたのかはまだわかりませんが、削除/移動できません。 SMBができなかったときに削除します。
  • ACLは、ACLが継承されるように設定されていませんでした。つまり、fdフラグです。
  • ZFS aclinheritプロパティは、passthroughではなくrestrictedに設定する必要があります。

例えば。:

# chmod A=owner@:rwxpdDaARWcCos:fd:allow /z/shared
# zfs set aclinherit=passthrough z/shared

SMBおよびローカルでファイルを作成した後:

$ ls -V
total 2
-rwx------+  1 nobody   nobody         0 Dec  8 00:17 local
                 owner@:rwxpdDaARWcCos:------I:allow
-rwx------+  1 nobody   nobody         0 Dec  8 00:17 smb
                 owner@:rwxpdDaARWcCos:------I:allow

ACLが継承されていることを示すIに注意してください。

ZFS設定については、 ZFS管理ガイド で説明されています。

restricted–新しいオブジェクトの場合、ACLエントリが継承されると、write_ownerおよびwrite_acl権限が削除されます。

passthrough–プロパティ値がpassthroughに設定されている場合、ファイルは継承可能なACEによって決定されるモードで作成されます。モードに影響を与える継承可能なACEが存在しない場合、モードはアプリケーションから要求されたモードに従って設定されます。

これで、SMBクライアントはローカルで作成されたファイルを削除できます。

2
gak