我正在用Java开发Web应用程序,将其部署在Wildfly 15中。Wildfly与特定用户(wildfly或jboss)一起运行,该应用程序将创建文件(.docx),例如:在特定目录中的stuff.docx / opt / documents,此目录将登录到其他用户(大声笑)。
用户“ lool”运行另一个应用程序(loolwsd LibreOffice Web)来编辑文本,但是对权限有严格的要求,并且必须是文件的所有者。我已将wildfly用户添加到编辑器组,并将目录和文件中的组权限更改为775,但是编辑器无法正确执行。
我尝试使用Java NIO更改所有者,但抛出“不允许操作”
示例:
Path path = Paths.get(sPath);
FileOwnerAttributeView foav = Files.getFileAttributeView(path, FileOwnerAttributeView.class);
UserPrincipal owner = foav.getOwner();
logger.info("Original owner of " + path + " is " + owner.getName());
FileSystem fs = FileSystems.getDefault();
UserPrincipalLookupService upls = fs.getUserPrincipalLookupService();
UserPrincipal newOwner = upls.lookupPrincipalByName("lool");
foav.setOwner(newOwner);
UserPrincipal changedOwner = foav.getOwner();
logger.info("New owner of " + path + " is %s%n" + changedOwner.getName());
当我从Wildfly创建文件(由wildfly创建)时,我希望在此过程之后将用户更改为编辑用户。如何安全地从Java(在Wildfly中)更改文件用户所有者?
答案 0 :(得分:0)
我认为您可以在文件系统上启用ACL并使用setfacl命令将权限授予其他用户
类似这样的东西:
setfacl -m d:g:<groupname here>:rwx /shome/path
d-是默认规则。此文件夹中的所有新内容都将具有此权限。
g-组