書き込み専用フォルダをアクセスベースの列挙を有効時に行う方法
Windows Serverには、アクセス権限のないフォルダやファイルを一覧表示させない機能があります。
具体的な設定例はEnable Access-based Enumeration on a Namespace(英語)、名前空間でアクセス ベースの列挙を有効にする(日本語)等を参考にして頂くとして、この機能を有効化するとデメリットもあります。
それは読み取り権限のないフォルダだけど、書き込みはできるフォルダ1)として使うことが簡単にはできないこということです。
当然ですが、読み取り権限のないフォルダ・ファイルはアクセスベースの列挙を有効にすると見えなくなります。
しかし、読み取り権限の設定を適切に設定するとできるようです。
つまり、今回の設定を行えばできます。
あまり設定例がなかったのでご参考までに。
書き込み専用フォルダのアクセス権限設定例
C:\Shares\が共有時のルートでC:\Shares\WriteOnly\フォルダをGuestユーザには書き込み専用としたい場合の例です。
今回の設定ではAdministrators等はフルコントロール、Usersに所属しているユーザは読み込み専用となり、Guestユーザには書き込み専用となります。
ドメイン環境下ではDomain AdminsやDomain Users等を適宜置換えて下さい。
なお、別のグループを作りそこに読み込み許可を与えればそこに所属しているユーザは見ることができます2)。
当該フォルダのプロパティから「セキュティー」タブの「詳細設定(V)」をクリックします。
その後、「アクセス許可の変更(C)」をクリックします。
「このオブジェクトの親から継承可能なアクセス許可を含める(I)」のチェックをクリックし、外します。
このようなダイアログがでてくるので、「追加(A)」をクリックします。
「継承元」のところで各エントリーが<継承なし>となっているのを確認し、「追加(D)」をクリックします。
当該のグループ名もしくはユーザ名等を入力し「名前の確認(C)」をクリックし、「OK」をクリックします。
適用先を「このフォルダーのみ」に変更します。
フォルダーのスキャン/ファイルの実行 ✔
フォルダーの一覧/データの読み取り ✔
属性の読み取り ✔
拡張属性の読み取り ✔
ファイルの作成/データの書き込み ✔
フォルダーの作成/データの追加 ✔
アクセス許可の読み取り ✔
以上7つの許可を設定し、OKをクリック。
先と同様に追加をクリックし、先ほど入れたグループ/ユーザ名を再度入力し「名前の確認(C)」をクリックし、「OK」をクリックします。
今度は、適用先を「サブフォルダーとファイルのみ」に変更します。
属性の読み取り ✔
拡張属性の読み取り ✔
ファイルの作成/データの書き込み ✔
フォルダーの作成/データの追加 ✔
以上4つの設定をし、OKをクリック。
もし既にファイル等がある場合は、「子オブジェクトのアクセス許可すべてを、このオブジェクトからの継承可能なアクセス許可で置換える(P)」にチェックをいれてください。
その後、「適用(A)」or「OK」をクリックしてください。
先ほど制限をかけたグループ等に所属するユーザで、当該ネットワークフォルダへアクセスし書き込み専用フォルダが見えていることを確認して、そのフォルダを開いてみてください。
その状態で、ファイルを書き込みしてください。すると書き込んだ瞬間そのファイル名は見えますが、再読込(F5等)をすると見えません。
しかし、同じファイル名でファイルを設置しようとすると存在が確認でき、同名で上書きしようとするとエラーとなります。
フォルダーも同様です。
注意点
CREATOR OWNERに権限を与えておかないほうがいいです。
作成したフォルダが見えますが中のファイルは見えない状態等変な表示となります。