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

Add User Group Linux Featured Image

グループはLinuxシステムの基本です。これらは特別なリストで、複数のユーザーを異なるカテゴリにグループ化することを可能にします。システムのアプリケーション権限を保護するだけでなく、システム内の各アカウントがファイルやフォルダにアクセスし共有する方法を細かく制御できます。

この記事では、Linuxにおけるグループユーティリティを使用して、グループを追加および変更する方法を説明します。また、Linuxの権限システムがグループシステムとどのように連携しているかについても強調します。

目次

  • グループと権限の仕組み
  • Linuxにおけるユーザーのグループメンバーシップの表示
  • Linuxでの新しいグループの作成
  • Linuxでの既存ユーザーの新しいグループへの追加
  • よくある質問

グループと権限の仕組み

基本的に、Linuxのグループは特定のファイルやプログラムに対して同じ権限と特権を共有するユーザーのコレクションです。システム内のすべてのファイルには所有権および権限ビットのセットがあります。これを見つける最も簡単な方法の1つは、ホームディレクトリでls -lを実行することです。

Add User Group Linux Ls Long Format

これにより、ディレクトリ内のすべての表示可能なファイルとフォルダがその所有権と権限ビットと共にリスト表示されます。通常、一般的なフォーマットは次のようになります:

-rwxrwxr-x1 ramces    maketecheasier    8.7k Oct 2420:39 hello.txt

最初、3番目、4番目の列は、現在のファイルの権限と所有権ビットの両方を示しています。たとえば、「rwxrwxr-x」という値は、誰でもこのファイルを読むことができるが、ユーザー「ramces」とグループ「maketecheasier」だけが書き込むことができるとシステムに指示します。

これらの2つのビットは、Linuxの細かく調整されたアクセス制御システムを作成するために協力して機能します。権限ビットは、所有権ビット内のユーザーやグループがファイルをどのように利用できるかをシステムに指示します。

Linuxにおけるユーザーのグループメンバーシップの表示

Linuxでグループを修正する最初のステップは、ユーザーにどのグループが利用可能であるかを把握し、システム内のアクティブなグループのアイデアを得ることです。

次のコマンドを実行すると、現在のユーザーの利用可能なグループがすべてリスト表示されます:

id

Add User Group Linux 02 Id Program

システム内の利用可能なグループの表示

ユーザー固有のグループを確認するだけでなく、次のコマンドを実行することでシステム内のすべてのグループをリスト表示することも可能です:

sudoless/etc/group

これにより、ターミナル画面に「/etc/group」ファイル全体が表示されます。JまたはKを押してファイルをスクロールします。

Add User Group Linux 03 Etc Groups File

デフォルトでは、「/etc/group」はコロン区切りのファイルで、ユーザーとシステム固有のグループが含まれています。このファイル内の各行は、マシン内の現在アクティブなグループを表しています。

各行の一般的なフォーマットは次のようになります:

group-name:password:GID:users
  • group-nameはグループのラベルです。ほとんどの場合、システムグループは通常のグループと区別するためにアンダースコアで始まります。
  • passwordは、複数の人とシステムを共有する場合に便利なオプションのフィールドです。
  • GIDはその特定のグループのグループIDです。
  • 最後に、usersフィールドは、そのグループに所属するすべてのユーザーをカンマ区切りで含んでいます。

Add User Group Linux 04 Etc Groups Format

:ルートグループにいなくても、ルートとしてファイルを開くことができます。やり方を学んでください。

Linuxでの新しいグループの作成

Linuxで新しいグループを作成するには、groupaddコマンドを使用します。idとは異なり、これはグループ作成だけを扱うユーティリティです。

たとえば、次のコマンドを実行して「test」という名前の新しいグループを作成できます。

groupadd -vtest

Add User Group Linux 05 Create New Group

新しいグループを用いた新しいユーザーの作成

新しいユーザーとグループを1つのコマンドで作成することも可能で、事前に設定された権限を持つシェルスクリプトのアカウントを設定するときに便利です。

これを行うには、次のコマンドを実行します:

sudo useradd -m-G maketecheasier -s/bin/bashtest
  • -mフラグは、useraddに新しいユーザーのホームディレクトリを作成するよう指示します。デフォルトでは、Linuxは「test」ユーザーのためのホームディレクトリを作成しません。
  • -Gフラグは、useraddに「test」ユーザーを「maketecheasier」グループに作成し追加するよう指示します。
  • -sフラグは「test」ユーザーのデフォルトのログインシェルを設定します。この場合、私はuseraddユーティリティに「test」ユーザーのログインシェルをBashに設定するよう指示しています。

Add User Group Linux 06 Create New User And Group

Linuxでの既存ユーザーの新しいグループへの追加

グループとそのユーザーを作成するだけでなく、次のコマンドを実行して既存のユーザーをグループに追加することもできます:

sudo usermod -aG maketecheasier user

Add User Group Linux 07 Append Single User Group

新しいグループに複数のユーザーを追加

最後に、新しいグループに複数のユーザーを含めることも可能です。これを行うには、次のコマンドを実行します:

sudo gpasswd -M ramces,test maketecheasier

Add User Group Linux 08 Append Multiple Users Groups

これにより、「maketecheasier」グループのメンバー名簿に「ramces」と「test」が含まれるように設定されます。ただし、-Mフラグは常に「/etc/group」ファイル内のユーザー値を置き換えます。

グループに新しいユーザーを追加するには、すでにそのグループに所属しているユーザーも含める必要があります。たとえば、次のコマンドを実行すると、「maketecheasier」グループに「alice」と「bob」を追加します:

sudo gpasswd -M ramces,test,alice,bob maketecheasier

Add User Group Linux 09 Append More Users To Group

ヒント:sudoコマンドを使って別のユーザーアカウントに切り替える方法を学んでください。

よくある質問

/etc/groupファイルを編集してLinuxでグループを修正することは可能ですか?

「/etc/group」ファイルを修正することは可能ですが、ファイルの内部フォーマットが壊れて、機能しなくなるグループや権限が失われる可能性があります。そのため、「/etc/group」ファイルを直接編集することは良い習慣ではありません。

新しいグループがユーザーのグループリストに表示されません。私のマシンは壊れていますか?

いいえ!デフォルトでは、Linuxのグループシステムは、オンラインのユーザーに対する変更を適用しません。このアプローチは、ユーザーがファイルやプログラムにアクセスできなくなるような突然のシステム変更からユーザーを保護します。

ユーザーのグループリストを更新するには、現在のセッションからログアウトするか、マシン全体を再起動してください。

画像提供:Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。