私はパブリック書き込み権限でディレクトリを作成しようとしています。私はそれが777
権限を持っていることを簡単にするために。ここに私のコードは次のとおりです。rootDirectory=/tmp/data
で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);
}
これは/tmp/data/2016/01
、777
権限を持つそれぞれのようなフォルダを作成する必要があります。代わりに、フォルダには775
権限(drwxrwxr-x。)があるので、パブリック書き込みが不足しています。なぜこのように動作していますか?そのようなパーミッションを設定するには、JVMに特別なパラメータが必要なのでしょうか? 私のシステムはFedora 24です、appは標準のSpring Bootアプリケーションで、mavenプラグインで起動します。
@OlivierGrégoireなぜそれが775として出てくるのか説明していないので重複していません。 – Michael
@Michaelここの質問の主な部分は「私はできません」、「なぜ」ではありません。他のトピックで受け入れられた答えは、それを修正する方法として完全です。 –
@OlivierGrégoire "**なぜこのように動作していますか? – Michael