HDFS对文件和目录的访问控制模型和Linux也很相似。
HDFS有三种权限类型:读(r),写(w),执行(x)。读写权限和一般的文件系统类似,HDFS忽略对于文件的执行权限,用户一定要 拥有对目录的x权限才能访问目录的文件或者子目录。
每个文件或者目录都有一个mode,owner,group。下面的命令列出了用户目录(ls命令后面不带任何信息表示用户目录)下的目录和文件信息。
hadoop fs -ls
Found 2items
-rw-r--r-- 2 testuser supergroup 28 2009-05-25 17:52 /user/distribute-hadoop-boss/data2
drwxr-xr-x - distribute-hadoop-boss supergroup 0 2009-09-27 20:25 /user/distribute-hadoop-boss/datax
hadoop fs shell的chmod 和chown命令和Linux的操作也很类似
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
hadoop.job.ugi
这个属性设置用户使用fs shell访问时的用户名和用户组。如果没有设置这个属性,shell则采用当前操作系统登陆的用户名。
dfs.permissions
设为true表示hdfs启用权限控制。
超级用户
NameNode启动进程的用户就是hdfs系统的超级用户,超级用户拥有hdfs所有的权限
安全隐患
hdfs目前的用户校验没有密码机制,恶意用户如果把ugi参数设为超级用户名,就可以得到所有权限。