Linuxでグループにユーザーを追加する方法

グループはLinuxシステムの基本です。これらは特別なリストで、複数のユーザーを異なるカテゴリにグループ化することを可能にします。システムのアプリケーション権限を保護するだけでなく、システム内の各アカウントがファイルやフォルダにアクセスし共有する方法を細かく制御できます。
この記事では、Linuxにおけるグループユーティリティを使用して、グループを追加および変更する方法を説明します。また、Linuxの権限システムがグループシステムとどのように連携しているかについても強調します。
目次
- グループと権限の仕組み
- Linuxにおけるユーザーのグループメンバーシップの表示
- Linuxでの新しいグループの作成
- Linuxでの既存ユーザーの新しいグループへの追加
- よくある質問
グループと権限の仕組み
基本的に、Linuxのグループは特定のファイルやプログラムに対して同じ権限と特権を共有するユーザーのコレクションです。システム内のすべてのファイルには所有権および権限ビットのセットがあります。これを見つける最も簡単な方法の1つは、ホームディレクトリでls -lを実行することです。

これにより、ディレクトリ内のすべての表示可能なファイルとフォルダがその所有権と権限ビットと共にリスト表示されます。通常、一般的なフォーマットは次のようになります:
-rwxrwxr-x1 ramces maketecheasier 8.7k Oct 2420:39 hello.txt最初、3番目、4番目の列は、現在のファイルの権限と所有権ビットの両方を示しています。たとえば、「rwxrwxr-x」という値は、誰でもこのファイルを読むことができるが、ユーザー「ramces」とグループ「maketecheasier」だけが書き込むことができるとシステムに指示します。
これらの2つのビットは、Linuxの細かく調整されたアクセス制御システムを作成するために協力して機能します。権限ビットは、所有権ビット内のユーザーやグループがファイルをどのように利用できるかをシステムに指示します。
Linuxにおけるユーザーのグループメンバーシップの表示
Linuxでグループを修正する最初のステップは、ユーザーにどのグループが利用可能であるかを把握し、システム内のアクティブなグループのアイデアを得ることです。
次のコマンドを実行すると、現在のユーザーの利用可能なグループがすべてリスト表示されます:
id
システム内の利用可能なグループの表示
ユーザー固有のグループを確認するだけでなく、次のコマンドを実行することでシステム内のすべてのグループをリスト表示することも可能です:
sudoless/etc/groupこれにより、ターミナル画面に「/etc/group」ファイル全体が表示されます。JまたはKを押してファイルをスクロールします。

デフォルトでは、「/etc/group」はコロン区切りのファイルで、ユーザーとシステム固有のグループが含まれています。このファイル内の各行は、マシン内の現在アクティブなグループを表しています。
各行の一般的なフォーマットは次のようになります:
group-name:password:GID:users- group-nameはグループのラベルです。ほとんどの場合、システムグループは通常のグループと区別するためにアンダースコアで始まります。
- passwordは、複数の人とシステムを共有する場合に便利なオプションのフィールドです。
- GIDはその特定のグループのグループIDです。
- 最後に、usersフィールドは、そのグループに所属するすべてのユーザーをカンマ区切りで含んでいます。

注:ルートグループにいなくても、ルートとしてファイルを開くことができます。やり方を学んでください。
Linuxでの新しいグループの作成
Linuxで新しいグループを作成するには、groupaddコマンドを使用します。idとは異なり、これはグループ作成だけを扱うユーティリティです。
たとえば、次のコマンドを実行して「test」という名前の新しいグループを作成できます。
groupadd -vtest
新しいグループを用いた新しいユーザーの作成
新しいユーザーとグループを1つのコマンドで作成することも可能で、事前に設定された権限を持つシェルスクリプトのアカウントを設定するときに便利です。
これを行うには、次のコマンドを実行します:
sudo useradd -m-G maketecheasier -s/bin/bashtest-mフラグは、useraddに新しいユーザーのホームディレクトリを作成するよう指示します。デフォルトでは、Linuxは「test」ユーザーのためのホームディレクトリを作成しません。-Gフラグは、useraddに「test」ユーザーを「maketecheasier」グループに作成し追加するよう指示します。-sフラグは「test」ユーザーのデフォルトのログインシェルを設定します。この場合、私はuseraddユーティリティに「test」ユーザーのログインシェルをBashに設定するよう指示しています。

Linuxでの既存ユーザーの新しいグループへの追加
グループとそのユーザーを作成するだけでなく、次のコマンドを実行して既存のユーザーをグループに追加することもできます:
sudo usermod -aG maketecheasier user
新しいグループに複数のユーザーを追加
最後に、新しいグループに複数のユーザーを含めることも可能です。これを行うには、次のコマンドを実行します:
sudo gpasswd -M ramces,test maketecheasier
これにより、「maketecheasier」グループのメンバー名簿に「ramces」と「test」が含まれるように設定されます。ただし、-Mフラグは常に「/etc/group」ファイル内のユーザー値を置き換えます。
グループに新しいユーザーを追加するには、すでにそのグループに所属しているユーザーも含める必要があります。たとえば、次のコマンドを実行すると、「maketecheasier」グループに「alice」と「bob」を追加します:
sudo gpasswd -M ramces,test,alice,bob maketecheasier
ヒント:sudoコマンドを使って別のユーザーアカウントに切り替える方法を学んでください。
よくある質問
/etc/groupファイルを編集してLinuxでグループを修正することは可能ですか?
「/etc/group」ファイルを修正することは可能ですが、ファイルの内部フォーマットが壊れて、機能しなくなるグループや権限が失われる可能性があります。そのため、「/etc/group」ファイルを直接編集することは良い習慣ではありません。
新しいグループがユーザーのグループリストに表示されません。私のマシンは壊れていますか?
いいえ!デフォルトでは、Linuxのグループシステムは、オンラインのユーザーに対する変更を適用しません。このアプローチは、ユーザーがファイルやプログラムにアクセスできなくなるような突然のシステム変更からユーザーを保護します。
ユーザーのグループリストを更新するには、現在のセッションからログアウトするか、マシン全体を再起動してください。
画像提供:Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。