You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Yongjun Zhang (JIRA)" <ji...@apache.org> on 2014/03/27 19:56:20 UTC
[jira] [Created] (HDFS-6165) Directory owner with WRITE permission
can't delete empty sub-directory
Yongjun Zhang created HDFS-6165:
-----------------------------------
Summary: Directory owner with WRITE permission can't delete empty sub-directory
Key: HDFS-6165
URL: https://issues.apache.org/jira/browse/HDFS-6165
Project: Hadoop HDFS
Issue Type: Bug
Components: hdfs-client
Reporter: Yongjun Zhang
Given a directory owned by user A with permissions 0700 containing an empty directory owned by user B, it is not possible to delete user B's directory. This is incorrect. Write permission on the containing directory should be all that is needed to delete the child directory. Here's a reproduction:
{code}
[root@vm01 ~]# hdfs dfs -ls /user/
Found 4 items
drwxr-xr-x - userabc users 0 2013-05-03 01:55 /user/userabc
drwxr-xr-x - hdfs supergroup 0 2013-05-03 00:28 /user/hdfs
drwxrwxrwx - mapred hadoop 0 2013-05-03 00:13 /user/history
drwxr-xr-x - hdfs supergroup 0 2013-04-14 16:46 /user/hive
[root@vm01 ~]# hdfs dfs -ls /user/userabc
Found 8 items
drwx------ - userabc users 0 2013-05-02 17:00 /user/userabc/.Trash
drwxr-xr-x - userabc users 0 2013-05-03 01:34 /user/userabc/.cm
drwx------ - userabc users 0 2013-05-03 01:06 /user/userabc/.staging
drwxr-xr-x - userabc users 0 2013-04-14 18:31 /user/userabc/apps
drwxr-xr-x - userabc users 0 2013-04-30 18:05 /user/userabc/ds
drwxr-xr-x - hdfs users 0 2013-05-03 01:54 /user/userabc/foo
drwxr-xr-x - userabc users 0 2013-04-30 16:18 /user/userabc/maven_source
drwxr-xr-x - hdfs users 0 2013-05-03 01:40 /user/userabc/test-restore
[root@vm01 ~]# hdfs dfs -ls /user/userabc/foo/
[root@vm01 ~]# sudo -u userabc hdfs dfs -rm -r -skipTrash /user/userabc/foo
rm: Permission denied: user=userabc, access=ALL, inode="/user/userabc/foo":hdfs:users:drwxr-xr-x
{code}
The super user can delete the directory.
{code}
[root@vm01 ~]# sudo -u hdfs hdfs dfs -rm -r -skipTrash /user/userabc/foo
Deleted /user/userabc/foo
{code}
The same is not true for files, however. They have the correct behavior.
{code}
[root@vm01 ~]# sudo -u hdfs hdfs dfs -touchz /user/userabc/foo-file
[root@vm01 ~]# hdfs dfs -ls /user/userabc/
Found 8 items
drwx------ - userabc users 0 2013-05-02 17:00 /user/userabc/.Trash
drwxr-xr-x - userabc users 0 2013-05-03 01:34 /user/userabc/.cm
drwx------ - userabc users 0 2013-05-03 01:06 /user/userabc/.staging
drwxr-xr-x - userabc users 0 2013-04-14 18:31 /user/userabc/apps
drwxr-xr-x - userabc users 0 2013-04-30 18:05 /user/userabc/ds
-rw-r--r-- 1 hdfs users 0 2013-05-03 02:11 /user/userabc/foo-file
drwxr-xr-x - userabc users 0 2013-04-30 16:18 /user/userabc/maven_source
drwxr-xr-x - hdfs users 0 2013-05-03 01:40 /user/userabc/test-restore
[root@vm01 ~]# sudo -u userabc hdfs dfs -rm -skipTrash /user/userabc/foo-file
Deleted /user/userabc/foo-file
{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)