-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/53240/#review155546
-----------------------------------------------------------


Ship it!




Ship It!

- Madhan Neethiraj


On Nov. 10, 2016, 1:19 a.m., Yan Zhou wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/53240/
> -----------------------------------------------------------
> 
> (Updated Nov. 10, 2016, 1:19 a.m.)
> 
> 
> Review request for ranger.
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> Reproduction Steps:
> 1. Ranger is installed and HDFS plug-in is enabled.
> 2. As qaadmin user, create a folder on HDFS with permission 500:
> hadoop fs -mkdir /tmp/rangertest1
> hadoop fs -chmod 500 /tmp/rangertest1
> while the /tmp itself has the 777 as the HDFS bits:
> hadoop fs -ls /
> drwxrwxrwx - user1 group1 0 2016-10-03 14:54 /tmp
> 3. Create a Ranger policy p1_1 by granting qaadmin with RWX permission to the 
> folder of /tmp/rangertest1, recursive set to true 
> 4. Wait for around >30 seconds after Policy synced up.
> 5. Put a file to /tmp/rangertest1 folder:
> echo "This is a file2" > /tmp/temp
> hadoop fs -put /tmp/temp /tmp/rangertest1
> hadoop fs -ls /tmp/rangertest1
> Found 1 items
> rw-rr- 3 qaadmin hdfs 16 2016-09-21 19:13 /tmp/rangertest1/temp
> 6. Try to delete the non-empty folder with "-skipTrash" option, but it failed 
> (delete the empty folder could success): 
> hadoop fs -rm -r -skipTrash /tmp/rangertest1
> rm: Permission denied: user=qaadmin, access=ALL, 
> inode="/tmp/rangertest1":qaadmin:hdfs:dr-x------
> 
> 
> This happens when the HDFS fallback is enabled. The issue is with the synergy 
> between the Ranger HDFS plugin and the HDFS. The removal of the directory of 
> /tmp/rangertest1 is not covered by a Ranger policy but is allowed by of the 
> HDFS permission for its parent, /tmp. The removal of the file inside 
> /tmp/rangertest1 is, however, not allowed by HDFS for the 500 permission of 
> its parent of /tmp/rangertest1, but allowed by Ranger.
> When Ranger finds that the directory of rangertest1 can't be removed by 
> Ranger, it falls back to HDFS policy which does not allow the removal of the 
> file inside rangertest1 even though allowed by Ranger.
> We should use HDFS fallback when the checks on ancestor/parent/current/subdir 
> fails before proceed to the next check but with only the failed access check 
> by the HDFS fallback not all of the access checks for ancestor, parent, 
> current and subdir.
> 
> 
> Diffs
> -----
> 
>   
> hdfs-agent/src/main/java/org/apache/ranger/authorization/hadoop/RangerHdfsAuthorizer.java
>  6f452da 
> 
> Diff: https://reviews.apache.org/r/53240/diff/
> 
> 
> Testing
> -------
> 
> Unit test works ok.
> 
> 
> Thanks,
> 
> Yan Zhou
> 
>

Reply via email to