Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows file with Everyone=READ拒绝访问_Java_Windows_Acl - Fatal编程技术网

Java Windows file with Everyone=READ拒绝访问

Java Windows file with Everyone=READ拒绝访问,java,windows,acl,Java,Windows,Acl,我有一个基于Java的应用程序,它在Windows上的C:\ProgramData下创建了许多文件。。。所有用户、来宾和非用户运行的自动化脚本/程序都需要能够读取这些文件。一个示例文件是“ca trust.crt”,它是在应用程序作为服务运行时创建的(没有服务用户被配置为作为本地机器上下文运行) 我的应用程序显式添加了一个ACL,供组中的每个人读取、读取和执行。但是,我的应用程序在尝试打开文件进行读取时会获得“访问被拒绝”。如果我作为普通用户运行Powershell并运行“type C:\Pro

我有一个基于Java的应用程序,它在Windows上的C:\ProgramData下创建了许多文件。。。所有用户、来宾和非用户运行的自动化脚本/程序都需要能够读取这些文件。一个示例文件是“ca trust.crt”,它是在应用程序作为服务运行时创建的(没有服务用户被配置为作为本地机器上下文运行)

我的应用程序显式添加了一个ACL,供组中的每个人读取、读取和执行。但是,我的应用程序在尝试打开文件进行读取时会获得“访问被拒绝”。如果我作为普通用户运行Powershell并运行“type C:\ProgramData…”,也会发生同样的情况

有关权限和“键入…”命令输出,请参见下图

如果我以管理员身份打开PS prompt并对同一文件运行“type C:\ProgramData…”,则可以正常工作

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


测试系统是Windows 10 Enterprise non-AD-joined。

除了所有读取标志外,还向ACL添加了同步,修复了该问题。谢谢你,埃里克森

看起来您没有授予每个人对文件进行
同步的权限。使用Sysinternals
accesschk-lv
确认这一点。仅供参考,WinAPI
CreateFile
始终至少请求
SYNCHRONIZE | FILE_READ_ATRIBUTES
访问。您添加的ACE应授予通用权限,以确保包括这些权限,例如
generic\u READ | generic\u EXECUTE
。谢谢您!添加同步解决了这个问题!不明显,但win32很少明显。请在“允许ACE”中使用通用权限,在“拒绝ACE”中使用特定权限。每个支持安全性的类型都必须提供一个通用映射,该映射将通用权限映射到特定权限。对于文件,通用权限包括同步和读取文件安全性的标准权限。