Linux でユーザーをグループに追加する 4 つの方法の概要

Linux でユーザーをグループに追加する 4 つの方法の概要

序文

Linux グループは、Linux でユーザー アカウントを管理するために使用される組織単位です。 Linux システム内のすべてのユーザーとグループには、一意のデジタル識別番号があります。これはユーザー ID (UID) とグループ ID (GID) と呼ばれます。グループの主な目的は、グループのメンバーの権限セットを定義することです。それらはすべて特定のアクションを実行できますが、他のアクションは実行できません。

Linux には 2 種類のデフォルト グループがあります。各ユーザーには、プライマリ グループが 1 つだけ存在し、セカンダリ グループは任意の数だけ存在します。

• プライマリ グループ: ユーザー アカウントが作成されると、プライマリ グループがユーザーに追加されます。これは通常、ユーザーの名前です。プライマリ グループは、新しいファイル (またはディレクトリ) の作成、ファイルの変更、コマンドの実行などの操作を実行するときにユーザーに適用されます。ユーザーのプライマリ グループ情報は /etc/passwd ファイルに保存されます。

• セカンダリグループ: セカンダリグループと呼ばれます。これにより、ユーザー グループは同じグループ メンバーシップ ファイル内で特定のアクションを実行できるようになります。たとえば、少数のユーザーに Apache (httpd) サービス コマンドの実行を許可したい場合に最適です。

ユーザー管理に関連する以下の記事にご興味があるかもしれません。

• Linux でユーザー アカウントを作成する 3 つの方法は何ですか?

• Linux でバッチユーザーを作成するにはどうすればいいですか?

• さまざまな方法を使用して Linux でユーザー パスワードを更新/変更するにはどうすればよいですか?

これは、次の 4 つの方法を使用して実現できます。

• usermod: コマンドラインで指定された変更を反映するようにシステム アカウント ファイルを変更します。

• gpasswd: /etc/group および /etc/gshadow を管理するために使用されます。各グループには管理者、メンバー、パスワードを設定できます。

• シェル スクリプト: 管理者が必要なタスクを自動化できるようにします。

• 手動の方法: /etc/group ファイルを編集して、ユーザーを任意のグループに手動で追加できます。

この操作に必要なグループとユーザーは既に存在しているものと想定します。この例では、user1、user2、user3 というユーザーとグループを使用し、追加のグループは mygroup と mygroup1 です。

変更を加える前に、ユーザーとグループの情報を確認したいと思います。詳細は下記をご覧ください。

以下のユーザーは、他のグループではなく、自分のグループに関連付けられていることがわかります。

# ID ユーザー1
uid=1008(ユーザー1)gid=1008(ユーザー1)グループ=1008(ユーザー1)
 
# id ユーザー2
uid=1009(ユーザー2)gid=1009(ユーザー2) グループ=1009(ユーザー2)
 
# ID ユーザー3
uid=1010(user3)gid=1010(user3) グループ=1010(user3)

このグループにはユーザーが関連付けられていないことがわかります。

#getent グループ mygroup
私のグループ:x:1012:
 
#getent グループ mygroup1
マイグループ1:x:1013:

方法1: usermodコマンドを使用する

usermod コマンドは、コマンド ラインで指定された変更を反映するようにシステム アカウント ファイルを変更します。

usermod コマンドを使用して既存のユーザーをセカンダリ グループまたは追加グループに追加するにはどうすればよいですか?

既存のユーザーをセカンダリ グループに追加するには、-g オプションとグループ名を指定した usermod コマンドを使用します。

文法:

# usermod [-G] [グループ名] [ユーザー名]

指定されたユーザーまたはグループがシステムに存在しない場合は、エラー メッセージが表示されます。エラーが表示されない場合は、ユーザーが対応するグループに追加されています。

# usermod -aG mygroup ユーザー1

id コマンドを使用して出力を見てみましょう。はい、正常に追加されました。

# ID ユーザー1
uid=1008(user1)gid=1008(user1) グループ=1008(user1),1012(mygroup)

usermod コマンドを使用して、既存のユーザーを複数のセカンダリ グループまたは追加グループに追加するにはどうすればよいですか?

既存のユーザーを複数のセカンダリ グループに追加するには、-G オプションとグループ名をカンマで区切って指定した usermod コマンドを使用します。

文法:

# usermod [-G] [グループ名1,グループ名2] [ユーザー名]

この例では、user2 を mygroup と mygroup1 に追加します。

# usermod -aG mygroup,mygroup1 user2

id コマンドを使用して出力を見てみましょう。はい、user2 は myGroup と myGroup1 に正常に追加されました。

# id ユーザー2
uid=1009(user2)gid=1009(user2) グループ=1009(user2),1012(mygroup),1013(mygroup1)

ユーザーのプライマリグループを変更するにはどうすればよいですか?

ユーザーのプライマリ グループを変更するには、-g オプションとグループ名を指定して usermod コマンドを使用します。

文法:

# usermod [-g] [グループ名] [ユーザー名]

ユーザーのプライマリ グループを変更するには、-g を使用する必要があります。

# usermod -g mygroup ユーザー3

出力を見てみましょう。はい、変更は成功しました。これで、user3 のプライマリ グループは、user3 ではなく mygroup として表示されます。

# ID ユーザー3
uid=1010(user3)gid=1012(mygroup) groups=1012(mygroup)

方法2: gpasswdコマンドを使用する

gpasswd コマンドは、/etc/group と /etc/gshadow を管理するために使用されます。各グループには管理者、メンバー、パスワードを設定できます。

gpasswd コマンドを使用して既存のユーザーをセカンダリ グループまたは追加グループに追加するにはどうすればよいですか?

既存のユーザーをセカンダリ グループに追加するには、-M オプションとグループ名を指定した gpasswd コマンドを使用します。

文法:

#gpasswd[-M] [ユーザー名] [グループ名]

この例では、user1 を mygroup に追加します。

#gpasswd -M ユーザー1 私のグループ

id コマンドを使用して出力を見てみましょう。はい、user1 は mygroup に正常に追加されました。

# ID ユーザー1
uid=1008(user1)gid=1008(user1) グループ=1008(user1),1012(mygroup)

gpasswd コマンドを使用して複数のユーザーをセカンダリ グループまたは追加グループに追加するにはどうすればよいですか?

セカンダリ グループに複数のユーザーを追加するには、-M オプションとグループ名を指定した gpasswd コマンドを使用します。

文法:

#gpasswd[-M] [ユーザー名1,ユーザー名2] [グループ名]

この例では、user2 と user3 を mygroup1 に追加します。

#gpasswd -M ユーザー2、ユーザー3、グループ1

getent コマンドを使用して出力を見てみましょう。はい、user2 と user3 は myGroup1 に正常に追加されました。

#getent グループ mygroup1
私のグループ1:x:1013:ユーザー2、ユーザー3

gpasswd コマンドを使用してグループからユーザーを削除するにはどうすればいいですか?

グループからユーザーを削除するには、-d オプションとユーザー名およびグループ名を指定して gpasswd コマンドを使用します。

文法:

#gpasswd[-d] [ユーザー名] [グループ名]

この例では、mygroup から user1 を削除します。

#gpasswd -d ユーザー1 私のグループ
ユーザー user1 をグループ mygroup から削除しています

方法3: シェルスクリプトを使用する

上記の例から、usermod コマンドにはグループに複数のユーザーを追加する機能がないことがわかります。これは、gpasswd コマンドで実行できます。ただし、現在グループに関連付けられている既存のユーザーは上書きされます。

たとえば、user1 はすでに mygroup に関連付けられています。 gpasswd コマンドを使用して user2 と user3 を mygroup に追加した場合、期待どおりに動作せず、代わりにグループが変更されます。

複数のユーザーを複数のグループに追加したい場合、解決策は何ですか?

どちらのコマンドにも、これを実現するためのデフォルト オプションはありません。

したがって、これを実現するには小さなシェル スクリプトを作成する必要があります。

gpasswd コマンドを使用して、セカンダリ グループまたは追加グループに複数のユーザーを追加するにはどうすればよいでしょうか?

gpasswd コマンドを使用して複数のユーザーをセカンダリ グループまたは補助グループに追加する場合は、次のシェル スクリプトを作成します。

ユーザーリストを作成します。各ユーザーは別々の行に表示する必要があります。

$ cat ユーザーリスト.txt
ユーザー1
ユーザー2
ユーザー3

次のシェル スクリプトを使用して、複数のユーザーを単一のセカンダリ グループに追加します。

vi グループ更新.sh
 
#!/bin/bash
`cat user-lists.txt` 内のユーザー
する
usermod -aG mygroup $user
終わり

group-update.sh ファイルの実行権限を設定します。

# chmod +グループ更新.sh

最後にスクリプトを実行して実装します。

#sh グループ更新.sh

getent コマンドを使用して出力を見てみましょう。 はい、user1、user2、user3 が mygroup に正常に追加されました。

#getent グループ mygroup
私のグループ:x:1012:ユーザー1、ユーザー2、ユーザー3

gpasswd コマンドを使用して複数のユーザーを複数のセカンダリ グループまたは追加グループに追加するにはどうすればよいですか?

gpasswd コマンドを使用して複数のユーザーを複数のセカンダリ グループまたは補助グループに追加する場合は、次のシェル スクリプトを作成します。

ユーザーリストを作成します。各ユーザーは別々の行に表示する必要があります。

$ cat ユーザーリスト.txt
ユーザー1
ユーザー2
ユーザー3

グループリストを作成します。各グループは別々の行に配置する必要があります。

$ cat グループリスト.txt
マイグループ
私のグループ1

複数のユーザーを複数のセカンダリ グループに追加するには、次のシェル スクリプトを使用します。

#!/bin/sh
`more user-lists.txt` 内のユーザー
する
`more group-lists.txt` 内のグループ
する
usermod -a -G $グループ $ユーザー
終わり

group-update-1.sh ファイルの実行権限を設定します。

# chmod +x グループ更新-1.sh

最後にスクリプトを実行して実装します。

#sh グループ更新 1.sh

getent コマンドを使用して出力を見てみましょう。 はい、user1、user2、user3 が mygroup に正常に追加されました。

#getent グループ mygroup
私のグループ:x:1012:ユーザー1、ユーザー2、ユーザー3

さらに、user1、user2、user3 が mygroup1 に正常に追加されました。

#getent グループ mygroup1
mygroup1:x:1013:ユーザー1、ユーザー2、ユーザー3

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

/etc/group ファイルを編集することで、ユーザーを任意のグループに手動で追加できます。

/etc/group ファイルを開き、更新するユーザーのグループ名を検索します。最後に、ユーザーを対応するグループに更新します。

# vi /etc/グループ

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux のユーザーとグループ管理によく使われるコマンドの概要
  • Linux でユーザーとグループを作成、変更、削除する方法
  • Linux で userdel を使用してユーザーとグループを削除できない問題の解決策
  • Linux ユーザーおよびグループ コマンドの概要と詳細な紹介
  • Linux 検索フィルタリングとユーザーおよびグループ管理コマンドの例
  • Linux オペレーティング システムにおけるユーザーとグループの構成管理ガイド
  • Linuxでユーザーが所属するグループを変更する方法
  • Linux における効果的なユーザー グループと初期ユーザー グループの実装
  • Linux ユーザー グループと権限の概要
  • Linux でのユーザーとユーザー グループの追加/削除の詳細な説明
  • Linux ですべてのユーザーとユーザー グループを表示する方法 (ユーザー グループを変更する)
  • Linux ユーザーとグループのコマンド例分析 [切り替え、ユーザーの追加、権限制御など]

<<:  Vueがビデオアップロード機能を実装

>>:  Mysqlは隣接リスト(隣接リスト)を通じてツリー構造を保存します。

推薦する

ネイティブ CSS で無限テキストカルーセルを実装する一般的な方法

テキストカルーセルは私たちの日常生活で非常に一般的です。スーパーマーケットや実店舗の入り口には、テキ...

Dockerで最もよく使われるイメージコマンドとコンテナコマンドの詳細な説明

この記事では、Docker の使用で最もよく使用されるイメージ コマンドとコンテナ コマンドを一覧表...

フォーム送信の更新ページはソースコード設計にジャンプしません

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

xshellリモート接続の自動切断の問題の解決方法の詳細な説明

xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...

ネイティブ JS でスネーク ゲームを書く

この記事では、参考までに、JSでスネークゲームを書くための具体的なコードを紹介します。具体的な内容は...

Linux環境にDocker環境をインストールする(落とし穴なし)

目次インストールの前提条件ステップ1: システムの残りを確認してクリアし、Dockerの依存関係をイ...

MySQLコンテナ間のレプリケーション構成例の詳細な説明

背景先週、会社で MySQL レプリケーションのトレーニングを受けたので、今週末は学んだことを実践す...

Dockerコンテナオーケストレーション実装プロセス分析

実際の開発環境や本番環境では、コンテナを独立して実行することはあまりなく、複数のコンテナを一緒に実行...

MySQL ステートメントロックの実装の分析

概要: 2 つの MySQL SQL ステートメント ロックの分析次のSQL文にどのようなロックが追...

Chrome 73 によるフレックスレイアウトの崩れの解析と解決方法

現象プロジェクトにはネストされたフレックス構造がいくつかあります。 <スタイル> /* ...

MySQL レプリケーションの詳細な説明と簡単な例

MySQL レプリケーションの詳細な説明と簡単な例マスタースレーブレプリケーション技術は、MySQL...

Linuxのseqコマンドを使用して数字のシーケンスを生成します(推奨)

Linux の seq コマンドは、数字のリストを非常に高速に生成でき、使いやすく柔軟性に優れてい...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

JavaScript のクロージャの問題の詳細な説明

クロージャは、純粋関数型プログラミング言語の伝統的な機能の 1 つです。クロージャをコア言語構造の不...

Tencent Cloud Serverの構築方法を説明します(グラフィックチュートリアル)

この記事は元々ブロガーのWeiwei Miaoによって書かれたものです。ブログホームページ: htt...