java进程没有使用setfacl在文件夹上正确设置权限

时间:2017-11-18 16:33:18

标签: java permissions dfs

我们有一个dfs服务器,其中存储了自动运行的结果。 由于某些奇怪的原因,相同进程和同一用户创建的不同文件夹的权限已经开始变化。

使用Files mkdir创建目录。以确保我尝试使用setfacl设置权限的相同权限。

当我从dfs服务器目录上的unix机器运行时,

setfacl工作正常 但是我需要在Windows OS上运行java进程。

来自cygwin,setfacl也可以正常工作。

然而,当通过Java运行时,它无法设置权限

这是从cygwin和java进程运行时的区别

CygWin的

setfacl.exe --set user::---,group::rwx,other::--x acl.txt
output:-----rwx--x 1 user group 0 Nov 18 21:43 acl.txt
correct

爪哇

String commandLine ="C:/tools/cygwin/bin/setfacl.exe --set user::--
 -,group::rwx,other::--x" +" " + dir.getAbsolutePath();
List<String> commandList = Arrays.asList(commandLine.split(" "));

ProcessBuilder processBuilderCommand = new ProcessBuilder(commandList);
Process process = processBuilderCommand.start();
process.waitFor();

  output:-
    drwxrwx---+ 1 useradmin group    0 Nov 18 21:52 acl
  incorrect

请注意,用户之间的差异已更改为管理员,因此不确定是否存在差异原因

问题是java没有设置我尝试使用setfacl从processbuilder设置的权限

getfacl对java和shell有不同的输出。

java: - (不正确)

$ getfacl acl
# file: acl
# owner: Administrators
# group: group
user::rwx
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
group:Users:r-x
mask:rwx
other:---
default:user::rwx
default:group::---
default:group:Authenticated Users:rwx
default:group:SYSTEM:rwx
default:group:Users:r-x
default:mask:rwx
default:other:---

Cygwin的

$ getfacl acl
# file: acl
# owner: Administrators
# group: group
user::---
group::rwx
other:--x

0 个答案:

没有答案