nao2015
@nao2015

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

OS管理者権限でも開封できないフォルダを作りたい

実現したいこと

OS管理者権限のあるユーザーでも見えない(または開けない)フォルダをWindowsServer2022上に作りたいです

  • このサーバ内の特定のフォルダを特定の管理者権限ユーザー(ここではユーザーAとします)でも開けないようにしたい
  • EFSによる暗号化でOS管理者権限でも開封不可能なファイルは作れたが、フォルダ構造が見えてしまう
  • そのため、OS管理者権限のあるユーザーでも見えない(または開けない)フォルダを作りたい

前提

  • 動作環境は特定のネットワーク内で稼働するサーバー(Windows Server 2022)。そのため、サーバーは公共のネットワークにはつながっていないスタンドアローンのもの
  • ユーザーA以外がログオンしてそのフォルダを開いている状態でユーザーAがログオンしてもユーザーAはそのフォルダにアクセス(開くまたはフォルダ自体を見る)できないようにしたい。
  • ソフトを利用する場合、有償無償は問わない
  • Windows Server内への仮想環境の構築は別の制約で行うことができません

試したこと

  • 以下のようなフォルダを隠すことのできるソフトを検討してみましたが、以下のソフトの場合ユーザーA以外がそのフォルダを開く操作をすると、ユーザーAから見える状態になってしまうため、運用に適していませんでした https://fspro.net/hide-folders/
0

3Answer

フォルダのアクセス権で、対象ユーザーまたはグループの「フォルダの内容の一覧表示」を拒否に変えてしまう。と言うことは試されてますか?

image.png

単に隠したいだけってなら管理者権限で実行したコマンドプロンプトで

attrib +h +s "C:\対象のフォルダパス"

とすることで、フォルダに隠しファイルシステムの属性が付与され消えます。隠しファイル(フォルダ)なのでパスさえ知っていれば誰でもアクセスは出来ます。

昔ながらの方法ですが、このトリックはエクスプローラーの表示オプションでシステム属性の付いたファイルが最初から非表示になるように設定されているため非表示になります。
このオプションを外して使おうという人はほとんど居ません。なぜなら余計なファイルが大量に表示される&非推奨であるためです。

1Like

Comments

  1. @nao2015

    Questioner

    返信が遅くなり申し訳ございません。
    ご回答いただきありがとうございます。
    とても有効な手段かと思いますが、「このオプションを外して使おうという"わずかな人"がいる可能性を排除できないので、採用は難しいというのがコメントとなります。

どのくらいの強度が必要かにもよりますがこういうのはいかがでしょう?
やっていることはPowerShellを使ってファイル/フォルダの権限を根こそぎ奪ってます。

※この時は SYSTEMに対してだけ権限を残しています。

$FILE="C:\TEMP\ACL"
New-Item $FILE -ItemType Directory
$ACL=Get-ACL -path $FILE;
$ACL.SetAccessRuleProtection($true,$true);
$ACL.SetOwner((New-Object system.Security.Principal.NTaccount('Administrator')));
$ACL|Set-ACL -path $FILE;
$ACL=Get-ACL -path $FILE;
$ACL.Access|?{$_.IdentityReference -notlike '*SYSTEM'}|%{$ACL.RemoveAccessRule($_)};
$ACL|Set-ACL -path $FILE;

管理者ユーザーであっても一切触れなくなるのですが、以下のように親フォルダの権限を継承させれば通常のアクセス権に戻せます。
というか戻せてしまうので操作を知っていれば解除可能です。

$FILE="C:\TEMP\ACL"
$ACL=Get-ACL -path $FILE;
$ACL.SetAccessRuleProtection($false,$false);
$ACL|Set-ACL -path $FILE;

ただ、これでは誰も見れなくなってしまうので、特定の誰かに見せたい場合には以下のようなルールを ファイル/フォルダ に付与すればよいでしょう。

$ACL.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule("<domain>\<user>", "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")))
1Like

Comments

  1. いや、こんなことしなくても、特定のユーザーに全拒否のアクセス権を付けるのと同じですね。。。

  2. @nao2015

    Questioner

    ご返信ありがとうございます。
    管理者権限でも操作を知っていれば、戻せてしまうため採用することは難しいというのがコメントになります。

OS管理者権限のあるユーザーでも見えない(または開けない)フォルダを作りたい

暗号化したファイルを冗長化したmongoDBに登録するwebDEVサーバーを探す。または、構築する。

postgreSQL,nariaDBでもOK?

0Like

Comments

  1. @nao2015

    Questioner

    ご回答ありがとうございます。
    フォルダやファイルには、多数のアプリケーションを動かすためのシステムファイルがあるため、DBへの保存は想定していません。

Your answer might help someone💌