gpt4 book ai didi

java - 如何在java7中为特定用户设置文件访问属性

转载 作者:行者123 更新时间:2023-11-30 04:32:02 24 4
gpt4 key购买 nike

我正在使用 java7 文件 api。为了设置文件的所有者,我搜索并能够更改所有者属性。我的代码是

public static void main(String[] args){

Path zip=Paths.get("/home/ritesh/hello");
try{
FileOwnerAttributeView view
= Files.getFileAttributeView(zip,FileOwnerAttributeView.class);

UserPrincipalLookupService lookupService
=FileSystems.getDefaullt().getUserPrincipalLookupService();

UserPrincipal owner=null;

try{ owner =lookupService.lookupPrincipalByName("rashmi");}
catch(UserPrincipalNotFoundException e){System.out.println("User not found");}

view.setOwner(owner);

} catch (IOException e){
e.printStackTrace();}
}

通过这段代码,我可以设置文件的所有者。但我的任务是授予用户(rashmi)对文件的读取访问权限,并为另一个用户授予读/写访问权限。如何向用户授予特定访问权限请提供一些代码或链接,以便我可以完成我的任务。

最佳答案

这取自 AclFileAttributeView 的 Java 7 Javadoc(稍作重新格式化):

 // lookup "joe"
UserPrincipal joe = file.getFileSystem().getUserPrincipalLookupService()
.lookupPrincipalByName("joe");

// get view
AclFileAttributeView view = Files.getFileAttributeView(file,
AclFileAttributeView.class);

// create ACE to give "joe" read access
AclEntry entry = AclEntry.newBuilder()
.setType(AclEntryType.ALLOW)
.setPrincipal(joe)
.setPermissions(AclEntryPermission.READ_DATA,
AclEntryPermission.READ_ATTRIBUTES)
.build();

// read ACL, insert ACE, re-write ACL
List<AclEntry> acl = view.getAcl();
acl.add(0, entry); // insert before any DENY entries
view.setAcl(acl);

您需要使用正确的AclEntry代码。请参阅AclFileAttributeView Javadoc .

关于java - 如何在java7中为特定用户设置文件访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14403570/

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