What is a "system" group, as opposed to a normal group?
There is no inherent difference between system groups and 'normal' groups, just like there is none between system users and regular users. It is by convention that human users are assigned uids from a certain number (e.g. 1000) upwards, whereas system users get uids in a range below that number.
The actual uid number, apart from the special uid 0 which is reserved for root
, has no meaning at all and does not convey any privileges.
We distinguish system users and regular users only because they are treated differently. For instance, there is no point in displaying system users in a graphical login manager. Also, most system users don't need a login shell or home directory, whereas human users (normally) do.
The --system
option of the adduser
command is no more than a convenience for the administrator, as it presets a number of options to sensible values for a 'system account'. In fact, the whole adduser
command is a convenience wrapper around (lower level commands like useradd
and groupadd
, which are wrappers around) essentially just editing /etc/passwd
and /etc/group
.
Related videos on Youtube
useful
Updated on September 18, 2022Comments
-
useful over 1 year
I need to add a group of users to my system. I read the
adduser
andaddgroup
manpages and the question here about "users" and "system users".I need clarification with groups and system groups, because as far as I know, groups can't login, so the "can't login" particularity of system users does not seem to make sense for groups.
-
zwets over 9 years@useful The man page isn't great and indeed it (technically) wouldn't matter in what range the gid is, but since you are creating a group for human users I'd stick with convention and not make it a system group (nor explicitly assign a gid, but let the system pick it).
-
useful over 9 yearsThanks Zwets. I created it with --gid 29999 to keep my further users+usergroups have the same uid/gid.
-
Peregring-lk about 8 yearsWhen you create a system user, by the fault the command doesn't create a home folder and its terminal is set to /bin/false, whereas for normal users these defaults doesn't apply.