Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 27C4A9D26 for ; Wed, 14 Mar 2012 19:59:01 +0000 (UTC) Received: (qmail 26427 invoked by uid 500); 14 Mar 2012 19:59:00 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 26373 invoked by uid 500); 14 Mar 2012 19:59:00 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 26365 invoked by uid 99); 14 Mar 2012 19:59:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Mar 2012 19:59:00 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED,T_RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Mar 2012 19:58:59 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 2F93020E29 for ; Wed, 14 Mar 2012 19:58:39 +0000 (UTC) Date: Wed, 14 Mar 2012 19:58:39 +0000 (UTC) From: "Daryn Sharp (Commented) (JIRA)" To: common-issues@hadoop.apache.org Message-ID: <463626863.15144.1331755119196.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <393232168.22994.1330968477181.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HADOOP-8139) Path does not allow metachars to be escaped MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HADOOP-8139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13229557#comment-13229557 ] Daryn Sharp commented on HADOOP-8139: ------------------------------------- @Alexander - Yes, nearly every FsShell command supports unix style globs. "tail" is the only exception that comes to mind. The problem is the subbing of \ to / rendered it impossible to quote metachars. For instance, \ * turned into /*! One of the problems I encountered with trying to modify RLFS is it seems, based only on reading, that local files may be returned with \ or with /. If true, we probably don't want to blindly convert \ to /. If we don't want the as-backwards-compatible-as-possible solution I tried to implement, we can try modifying RLFS to sub \ to / during File->Path conversion if File.separatorChar != Path.SEPARATOR. RLFS will also need to override globStatus to convert \ to ^ for quoting of metachars. I think this is doable as long as we are willing to sacrifice c:\dir\... in 23. > Path does not allow metachars to be escaped > ------------------------------------------- > > Key: HADOOP-8139 > URL: https://issues.apache.org/jira/browse/HADOOP-8139 > Project: Hadoop Common > Issue Type: Bug > Components: fs > Affects Versions: 0.23.0, 0.24.0 > Reporter: Daryn Sharp > Assignee: Daryn Sharp > Priority: Blocker > Attachments: HADOOP-8139-2.patch, HADOOP-8139-3.patch, HADOOP-8139-4.patch, HADOOP-8139-5.patch, HADOOP-8139-6.patch, HADOOP-8139.patch, HADOOP-8139.patch > > > Path converts "\" into "/", probably for windows support? This means it's impossible for the user to escape metachars in a path name. Glob expansion can have deadly results. > Here are the most egregious examples. A user accidentally creates a path like "/user/me/*/file". Now they want to remove it. > {noformat}"hadoop fs -rmr -skipTrash '/user/me/\*'" becomes... > "hadoop fs -rmr -skipTrash /user/me/*"{noformat} > * User/Admin: Nuked their home directory or any given directory > {noformat}"hadoop fs -rmr -skipTrash '\*'" becomes... > "hadoop fs -rmr -skipTrash /*"{noformat} > * User: Deleted _everything_ they have access to on the cluster > * Admin: *Nukes the entire cluster* > Note: FsShell is shown for illustrative purposes, however the problem is in the Path object, not FsShell. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira