bug#76897: id improvements

Collin Funk <[email protected]>
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.