下面的代码段中使用的fileSystem对象已通过org.apache.hadoop.fs.FileSystem.get(Configuration conf)
获得。
下面传递的FsPermission对象是通过777的FsPermission.getDefault()
获得的。
public int mkdirs(Path f, FsPermission permission) {
try {
return fileSystem.mkdirs(f, permission) ? 0 : 1;
} catch (IOException e) {
LOG.error("Failed to execute 'mkdirs': " + e.getMessage());
}
return 1;
}
但是,即使通过777,创建的结果目录也具有755权限。
这里有什么不对劲?
最佳答案
process umask
几乎可以肯定设置为022
并屏蔽这些位。
Per the Wikipedia entry on umask
:
将umask
设置为022
(八进制)后,创建具有0777
请求的权限的内容将产生0755
的最终权限。
关于hadoop - 传递777时,Hadoop FileSystem mkdirs()创建具有755权限的目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42000592/