gpt4 book ai didi

java - 文件的访问权限

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:29 26 4
gpt4 key购买 nike

我们有一个 Java bean 通过 Files.write 将文件写入 Wildfly 的数据文件夹中,无论出于何种原因,新文件有时会获得完全错误的访问权限,并且无法从任何人处读取。

我无法重现此错误,我只是猜测发生了什么,并且仅从道听途说中了解大部分问题。

我们尝试像这样设置新文件的所有者,确定服务器是否是它的所有者,错误就会消失:

Path newFile = ...
Path dir = Paths.get(System.getProperty("user.home"));
UserPrincipal user = Files.getOwner(dir);
Files.setOwner(newFile, user);

有时会出现AccessDeniedException

然后我们尝试直接设置权限:

File file = newFile.toFile();
file.setReadable(true, false);
file.setWritable(true, false);
file.setExecutable(true, false);

这根本没有做任何事情。

最后我们尝试像这样设置 ACL:

Path folder = Paths.get(jbossDataDir);
AclFileAttributeView folderAttributes = Files.getFileAttributeView(folder, AclFileAttributeView.class);

AclFileAttributeView fileAttributes = Files.getFileAttributeView(newFile, AclFileAttributeView.class);
fileAttributes.setAcl(folderAttributes.getAcl());

但和以前一样,有时没有人可以再访问该文件。损坏的文件具有以下权限(无论这意味着什么),并且也无法通过双击打开:

BUILTIN\Administratoren:(F)
BUILTIN\Administratoren:(OI)(CI)(IO)
NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)
NT AUTHORITY\Authenticated Users:(M)
NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(DE)
BUILTIN\Benutzer:(RX)
BUILTIN\Benutzer:(OI)(CI)(IO)

并且 JBoss 数据文件夹具有以下权限:

Everyone:(OI)(CI)(M)
BUILTIN\Benutzer:(OI)(CI)(M)
Everyone:(I)(OI)(CI)(M)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administratoren:(I)(OI)(CI)(F)
BUILTIN\Benutzer:(I)(OI)(CI)(RX)
BUILTIN\Benutzer:(I)(CI)(AD)
BUILTIN\Benutzer:(I)(CI)(WD)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)

在这一点上,我对任何事情都心存感激,即使它“只是”能够重现最初的错误。有人有什么想法吗?

最佳答案

对我来说,你应该这样做

  • 检查他从所属组继承的用户权限
  • 或检查文件是否被其他进程(Virusscaner 等)独占锁定
  • 或比较可访问/不可访问的文件的 ACL

根据您发布的 ACL,我会说...

如果用户尝试访问使用本地用户帐户 (BUILTIN\Benutzer) 登录的同一台 PC 上的文件,则他拥有修改该文件的所有适当权限。

如果用户尝试从使用域用户帐户(NT AUTHORITY\Authenticated Users)登录的远程 PC 访问该文件,他也拥有修改该文件的所有适当权限。

这对我来说看起来不错。

关于java - 文件的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31847534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com