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)