Bug 80624

Summary: GID != UID
Product: [Fedora] Fedora Reporter: starback
Component: system-config-usersAssignee: Nils Philippsen <nphilipp>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: chris.ricker, irc, nalin, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-11-23 16:39:09 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 79579, 100644    

Description starback 2002-12-28 23:01:19 UTC
Description of problem:

Private gids aren't the same as uids, even when that would be possible.

Version-Release number of selected component (if applicable):

redhat-config-users-1.1.1-5

How reproducible:


Steps to Reproduce:
1. Start redhat-config-users and add a user
2. Check create private group and specify user id manually.
3. Select a higher uid than the existing ones
    
Actual results:

The gid for the new user's private group will be the next free gid.
On a fresh system it will be 500.

Expected results:

I expected the gid of the new user's private group to be the same
as the uid, as it's convenient to have uid = gid for private groups.

Additional info:

Comment 1 Brent Fox 2003-01-07 20:58:21 UTC
nalin, is there a way that libuser could tell us what the lowest unallocated uid
and gid is?

Comment 2 Brent Fox 2003-01-15 23:00:25 UTC
Changing component to libuser since it is what decides what UID to allocate to a
new user and group.

Comment 3 Miloslav Trmač 2004-09-01 17:46:39 UTC
The lowest unallocated uid/gid is available as
ADMIN.getFirstUnused{Uid,Gid}.

When creating an user, s-c-users currently:
* creates an user entity
  This also calls lu_user_default (), filling the entity with
  a default (first unallocated) UID and GID and interpreting the
  config file, which by default sets GID == UID [without checking
  whether the GID already exists and without making sure the
  group gets created, but that's another story]
* modifies the user entity, including setting the UID manually,
  if needed
* if a private group is desired:
  - creates a group entity
    This calls lu_group_default(), filling a default GID
  - sets user->GID = group->GID
  - creates the group
* creates the user

I can't see any reasonable place where libuser would cause the GID
to be equal to UID.

s-c-users, OTOH, has the following possibilities:
* check whether "UID" is a free GID value, and set it in the
  group entity manually if it is free
* use the GID from user entity, check whether it is a free GID value,
  and set it in the group entity if it is free
  (this depends on the default libuser config which specifies
  userdefaults/LU_GIDNUMBER = %u).

Comment 4 Nils Philippsen 2004-09-15 09:24:03 UTC
system-config-users-1.2.19-1 should have a fix for this.