首页 > 解决方案 > 在java中使用八进制表示法设置文件权限

问题描述

我想从我的 java 代码中创建具有所需 unix 权限的文件和目录。unix 权限作为用户的输入,并以八进制数形式给出(例如 02775)。我发现java.nio.file.attribute.PosixFilePermission它非常方便,但它不允许设置 setgid (+s) 位。以下代码抛出java.lang.IllegalArgumentException: Invalid mode

Set<PosixFilePermission> posixPermissions = PosixFilePermissions.fromString("rwxrwsr-x");
Files.setPosixFilePermissions(someDir, posixPermissions);

另外我想避免手动将八进制数转换为posix权限字符串(例如:“rwxrw-rx”)。除了使用 chmod 命令触发子进程之外,还有什么方法可以在 java 中执行此操作?

标签: javalinuxposixfile-permissions

解决方案


推荐阅读