私はソフトウェア プロジェクトの自動テスト スイートを使用しています。特定のファイルが見つかったときにコードが正しく動作することを確認する自動テスト ケースがありますが、プログラムにはそのファイルの内容を読み取るための適切な権限がありません。このテスト ケースは現在 Linux と macOS で動作していますが、Windows でも動作するようにしたいと考えています。
ファイルはテスト プロセスによって作成され、読み取り権限が削除されるように変更され、コードがファイルの読み取りを試行し、テストはコードが予想どおりに失敗することを確認します。テストの実行後、権限が復元され (必要な場合)、ファイルが削除されます。
Linux および macOS では、読み取り権限が によって削除されるchmod 000 unreadable.txt
ため、ファイルはすべてのユーザー (root 以外) が読み取り不可になります。Windows でも同様の解決策を見つけようとしています。コマンドライン ツールを使用して、このテスト ファイルを現在のユーザーが読み取り不可にし、テストされたプログラムを失敗させることができます。
私の理解では、次のようなコマンドでicacls unreadable.txt /deny 'Everyone:(RC)'
問題が解決するはずです。icacls
拒否ルールを確認します。
Everyone:(DENY)(Rc,S)
しかし、それでもファイルを読み取るための完全なアクセス権は持っています。
icacls
および の呼び出しのさまざまな呪文を試し、特定のユーザー アカウントに対して を明示的に拒否するなどのさまざまな組み合わせを試しましたcacls
。すべて無駄でした。
疑問に思うのですが、Windows ではファイルの所有者がファイルを読み取ることを禁止することは不可能なのでしょうか?
または、可能であれば、所有者がファイルを読み取れないようにするために必要なコマンドラインは何ですか?