Windows 包含 Everyone=READ 的文件给出访问被拒绝

Windows file with Everyone=READ gives Access is denied

我有一个基于 Java 的应用程序,它在 C:\ProgramData 下的 Windows 上创建了许多文件...这些文件需要所有用户、来宾和自动 scripts/programs 而不是用户 运行。一个示例文件是 "ca-trust.crt",它是在应用程序 运行 作为服务时创建的(没有配置服务用户,因此它的 运行ning 作为本地机器上下文)。

我的应用程序明确地为 Everyone 组添加了一个 ACL 以具有 READ、READ+EXECUTE。但是,我的应用程序在尝试打开文件进行读取时得到 "Access is denied"。如果我 运行 Powershell 作为普通用户并且 运行 "type C:\ProgramData...".

也会发生同样的事情

有关权限和 "type ..." 命令输出,请参见下图。

如果我以管理员身份打开 PS 提示符并为同一个文件打开 运行 "type C:\ProgramData...",它工作正常。

用记事本打开文件也失败:

测试系统Windows10家企业非AD加入

除了所有 READ_* 标志外,还向 ACL 添加 SYNCHRONIZE 解决了这个问题。谢谢eryksun!