[ 
https://issues.apache.org/jira/browse/HADOOP-12468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14972131#comment-14972131
 ] 

Wei-Chiu Chuang commented on HADOOP-12468:
------------------------------------------

Thanks for the valuable comments!

I. Yes you are right: Linux does allow numerical group names.
So looking at the standard output, there is no way to tell whether the returned 
output represents group names or group ids, unless we look at the output of 
standard error and then parse it.

2. The change to the shell command is necessary:
Without the change, if the primary group name does not resolve, the command 
bash -c "id -gn && id -Gn <user>" will only return the primary group id, 
nothing else.

3. True

4. good find! Thanks

> Partial group resolution failure should not result in user lockout
> ------------------------------------------------------------------
>
>                 Key: HADOOP-12468
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12468
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 2.6.1
>         Environment: Linux
>            Reporter: Wei-Chiu Chuang
>            Assignee: Wei-Chiu Chuang
>            Priority: Minor
>         Attachments: HADOOP-12468.001.patch, HADOOP-12468.002.patch, 
> HADOOP-12468.003.patch
>
>
> If a Hadoop cluster is configured to use ShellBasedUnixGroupsMapping for 
> user/group name mapping, occasionally some group names may become 
> unresolvable (for example, using SSSD). 
> ShellBasedUnixGroupsMapping uses shell command "id -Gn" to retrieve the group 
> name of a user; however, the existing logic assumes that if the exit code of 
> the command is non-zero, the user has no group name at all. The shell command 
> in Linux returns non-zero exit code if a group name is not resolvable. 
> Unfortunately, it is possible that a user belongs to multiple groups, and any 
> partial failure in group name resolution would denied the user's access.
> On the other hand, the JNI implementation (JniBasedUnixGroupsMapping) is more 
> resilient. If any group name is unresolvable, it is simply ignored, and 
> whatever are resolvable are returned.
> It is arguable that if the group name is not resolvable, the administrator 
> should configure their directory/authentication service correctly, and Hadoop 
> is in no position to handle it, but since the existing unit tests assume the 
> output of JNI-based and shell-based implementation are the same, we should 
> improve the shell-based group name resolution, and make it as resilient as 
> the JNI-based one.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to