我正在使用一个软件项目的自动测试套件。我有一个自动测试用例,它应该在找到特定文件时验证代码是否正常工作,但程序没有适当的权限来读取该文件的内容。这个测试用例目前在 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 中是否不可能禁止文件所有者读取它?
或者,如果可能的话,我需要什么命令行才能使文件所有者无法读取?