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の種類はありますか?
私のセットアップにはいくつかの問題がありました:
d
フラグとD
フラグが設定されていなかったため、ローカルユーザーがなぜできたのかはまだわかりませんが、削除/移動できません。 SMBができなかったときに削除します。fd
フラグです。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クライアントはローカルで作成されたファイルを削除できます。