GNU bug report logs -
#76897
id improvements
Previous Next
Full log
Message #8 received at 76897 <at> debbugs.gnu.org (full text, mbox):
Nicolas said:
> Context:
> $ cat /etc/passwd
> nicolas:x:1000:2001::/home/nicolas:/bin/bash
> claude:x:1000:2002::/home/claude:/bin/zsh
> $ cat /etc/group
> gnicolas:x:2001:
> gclaude:x:2002:
>
> Test case:
> localhost login: claude
> $ getent passwd claude
> claude::1000:2002::/home/claude:/bin/zsh
> $ id claude
> uid=1000(nicolas) gid=2002(gclaude) groups=2001(gnicolas)
>
> groups is wrong, should be "groups=2002(gclaude)".
>
> $ busybox id
> uid=1000 gid=2002(gclaude) groups=2002(gclaude)
>
> groups is correct with busybox.
>
> Given the ouput of getent, it could be possible to display a better result:
> uid=1000(claude) gid=2002(gclaude) groups=2002(gclaude)
Not really a bug, just a reason to avoid creating multiple users with
the same user-id.
See the following example:
$ whoami
root
$ id claude
uid=1000(nicolas) gid=2002(gclaude) groups=2001(gnicolas)
$ busybox id claude
uid=1000(nicolas) gid=2002(gclaude) groups=2002(gclaude)
$ su claude
$ id
uid=1000(nicolas) gid=2002(gclaude) groups=2002(gclaude)
$ busybox id
uid=1000(nicolas) gid=2002(gclaude) groups=2002(gclaude)
One would expect that after logging into claude, id would print that
user name. But since nicolas shows up first in /etc/passwd that is what
we see.
Coreutils will then use the group id from the 'struct passwd' for
nicolas which is 2001(gnicolas) in this case. I think that busybox uses
the name passed to the command-line to call 'getgrouplist' which will
then return gclaude.
Collin
This bug report was last modified 6 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.