我試圖使用公共寫入權限創建目錄。爲了簡化事情,我希望它具有777
權限。這裏是我的代碼:Java - 無法創建具有777權限的目錄(改爲775)
private static FileAttribute<Set<PosixFilePermission>> DIR_PERMISSIONS;
static {
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
DIR_PERMISSIONS = PosixFilePermissions.asFileAttribute(perms);
}
private Path ensurePath(LocalDate localDate) throws IOException {
String year = String.valueOf(localDate.getYear());
String month = String.format("%02d", localDate.getMonthValue());
Path path = Paths.get(rootDirectory, year, month);
return Files.createDirectories(path, DIR_PERMISSIONS);
}
隨着rootDirectory=/tmp/data
這應該像/tmp/data/2016/01
創建文件夾,每個777
權限。相反,文件夾具有775
權限(drwxrwxr-x。),因此它們缺少公開寫入。它爲什麼這樣工作?也許JVM需要特殊的參數才能設置這樣的權限? 我的系統是Fedora 24,應用程序是標準的Spring Boot應用程序,由maven插件啓動。
@OlivierGrégoire這不是重複的,因爲這不能解釋*爲什麼*它出現爲775. – Michael
@Michael這裏的問題的主要部分是「我不能」,而不是「爲什麼」。在另一個主題中接受的答案是完整的如何解決這個問題。 –
@OlivierGrégoire「**爲什麼**它以這種方式工作?」 – Michael