我在HDFS上有以下目录(松散地遵循POSIX模型):
[ojoqcu@sandbox ~]$ hdfs dfs -ls /
Found 11 items
drwxrwxrwx - yarn hadoop 0 2016-03-14 14:19 /app-logs
drwxr-xr-x - hdfs hdfs 0 2016-06-27 09:40 /apps
drwxr-xr-x - yarn hadoop 0 2016-03-14 14:19 /ats
drwxr-xr-x - hdfs hdfs 0 2016-03-14 14:50 /demo
drwxr-xr-x - hdfs hdfs 0 2016-03-14 14:19 /hdp
drwxr-xr-x - mapred hdfs 0 2016-03-14 14:19 /mapred
drwxrwxrwx - mapred hadoop 0 2016-03-14 14:19 /mr-history
drwxr-xr-x - hdfs hdfs 0 2016-03-14 14:42 /ranger
drwxrwxrwx - spark hadoop 0 2016-06-27 10:02 /spark-history
drwxrwxrwx - hdfs hdfs 0 2016-06-27 09:38 /tmp
drwxr-xr-x - hdfs hdfs 0 2016-06-27 09:38 /user
显而易见,其他人'可以在这些目录上自由操作。
我希望保持所有者和群组权限不变/原样,但更改其他人'自定义表格,例如
drwxr-xr-x - hdfs hdfs 0 2016-06-27 09:40 /apps
to
drwxr-x--- - hdfs hdfs 0 2016-06-27 09:40 /apps
drwxr-xr-x - hdfs hdfs 0 2016-03-14 14:19 /hdp
to
drwxr-xr-- - hdfs hdfs 0 2016-03-14 14:19 /hdp
在极端情况下,我可能只需要向其他用户提供只读或无访问权限,例如:
drwxrwxr-- - yarn hadoop 0 2016-03-14 14:19 /app-logs
drwxr-xr-- - hdfs hdfs 0 2016-06-27 09:40 /apps
drwxr-xr-- - yarn hadoop 0 2016-03-14 14:19 /ats
drwxr-xr-- - hdfs hdfs 0 2016-03-14 14:50 /demo
drwxr-xr-- - hdfs hdfs 0 2016-03-14 14:19 /hdp
drwxr-xr-- - mapred hdfs 0 2016-03-14 14:19 /mapred
drwxrwxr-- - mapred hadoop 0 2016-03-14 14:19 /mr-history
drwxr-xr-- - hdfs hdfs 0 2016-03-14 14:42 /ranger
drwxrwxr-- - spark hadoop 0 2016-06-27 10:02 /spark-history
drwxrwxr-- - hdfs hdfs 0 2016-06-27 09:38 /tmp
drwxr-xr-- - hdfs hdfs 0 2016-06-27 09:38 /user
如何在不指定所有者和组的位的情况下递归执行此操作?
答案 0 :(得分:1)
从这里采取:https://www.washington.edu/computing/unix/permissions.html
要更改文件的模式,请使用chmod命令。一般形式是
chmod X@Y file1 file2 ...
其中:X是字母'u'(对于所有者),'g'的任意组合(对于 group),'o'(对于其他人),'a'(对于所有人;也就是对于'ugo'); @是 “+”表示添加权限,“ - ”表示删除权限,或“=”表示删除权限 绝对分配权限;和Y是'r','w'的任意组合, 'X'。以下是一些例子:
chmod u=rx file (Give the owner rx permissions, not w) chmod go-rwx file (Deny rwx permission for group, others) chmod g+w file (Give write permission to the group) chmod a+x file1 file2 (Give execute permission to everybody) chmod g+rx,o+x file (OK to combine like this with a comma)
所以根据这个,答案将是:
chmod -R o-wx path