You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Aaron T. Myers (JIRA)" <ji...@apache.org> on 2013/05/10 22:13:16 UTC
[jira] [Commented] (HDFS-4765) Permission check of symlink deletion
incorrectly throws UnresolvedLinkException
[ 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