回答:
プライマリグループは、通常の方法(TTY、GUI、SSHなど)を使用してログインするときに適用されるグループです。
通常、プロセスは親のグループを継承し、最初のプロセスまたはシェルはプライマリグループをグループとして持つため、通常、行うことはすべて、プライマリグループの影響(ファイルの作成など)を持ちます。
セカンダリグループはsg、newgrpコマンドを介して、またはコマンドを介してログインするために、グループパスワードを使用せずにプロセスを開始できるグループです。
したがって、プライマリグループxとセカンダリグループがあるy場合、
touch foo
通常x、グループの所有者としてファイルを作成します(親ディレクトリが別のグループのSETGIDでない場合)。ただし、次のことができます。
sg y 'touch bar'
# or
newgrp y
touch baz
その後barとbazで作成されますyグループとして。
ただし、セカンダリグループにグループがない場合(たとえばz)、sgとnewgroup使用する場合は、コマンドとグループコマンドがグループパスワードを要求しますz。
ファイルシステムグループについて話している場合は、cybercitiの記事をご覧ください。プライマリグループは、新しいファイルを作成するときにデフォルトで使用されます。これをテストできます
touch foo
ls -la foo
ファイルはあなたが所有し、あなたのプライマリグループになります。プライマリグループにも属しているユーザーには、これらのファイルに対するグループレベルのアクセス許可が付与されます。
セカンダリグループは次の方法で確認できます
groups $(whoami)
ディレクトリにグループIDを設定することにより、プライマリグループに属していない人とファイルを共有することもできます。これはここで説明されています:SetGIDを持つ共有フォルダー。