如何在java中设置umask?

时间:2010-07-04 16:07:54

标签: java file-permissions

我是Java的新手。 api中umask暴露在哪里?

4 个答案:

答案 0 :(得分:13)

你不能直接使用umask,因为Java是一个抽象,而umask是特定于POSIX的实现。但是您有以下API:

File f;
f.setExecutable(true);
f.setReadable(false);
f.setWritable(true);

还有一些API,check the docs

如果您必须可以直接访问umask,可以通过JNI和chmod()系统调用来实现,也可以使用exec("chmod")生成新进程。

答案 1 :(得分:1)

Java SE 7中的

java.nio.file.attribute.PosixFileAttributes

答案 2 :(得分:0)

另一种方法是使用暴露POSIX系统调用的第三方Java库; e.g。

这种方法的问题在于它本质上是不可移植的(不能在非POSIX兼容平台上工作),并且需要特定于平台的本机库......以及所需的全部内容。 / p>

答案 3 :(得分:0)

import java.nio.file.Files
import java.nio.file.attribute.PosixFilePermission

File file = new File("/some/path") 
Files.setPosixFilePermissions(file.toPath(), [
                PosixFilePermission.OWNER_READ,
                PosixFilePermission.OWNER_WRITE
            ].toSet())
相关问题