修改hdfs上的文件所属用户、所属组等读写执行控制权限

HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:

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 <localsrc> 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 …] <dest>#拷贝hdfs文件到其它目录
hadoop fs -du URI [URI …]#显示目录中所有文件的大小
hadoop fs -getmerge <src> <localdst> [addnl]#合并文件到本地目录

如:
root@cdh3:~# hdfs dfs -ls /
Found 8 items
drwxr-xr-x   - hbase hbase               0 2017-06-24 10:05 /hbase
drwxrwxr-x   - solr  solr                0 2016-12-01 22:43 /solr
drwxr-xr-x   - root  supergroup          0 2017-04-24 22:58 /sparklib
drwxr-xr-x   - root  supergroup          0 2017-07-19 17:44 /sparklib-2.1.0
drwxr-xr-x   - hdfs  supergroup          0 2016-12-05 09:08 /system
drwxrwxrwt   - hdfs  supergroup          0 2017-07-13 09:40 /tmp
drwxr-xrwx   - hdfs  supergroup          0 2017-06-23 10:54 /user
drwxr-xr-x   - root  supergroup          0 2017-04-13 11:12 /file

root@cdh3:~# hdfs dfs -chown Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# hdfs dfs -chown -R Administrator /file
chown: changing ownership of '/file': Non-super user cannot change owner

root@cdh3:~# su hdfs
hdfs@cdh3:/root$ hdfs dfs -chown -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -chgrp -R Administrator /file
hdfs@cdh3:/root$ hdfs dfs -ls /file

Found 9 items
-rw-r--r--   2 Administrator Administrator       3302 2017-04-13 11:11 /file/data-transfer.properties
-rw-r--r--   2 Administrator Administrator     313898 2017-04-13 11:00 /file/dom4j-1.6.1.jar
drwxr-xr-x   - Administrator Administrator          0 2017-04-12 10:03 /file/hangxin
-rw-r--r--   2 Administrator Administrator      24212 2017-03-17 12:06 /file/hx.jar
-rw-r--r--   2 Administrator Administrator     802721 2017-03-17 11:50 /file/mysql-connector-java-5.1.20-bin.jar
drwxr-xr-x   - Administrator Administrator          0 2017-03-22 09:46 /file/notregex
drwxr-xr-x   - Administrator Administrator          0 2017-04-25 00:01 /file/regex
-rw-r--r--   2 Administrator Administrator     106006 2017-04-13 11:12 /file/sihconfig.xml
-rw-r--r--   2 Administrator Administrator        123 2017-03-16 14:31 /file/spark-config.properties



转载链接:https://www.jianshu.com/p/7b35a7148e38
 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要给HDFS中的递归目录设置文件权限,可以使用以下命令: ``` hdfs dfs -setfacl -R -m user:<username>:<permissions> <directory-path> ``` 其中 `<username>` 是要授权的用户用户名,`<permissions>` 是授予该用户权限,`<directory-path>` 是要设置权限的目录路径。 例如,要将用户`user1`授权为目录`/test`及其所有子目录和文件的所有者,并授予读、写和执行权限,可以使用以下命令: ``` hdfs dfs -setfacl -R -m user:user1:rwx /test ``` 这将为`/test`目录及其所有子目录和文件授予`user1`读、写和执行权限。 ### 回答2: HDFS(Hadoop分布式文件系统)是一个分布式存储系统,可以存储大容量数据,并提供高可靠性和高性能读写访问。在HDFS中,文件和目录都有对应的访问控制列表(ACL),用于维护用户文件权限。 在HDFS中,递归给用户文件赋予权限是指,在设置文件或目录的权限时,可以通过递归的方式将权限同时应用到该文件所在的目录以及该目录下的所有文件和子目录。这样做的好处是可以一次性完成对所选目录及其所有内容的权限设置,而不需要单独处理每个文件或目录。 递归赋予用户文件权限可以通过Hadoop命令行工具或Hadoop API来实现。通过命令行工具,用户可以使用"hdfs dfs -chmod -R"命令将权限递归地应用到指定目录和其所有子目录以及文件。使用该命令时需要注意,递归过程会修改整个目录树的权限,因此需要谨慎操作。 通过Hadoop API,开发人员可以编写自定义的Java程序来实现递归赋予用户文件权限的功能。在Java程序中,可以使用FileStatus类来获取指定目录的文件信息,然后使用FileSystem类的setPermission方法递归地设置文件或目录的权限。 总之,在HDFS中,递归给用户文件赋予权限是一种便捷的方式,可以方便地一次性设置目录及其所有内容的权限。这有助于提高系统管理的效率,并确保对文件访问的安全性。 ### 回答3: HDFS(Hadoop Distributed File System)是一个分布式文件系统,用于存储和处理大数据。在HDFS中,递归是指对文件或目录的操作能够逐级地应用到其所有子目录和文件上。 对于HDFS中的文件和目录,用户可以通过设置文件权限控制对它们的访问。文件权限可以通过三个维度来定义,即所有者(Owner)、所属组(Group)和其他用户(Others)。每个维度都可以分别设置读(Read)、写(Write)和执行(Execute)权限,用符号表示为r、w和x。 当用户HDFS中创建一个目录时,默认情况下,该用户将成为该目录的所有者,并且具有所有权限。但是,该用户可以选择通过使用递归选项,将自己的文件权限递归应用到该目录的所有子目录和文件上。这意味着,该用户所设置的文件权限将在整个目录结构中生效。 通过递归授予用户文件权限,可以简化文件权限管理的过程。例如,如果一个用户想要在某个目录中创建大量子目录,并且希望这些子目录都具有相同的用户权限,那么该用户可以通过递归选项一次性为这些子目录设置相同的权限,而不需要逐个设置。 总而言之,HDFS赋予了用户递归地控制文件权限的能力。这使得用户可以将其文件权限应用到目录的整个子目录和文件上,从而简化了权限管理的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值