質問: yes
回答: 多くの場合、この問題は次のいずれかを有効にすることで発生します。 map archive(所有者にunix実行ビットを使用) map system(グループにunix実行ビットを使用) map hidden(その他にはunix実行ビットを使用) inherit permissionsにより、sambaはcreate maskなどを無視します inherit aclsもあります。デフォルトではnoになります。 第8章高度なディスク共有 の「ms-dosおよびunixでのファイルのアクセス許可と属性」は上記をうまく説明しています。ただし、microsoft office製品は奇妙な動作を引き起こし、バグ/予期しない動作を引き起こします。 create maskおよび/またはforce create modeを設定し、上記のマップまたは継承オプションを回避しても、microsoftofficeアプリケーションを使用してドキュメントを編集するときにグループ実行権限が設定されるのを見てきました。これは、他のプログラムでは発生しません。メモ帳で.txtファイルを編集すると、権限は正常に保たれます。 officeはファイルを作成するだけでなく、一時ファイル、名前の変更、アクセス許可を少し混乱させます。何度も掘り下げた後、samba posixaclのバグと混同される可能性があります。 古い2007年のdebianバグレポート "samba:posix aclsで作成モードを誤って解釈する" " デフォルトaclの誤った動作 "はsambaの最新のバグレポートのようですが、残念ながら 'resolved invalid'(時期尚早ですか?). linux側で観察された動作windowsエクスプローラのコンテキストメニューを介して作成された空のworddocxファイルの拡張acl(まだ開いておらず、wordで保存されていません)$ getfacl test.docx # file: test.docx # owner: tester # group: tester user::rw- group::rw- other::--- ms word2016で保存した後$ getfacl test.docx # file: test.docx # owner: tester # group: tester user::rw- user:tester:rw- group::rw- group:tester:rw- mask::rwx ubuntu 16.04 ltsでsamba構成を確認すると、デフォルトでmap archiveが有効になっているようですが、グループ実行ビットではなく所有者の実行ビットを使用する必要があるため、私の場合は原因ではありませんでした。$ testparm -s -v 2>&1 | grep 'map archive' map archive = yes windows側で観察された動作sysinternals process monitorを使用し、notepad.exeを使用した.txtファイルの編集とwinword.exeを使用した.docxファイルの編集を比較すると、オフィススイートは、一時ファイルの作成、名前の変更など、多くの凝ったフットワークを実行します。特に、notepad.exeとは異なります。 、winword.exeはアクセス制御リストをいじっているようです。 procmonで見られるようにsetsecurityfile information: group, dacl したがって、これがunixグループのアクセス許可がmicrosoftofficeアプリケーションによっていじられる理由だと思います。より詳細な調査では、正確に何が変更されたかを確認するために、windowsファイルオブジェクトのセキュリティ監査をオンにする必要がありました。イベントid4670は、適用された~wrd0000.tmp権限の変更を示しています(wordは、クラッシュした場合の定期的な保存と回復にこれを使用すると思います)。object: object server: security object type: file object name: c:\users\<user>\desktop\testaudit\~wrd0000.tmp handle id: 0xfd0 process: process id: 0x1ae4 process name: c:\program files\microsoft office\root\office16\winword.exe permissions change: original security descriptor: d:ai(a;id;fa;;;sy)(a;id;fa;;;ba)(a;id;fa;;;s-1-5-<sid>-1001) new security descriptor: d:(a;;0x1200a9;;;wd)(a;id;fa;;;sy)(a;id;fa;;;ba)(a;id;fa;;;s-1-5-21-<sid>-1001) sddl(セキュリティ記述子定義言語)でのアクセス許可の変更は、追加のace(アクセス制御エントリ)が追加されたように見えるdacl(随意アクセス制御リスト部分)です。 ace (a;;0x1200a9;;;wd)が前面に追加されます。これは私がそれをどのように解釈したかです: a;はアクセスを許可し、同じままであることを意味します ;継承なし 0x1200a9;はfile_generic_read | file_execute読み取りおよび実行アクセスを意味します wdは、「全員」の管財人を意味します その後、~wrd0000.tmpの名前がtest.docxに変更されます。これは、プロセスモニターでsetrenameinformationfile操作として表示されました。したがって、最終的にtest.docxは、何らかの理由でwordが行ったaceの変更の一部になります。