我对hdfs中权限组的工作方式感到非常困惑,至少在我的集群中是这样。假设我有unix用户kranach,它属于bla组。我在cdh5上安装了hadoop2集群,有一个unix组hadoop,用户hdfs、yarn和mapred belogns(但不是kranach,他与hadoop无关)。
现在,我在hdfs中的根目录有如下权限 drwxr-xr-x - hdfs supergroup 0 2015-01-27 23:08 /
所以,我假设我,kranach,不属于超群,我不应该被允许在/下创建目录。但是当我这么做的时候: kranach@czarnobog:~$ hdfs dfs -mkdir /bla kranach@czarnobog:~$ hdfs dfs -ls / Found 6 items drwxr-xr-x - kranach supergroup 0 2015-01-27 23:27 /bla
所以我刚刚创建了目录,它属于我和超群。但我不在超群里,一开始就不应该被允许在那里创建dir!根据hadoop文档(http://hadoop.apache.org/docs/r1.2.1/hdfs_permissions_guide.html#configuration+参数)默认情况下,hadoop只检查linux用户的“group”命令,对于我的用户来说,这显然不显示supergroup(它甚至不存在)。
谁能给我解释一下这种行为吗?并告诉如何防止它(即,我想在这个盒子上有用户,他们被允许访问hdfs,但不能在那里写任何东西)。
1条答案
按热度按时间envsm3lx1#
好吧,长话短说,看来安全系统毕竟被禁用了。我只是不知道服务器端服务不使用/etc/hadoop/conf,但是每个服务都有自己的配置
/var/run/cloudera-scm-agent/process/_process-name/
. 这些也可以在cm ui中看到,例如cm->hdfs->instances->namenode->processes->hdfs-site.xml。http://community.cloudera.com/t5/storage-random-access-hdfs/hdfs-default-permissioning-workes-weird-cdh5-1/m-p/24137#u24137