gpt4 book ai didi

java - 获取特定用户的文件权限

转载 作者:行者123 更新时间:2023-11-30 07:44:41 25 4
gpt4 key购买 nike

我想获得特定用户的文件权限。目前我正在做这样的事情:

 File file1 = new File(filePath);
System.out.println("write permissions: " + file1.canWrite);
//and other attributes

这提供了用户执行程序的权限。但问题是我想指定一个用户或至少打印文件的所有权限,而不仅仅是所有用户。有什么想法吗?

最佳答案

没有实现独立的方法来获取此信息。

你必须看看你在什么平台上执行。例如在典型的 UNIX 文件系统上,存在所有者、组和世界权限。

要检查用户是否是文件的所有者,请在此处回答: Get file/directory owner's name in Java正如上述链接中的答案所示,在某些实现中获取文件所有者可能会失败。

用户可能被禁止以所有者身份读/写文件,但仍然可以根据组或世界权限执行操作。要检查组,您必须根据文件系统和操作系统查询 LDAP 或 UNIX 组或 Active Directory。

当操作系统和文件系统支持 ACL 以及可以定义细粒度的每个用户权限的常规 UNIX 权限时,这会变得更加复杂。 Java 没有标准的 API 来访问这些。参见 "AclFileAttributeView aclAttr" always null on OpenSuSE Linux .现有的 java.nio API 在这里并不总是有用。

Sticky bit 也起着作用,在大多数 UNIX 中不允许非目录所有者移动或删除文件,但语义有所不同,请阅读:https://en.wikipedia.org/wiki/Sticky_bit

TL;DR:没有简单的方法,根据您的用例,您必须调用操作系统来获取每个用户的文件权限。

关于java - 获取特定用户的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52419496/

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