为了给hadoop创建用户,进行用户权限测试,需要在centos下创建用户和组别。
HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:
第一种情况:还未建立用户时,可以使用以下命令
1,groupadd groupname
useradd -g groupname username -s /bin/false #-s为默认shell,不给shell,也就不能登录
2,groupadd groupname
useradd -g groupname username -s /sbin/nologin #-s为默认shell,默认给予shell,但是不给登录shell
第二种情况:当用户已经建立了,在建立时没有控制,现在需要取消用户登录权限,可以使用以下命令
切换到root用户,修改/etc/passwd文件
vi /etc/passwd
找到你要修改的用户所在的那一行,例如username:x:502:502::/home/username:/bin/bash,修改为以下代码
username:x:502:502::/home/username:/sbin/nologin
centos 创建用户和组别:
sudo addgroup Hadoop #添加一个hadoop组
sudo usermod -a -G hadoop larry #将当前用户加入到hadoop组
sudo gedit etc/sudoers #将hadoop组加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL
#修改hadoop目录的权限
sudo chown -R larry:hadoop /home/larry/hadoop #
sudo chmod -R 755 /home/larry/hadoop
#修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /
#修改hdfs文件的所有者
sudo bin/hadoop fs -chown -R larry /
sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式
hadoop fs -copyFromLocal URI#拷贝本地文件到hdfs
hadoop fs -cat file:///file3 /user/hadoop/file4#将路径指定文件的内容输出到stdout
hadoop fs -chgrp [-R] GROUP URI#改变文件的所属组
hadoop fs -chmod [-R] 755 URI#改变用户访问权限
hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者
hadoop fs -copyToLocal URI localdst#拷贝hdfs文件到本地
hadoop fs -cp URI [URI …] #拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]#显示目录中所有文件的大小
hadoop fs -getmerge [addnl]#合并文件到本地目录如:root@cdh3:~# hdfs dfs -ls /
hadoop中更改用户和用户权限:
hdfs dfs -chown -R Administrator /file
hdfs dfs -chgrp -R Administrator /file
hdfs dfs -ls /file