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

この記事では、Linux で groups ユーティリティを使用して、既存のグループを追加および変更する方法について説明します。さらに、Linux のパーミッションシステムがグループシステムとどのように連動しているのかにも注目します。

グループとパーミッションはどのように機能するのか?

Linux のグループは、特定のファイルやプログラムに対して同じパーミッションや特権を共有するユ ーザーの集合体です。システム内の全てのファイルには、所有権とパーミッションのビットが設定されています。これを見つける最も簡単な方法の一つは、あなたのホームディレクトリで ls -l を実行することです。

このコマンドは、ディレクトリ内のすべてのファイルとフォルダを、その所有権とパーミッションビットとともにリストアップします。ほとんどの場合、この一般的なフォーマットは次のようになります。

-rwxrwxr-x 1 ramces maketecheasier 8.7k Oct 24 20:39 hello.txt

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

この2つのビットは、Linuxで細かく調整されたアクセス制御システムを作るために、手に手を取って働きます。許可ビットは、所有権ビットに含まれるユーザーやグループによって、ファイルがどのように使われるかをシステムに伝えます。

Linux であるユーザーのグループメンバーシップを表示する

Linuxでグループを変更する最初のステップは、システムでアクティブなグループのアイデアを与えるために、ユーザーが利用可能であるかを知ることです。

以下のコマンドを実行すると、現在のユーザーで利用可能なすべてのグループが表示されます。

id

システムで利用可能なグループを表示する

ユーザー固有のグループを見るのと同時に、以下のコマンドを実行することで、システム内のすべてのグループを一覧表示することも可能です。

sudo less /etc/group

sudo less /etc/group ``` このコマンドを実行すると、ターミナル画面に “/etc/group” ファイル全体が表示されます。JまたはK` を押して、ファイルをスクロールしてください。

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

各行の一般的な書式は以下のようなものである。

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

注意:rootグループに属していない場合でも、rootとしてファイルを開くことができます。その方法はこちら。

Linux で新しいグループを作成する

Linuxで新しいグループを作成するには、groupaddコマンドを使用します。id` と違って、これはグループの作成のみを扱うユーティリティです。

例えば、以下のコマンドを実行すると、“test “という名前で新しいグループを作成することができます。

groupadd -v test

新しいグループと新しいユーザーを作成する

新しいユーザーとグループを1つのコマンドで作成することもできます。

これを行うには、以下のコマンドを実行します。

sudo useradd -m -G maketecheasier -s /bin/bash test
  • mフラグはuseradd` に新しいユーザーのホームディレクトリを作成するように指示します。
  • 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” ファイル中の users の値を置き換えるということに注意することが重要です。

新しいユーザーをグループに追加するには、すでにグループに属しているユーザーも含める必要があります。例えば、以下のコマンドを実行すると、“alice” と “bob” の両方が “maketecheasier” グループに追加されます。

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

Tip: sudo コマンドで他のユーザーアカウントに切り替える方法を学びましょう。

Frequently Asked Questions

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

etc/group” ファイルを修正することは可能ですが、ファイルの内部形式を破壊してしまう可能性があり、システムが機能しないグループやパーミッションの欠落につながる可能性があります。そのため、"/etc/group” ファイルを直接編集するのは良い習慣ではありません。

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

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

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

画像引用元:Unsplash. すべての改変とスクリーンショットはRamces Redによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。