[ https://issues.apache.org/jira/browse/HDFS-4765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13654790#comment-13654790 ]
Aaron T. Myers commented on HDFS-4765: -------------------------------------- Patch looks pretty good to me, Andrew, though it no longer applies to trunk after the snapshot merge so it will need to be rebased somewhat. Two little suggestions: # Recommend you use the two argument versions of assertTrue and assertFalse which take error messages to display in the event the assertion fails. # Though not introduced by this patch, I notice that the indentation in FSPermissionChecker#checkPermission is off. Mind fixing that while you're in there? +1 once these are addressed. > Permission check of symlink deletion incorrectly throws > UnresolvedLinkException > ------------------------------------------------------------------------------- > > Key: HDFS-4765 > URL: https://issues.apache.org/jira/browse/HDFS-4765 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Affects Versions: 3.0.0, 2.0.3-alpha > Reporter: Andrew Wang > Assignee: Andrew Wang > Attachments: hdfs-4765-1.patch > > > With permissions enabled, the permission check in {{FSNamesystem#delete}} > will incorrectly throw an UnresolvedLinkException if the path contains a > symlink. This leads to FileContext resolving the symlink and instead deleting > the link target. > The correct check is to see if the user has write permissions on the parent > directory of the symlink, e.g. > {noformat} > -> % ls -ld symtest > drwxr-xr-x 2 root root 4096 Apr 26 14:12 symtest > -> % ls -l symtest > total 12 > lrwxrwxrwx 1 root root 6 Apr 26 14:12 link -> target > -rw-r--r-- 1 root root 0 Apr 26 14:11 target > -> % rm -f symtest/link > rm: cannot remove `symtest/link': Permission denied > -> % sudo chown andrew symtest > -> % rm -f symtest/link > -> % > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira