Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-9758

Provide configuration option for FileSystem/FileContext symlink resolution



    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.2.0
    • None
    • None


      With FileSystem symlink support incoming in HADOOP-8040, some clients will wish to not transparently resolve symlinks. This is somewhat similar to O_NOFOLLOW in open(2).

      Rationale for is for a security model where a user can invoke a third-party service running as a service user to operate on the user's data. For instance, users might want to use Hive to query data in their homedirs, where Hive runs as the Hive user and the data is readable by the Hive user. This leads to a security issue with symlinks:

      1. User Mallory invokes Hive to process data files in /user/mallory/hive/
      2. Hive checks permissions on the files in /user/mallory/hive/ and allows the query to proceed.
      3. RACE: Mallory replaces the files in /user/mallory/hive with symlinks that point to user Ann's Hive files in /user/ann/hive. These files aren't readable by Mallory, but she can create whatever symlinks she wants in her own scratch directory.
      4. Hive's MR jobs happily resolve the symlinks and accesses Ann's private data.

      This is also potentially useful for clients using FileContext, so let's add it there too.


        1. hadoop-9758-6.patch
          9 kB
          Andrew Wang
        2. hadoop-9758-5.patch
          11 kB
          Andrew Wang
        3. hadoop-9758-4.patch
          9 kB
          Andrew Wang
        4. hdfs-4968-3.patch
          10 kB
          Andrew Wang
        5. hdfs-4968-2.patch
          10 kB
          Andrew Wang
        6. hdfs-4968-1.patch
          9 kB
          Andrew Wang

        Issue Links



              andrew.wang Andrew Wang
              andrew.wang Andrew Wang
              0 Vote for this issue
              9 Start watching this issue