用户身份
在1.0.4这个版本的Hadoop中,客户端用户身份是通过宿主操作系统给出。对类Unix系统来说,
用户名等于`whoami`;
组列表等于`bash -c groups`。
将来会增加其他的方式来确定用户身份(比如Kerberos、LDAP等)。期待用上文中提到的第一种方式来防止一个用户假冒另一个用户是不现实的。这种用户身份识别机制结合权限模型允许一个协作团体以一种有组织的形式共享文件系统中的资源。
不管怎样,用户身份机制对HDFS本身来说只是外部特性。HDFS并不提供创建用户身份、创建组或处理用户凭证等功能。
HDFS本身是没有用户和用户组的概念的,如果想要将HDFS上的某个文件或者目录权限更改为某个特定的用户和用户组,只需要在登陆HDFS集群的宿主操作系统上,用特定的用户登陆然后创建即可,默认创建的目录或者文件属于该用户和supergroup用户组。
如果想更改目录或者文件所属的用户组,如果用默认的用户来修改所属用户组,会提示
chgrp: changing owership of '***': User does not belong to *** 的错误
可以用hdfs用户来修改,具体的操作命令
sudo -u hdfs hdfs dfs -chgrp -R [GROOP] Path
或者
sudo su hdfs
hdfs dfs -chgrp -R [GROOP] Path