Genel yazma izinleri ile dizin oluşturmaya çalışıyorum. İşleri kolaylaştırmak için 777
izinlerinin olmasını istiyorum. Bu /tmp/data/2016/01
gibi klasörleri oluşturmalısınız rootDirectory=/tmp/data
ileJava - 777 izni ile dizin oluşturulamadı (bunun yerine 775 var)
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);
}
, her 777
ile izinleri: İşte benim kod. Bunun yerine, klasörler 775
izinlerine (drwxrwxr-x.) Sahiptir, bu nedenle genel yazma yoksundur. Neden bu şekilde çalışıyor? Belki de JVM, bu tür izinleri ayarlayabilmek için özel bir parametreye ihtiyaç duyar? Benim sistemim Fedora 24, uygulama maven eklentisi tarafından başlatılan standart Spring Boot uygulaması.
@ OlivierGrégoire Bu bir kopya değil çünkü açıklamasın * neden * 775 olarak çıkıyor. – Michael
@Michael Buradaki sorunun ana kısmı "yapamıyorum", "neden" değil. Diğer konudaki kabul edilen cevap, bunu düzeltmek için tamamlandı. –
@ OlivierGrégoire "** Neden bu şekilde çalışıyor?" – Michael