如何从java中设置掩码?

2022-09-04 21:01:04

我是Java的新手。掩码在api中的什么地方暴露?


答案 1

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

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

还有更多可用的API,请查看文档

如果您必须直接访问掩码,请通过 JNI 和 syscall 执行此操作,或者使用 生成一个新进程。chmod()exec("chmod")


答案 2
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())

推荐