I need to make a file rw only by the owner. How do you think of my code at the end?
Especially, for the aclView case, I tried on Windows, and the result is like C:\>icacls x x NT AUTHORITY\SYSTEM:(I)(F) BUILTIN\Administrators:(I)(F) BUILTIN\Users:(I)(RX) Successfully processed 1 files; Failed processing 0 files C:\>java A9 x C:\>icacls x x BUILTIN\Administrators:(DE,RD,WD) Successfully processed 1 files; Failed processing 0 files Can I simply set it to (DE,RD,WD)? Is the original (F) better? Do I need to retain the permissions of other non-USERS? Thanks Max ----- import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.*; import java.util.Collections; public class A9 { public static void main(String[] args) throws Exception { Path file = Paths.get(args[0]); PosixFileAttributeView posixView = Files.getFileAttributeView( file, PosixFileAttributeView.class); if (posixView != null) { posixView.setPermissions(PosixFilePermissions.fromString("rw-------")); return; } AclFileAttributeView aclView = Files.getFileAttributeView( file, AclFileAttributeView.class); if (aclView != null) { AclEntry.Builder builder = AclEntry.newBuilder(); builder.setPermissions( AclEntryPermission.WRITE_DATA, AclEntryPermission.READ_DATA, AclEntryPermission.DELETE); builder.setPrincipal(aclView.getOwner()); builder.setType(AclEntryType.ALLOW); aclView.setAcl(Collections.singletonList(builder.build())); return; } System.out.println("No idea how"); } }