What is the difference between primary group and secondary group in Ubuntu?
The primary group is the group applied to you when you log in using the usual methods (TTYs, GUI, SSH, etc.).
Since processes usually inherit the group of the parent, and your initial process or shell would have your primary group as the group, anything you do usually has the effect of the primary group on it (creating files, for example).
So if you have a primary group
x and a secondary group
will usually create a file with
x as the group owner (unless the parent directory is SETGID to another group). However, you can do:
sg y 'touch bar' # or newgrp y touch baz
baz will be created with
y as the group.
However, if you don't have a group in your secondary groups (say
newgroup commands will ask for the group password if you use them with
If you are talking about file system groups, they are pretty well explained here cyberciti article. The primary group is used by default when creating a new file. You can test this
touch foo ls -la foo
The file will be owned by you and be in your primary group. Users who are also in your primary group will have group level permissions on those files.
You can check your secondary groups with
It also possible to share files with people who are not in your primary group by setting Set Group ID on a directory. This is explained here: shared folder with SetGID.