3.4.2.2. Logging on to another group
When you type id on the command line, you
get a list of all the groups that you can possibly belong to,
preceded by your user name and ID and the group name and ID that
you are currently connected with. However, on many Linux systems
you can only be actively logged in to one group at the time. By
default, this active or primary group is the one that you
get assigned from the /etc/passwd file.
The fourth field of this file holds users' primary group ID, which
is looked up in the /etc/group file. An
example:
asim:~> id
uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)
asim:~> grep asim /etc/passwd
asim:x:501:501:Asim El Baraka:/home/asim:/bin/bash
asim:~> grep 501 /etc/group
asim:x:501:
|
The fourth field in the line from /etc/passwd contains the value "501", which represents the group asim in
the above example. From /etc/group we can
get the name matching this group ID. When initially connecting to
the system, this is the group that asim will belong
to.
|
User private group
scheme |
|
In order to allow more flexibility, most Linux systems follow
the so-called user private group scheme, that assigns each
user primarily to his or her own group. This group is a group that
only contains this particular user, hence the name "private group". Usually this group has the same
name as the user login name, which can be a bit confusing.
|
Apart from his own private group, user asim can also be
in the groups users and web. Because these are
secondary groups to this user, he will need to use the newgrp to log into any of these groups. In the
example, asim needs to create files that are owned by the
group web.
asim:/var/www/html> newgrp web
asim:/var/www/html> id
uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)
|
When asim creates new files now, they will be in group
ownership of the group web instead of being owned by the
group asim:
asim:/var/www/html> touch test
asim:/var/www/html> ls -l test
-rw-rw-r-- 1 asim web 0 Jun 10 15:38 test
|
Logging in to a new group prevents you from having to use
chown (see
Section 3.4.2.4) or calling
your system administrator to change ownerships for you.
See the manpage for newgrp for more
information.