具有Everyone = READ的Windows文件使访问被拒绝

时间:2018-07-26 20:49:29

标签: java windows acl

我有一个基于Java的应用程序,该应用程序在Windows上的C:\ ProgramData下创建了许多文件...所有用户,访客和非用户运行的自动脚本/程序都必须可读这些文件。一个示例文件是“ ca-trust.crt”,该文件在应用程序作为服务运行时创建(未配置服务用户,因此其作为本地计算机上下文运行)。

我的应用程序为组Everyone显式添加了一个ACL,使其具有READ,READ + EXECUTE。但是,尝试打开要读取的文件时,我的应用程序获得“访问被拒绝”。如果我以普通用户身份运行Powershell并运行“ type C:\ ProgramData ...”,也会发生同样的事情。

有关权限和“类型...”命令输出,请参见下图。

enter image description here

如果我以管理员身份打开PS提示符并为同一文件运行“ type C:\ ProgramData ...”,则效果很好。

使用记事本打开文件也失败: enter image description here

测试系统已加入Windows 10企业版非AD。

1 个答案:

答案 0 :(得分:0)

除了所有READ_ *标志之外,还将SYNCHRONIZE添加到ACL中解决了该问题。谢谢eryksun!