Чтобы изменить разрешения существующего файла, вы можете использовать
Path p = Paths.get("/path/to/h2db.mv.db");
Files.setPosixFilePermissions(p, PosixFilePermissions.fromString("rwxrwx---"));
, где /path/to/h2db.mv.db
- абсолютный или относительный путь к вашему файлу.
770, однако, не должен использоваться для база данных, файл базы данных не является ни каталогом, ни исполняемым файлом. Возможно, вы имели в виду 660, для этого используйте PosixFilePermissions.fromString("rw-rw----")
.
Если вы хотите указать начальные разрешения, используя только код Java, вам нужно создать новый пустой файл с этими разрешениями до создания базы данных:
Path p = Paths.get("/path/to/h2db.mv.db");
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-rw----");
if (Files.notExists(p)) {
Files.createFile(p, PosixFilePermissions.asFileAttribute(perms));
}
// Some permissions may be removed by umask during file creation, so
// they need to be set again
Files.setPosixFilePermissions(p, perms);
Connection c = DriverManager.getConnection("jdbc:h2:/path/to/h2db");
Было бы более разумно установить umask
процесса вместо 0007
(из кода оболочки , например, с umask 0007
). С такими umask
новые файлы будут иметь разрешения 660
, новые исполняемые файлы и каталоги будут иметь разрешения 770
.