グループとパーミッションはどのように機能するのか?
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` を押して、ファイルをスクロールしてください。
グループ名:パスワード:GID:ユーザー
- group-name**はグループのラベルです。ほとんどの場合、システムグループは通常のグループと区別するためにアンダースコアで始ま ります。
- password はセキュアなグループを作成するためのオプションフィールドで、システムを複数の人と共有する場合に便利です。
- GID は、その特定のグループのグループ ID です。
- 最後に、usersフィールドは、そのグループに属しているすべてのユーザーを含むカンマ区切りのリストです。
注意:rootグループに属していない場合でも、rootとしてファイルを開くことができます。その方法はこちら。
Linux で新しいグループを作成する
Linuxで新しいグループを作成するには、groupadd
コマンドを使用します。id` と違って、これはグループの作成のみを扱うユーティリティです。
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 の値を置き換えるということに注意することが重要です。
sudo gpasswd -M ramces,test,alice,bob maketecheasier
Tip: sudo コマンドで他のユーザーアカウントに切り替える方法を学びましょう。
Frequently Asked Questions
Linux で /etc/group ファイルを編集してグループを変更することは可能ですか?
etc/group” ファイルを修正することは可能ですが、ファイルの内部形式を破壊してしまう可能性があり、システムが機能しないグループやパーミッションの欠落につながる可能性があります。そのため、"/etc/group” ファイルを直接編集するのは良い習慣ではありません。
私の新しいグループは、私のユーザーのグループリストに表示されません。私のマシンは壊れているのでしょうか?
いいえ!デフォルトでは、Linux のグループシステムは、あなたが行った変更をオンラインユーザに適用しません。このアプローチは、突然のシステム変更によってファイルやプログラムにアクセスできなくなる可能性があるユーザーを保護するものです。
ユーザーのグループリストを更新するには、現在のセッションからログアウトするか、マシン全体を再起動させてください。 画像引用元:Unsplash. すべての改変とスクリーンショットはRamces Redによるものです。