随意アクセス制御(DAC)メカニズムのコンテキストでは、システムリソース、ファイル、およびディレクトリへのアクセスは、ユーザーのIDとユーザーがメンバーになっているグループに基づいています。このタイプのアクセス制御は、ユーザーが独自のポリシー決定を実行できるため、「任意」と呼ばれます(もちろん、独自のアクセス許可によって制限されます)。このチュートリアルでは、ユーザーをグループに追加する方法と、RHEL 8 / CentOS8Linuxシステムのプライマリグループとセカンダリグループの違いを説明します。
このチュートリアルでは、次のことを学びます。
- プライマリグループとセカンダリグループの違いは何ですか
- usermodコマンドを使用してユーザーをグループに追加する方法
- vigrを使用してユーザーをグループに直接追加する方法
Rhel8のグループにユーザーを追加する方法
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
このチュートリアルに従うために特別なソフトウェアは必要ありません | |
root権限でコマンドを実行する権限。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
グループとは何ですか?
LinuxはUnixをベースにしており、マルチユーザーOSです。複数のユーザーが存在し、同時にシステム内のリソースを共有します。最も単純なレベルでは、このリソースへのアクセスはDAC
を使用して管理されます (随意アクセス制御)モデル。たとえば、ファイルやディレクトリへのアクセスは、ユーザーのIDとgroups
に基づいています。 彼はのメンバーです。このチュートリアルでは、Red Hat EnterpriseLinux8マシンの既存のグループにユーザーを追加する方法を説明します。
一次および二次グループ
現在、Red Hatは、他のほとんどすべての主要なLinuxディストリビューションと同様に、UPG
と呼ばれるスキームを使用しています。 、またはユーザープライベートグループ:新しいユーザーが作成されるたびに、同じユーザー名の新しいグループも自動的に作成され、ユーザーが唯一のメンバーになります。これはいわゆるprimary
です またはprivate
グループ。
各ユーザーには、他のメンバーがいない、自分にちなんで名付けられた独自のプライマリグループがあります。この設定により、デフォルトのumask
を変更できます 値:従来は022
でした (これは644
を意味します ファイルと755
の権限 ディレクトリの場合)、現在は通常002
に設定されています (664
ファイルと775
の権限 ディレクトリの場合)。
デフォルトでは、ユーザーが作成する各ファイルまたはディレクトリはそのユーザーのプライマリグループで作成されるため、この設定では、セキュリティを維持しながら(ユーザーは自分のファイルのみを変更できます)、のメンバーであるユーザー間のリソース共有とコラボレーションが簡素化されます。グループの書き込み権限を許可することにより、setgidビットが使用されている場合の同じグループ。
groups
を使用すると、ユーザーがメンバーになっているグループのリストを取得できます。 コマンド:
$ groups egdoc wheel
コマンドの出力からわかるように、現在のユーザーegdocはegdoc
に属しています。 独自のプライマリグループであるgroupとwheel
group。これにより、彼はsudo
でコマンドを実行できるようになります。 、およびこれはいわゆるsecondary group
:デフォルトではユーザーに関連付けられていないオプションのグループ。
usermodを使用してユーザーをグループに追加します
ユーザーはそのプライマリグループの唯一のメンバーですが、ユーザーをセカンダリグループに追加して、ある種のリソースへのアクセスを許可したい場合があります。たとえば、test
があるとします。 ユーザーであり、既存のグループlinuxconfig
に追加します :このタスクを実行するための最も簡単で推奨される方法は、usermod
を使用することです。 コマンド:
$ sudo usermod -a -G linuxconfig test
使用したオプションを調べてみましょう。 usermod
ユーティリティ、ユーザーアカウントを変更しましょう。これを使用することで、ユーザーのホームディレクトリの変更、アカウントの有効期限の設定、アカウントの即時ロックなど、さまざまな操作を実行できます。このコマンドを使用すると、ユーザーを既存のグループに追加することもできます。この場合に使用したオプションは-G
です。 (--groups
の略 )および-a
、(これは--append
の短縮形です 。
-Gまたは–groupsオプションを使用すると、ユーザーがメンバーになる必要のあるコンマ区切りの補足グループのリストを提供できます。前に述べたように、提供された各グループはシステム上にすでに存在している必要があります。覚えておくべき非常に重要なことの1つは、提供されたグループのリストは、-a
であるかどうかにかかわらず、異なる方法で解釈されることです。 オプションも提供されているかどうか。最初のケースでは、リストは、ユーザーがすでにメンバーになっているグループに加えて、ユーザーが追加する必要のある補足グループとして解釈されます。 -a
の場合 オプションは提供されません。代わりに、リストはユーザーがメンバーになる必要があるグループの絶対リストとして解釈されます。コマンドのマンページに記載されているように、後者の場合、ユーザーが現在コマンドに提供されているリストの一部ではないグループのメンバーである場合、そのグループから削除されます!
ユーザー「test」は「linuxconfig」グループのメンバーになりました。確認しましょう:
$ sudo groups test test : test linuxconfig
ユーザーをグループに直接追加する
usermod
を使用する ユーザーをグループに追加する最も簡単な方法です。完全を期すために、vigr
を使用して同じタスクを実行する別の方法を検討します。 linuxコマンド。このコマンドを使用すると、/etc/group
を編集できます。 および/etc/gshadow
ファイルを直接、開いている間もロックして、破損を防ぎ、一貫性を確保します。
ファイルの「シャドウ」バージョン(/ etc / gshadow)は、-s
の場合にのみ変更されます。 オプションが使用されます。このメソッドで「test」ユーザーを「linuxconfig」グループに追加するには、vigr
を実行する必要があります スーパーユーザーとしてのコマンド:/etc/group
ファイルはデフォルトのエディタ(通常はvi)で開かれます:
[...] chrony:x:993: egdoc:x:1000: cgred:x:992: docker:x:991: apache:x:48: test:x:1001:test linuxconfig:x:1002: [...]
各グループを表すために使用される構文は次のとおりです。
group-name:group-password:group-id:users
フィールドはコロンで区切られます。最初のフィールドはグループ名、2番目のフィールドはグループの「パスワード」(通常は設定されません)、3番目のフィールドはGID
です。 またはgroup-id。最後のフィールドは、グループのメンバーのコンマ区切りのリストです。 「test」ユーザーを「linuxconfig」グループに追加するには、このフィールドを変更して、行が次のようになるようにする必要があります。
linuxconfig:x:1002:test
変更が実行されたら、ファイルを保存して閉じることができます。ターミナルにメッセージが表示されます:
You have modified /etc/group. You may need to modify /etc/gshadow for consistency. Please use the command 'vigr -s' to do so.
/etc/group
を変更したので ファイルの場合、メッセージは、関連するシャドウファイル(/etc/gshadow
)も変更することを提案します。 。ご存じない方のために説明すると、シャドウファイルは、プレーンテキスト形式で安全に保存できない暗号化されたバージョンの情報を保存するために使用されます。たとえば、前に見たように、x
/etc/group
で報告されます オプションのグループパスワードの代わりにファイル。パスワードのハッシュバージョンが存在する場合は、シャドウファイルに保存されます。
それでは、以前と同じ変更を/etc/gshadow
に加えましょう。 ファイル、/etc/group
と同期するようにします 。私たちがしなければならないのは、-s
を提供することだけです vigr
へのフラグ コマンド:
$ sudo vigr -s
ファイルを開いたら、必要な変更を加えます:
linuxconfig:!::test
その後、このファイルは読み取り専用であるため、強制的に書き込む必要があります。vi
を使用する場合 、w!
を実行することでこれを行うことができます コマンド。
2つのファイルの同期を維持する別の方法は、grpconv
を使用することです。 /etc/gshadow
を作成するコマンド /etc/group
からのファイル 、およびオプションで既存の/etc/gshadow
から ファイル:
$ sudo grpconv
この時点で、次のコマンドを実行して2つのファイル間の整合性を確認できます。
$ sudo grpck
この時点では出力は表示されません。
結論
このチュートリアルでは、プライマリグループとセカンダリグループの違いと、DAC
でのそれらの役割について説明しました。 モデル。 usermod
を使用して、ユーザーをグループに追加する方法を確認しました。 推奨される方法であるコマンド、またはvigr
を使用して直接コマンド /etc/group
を安全に編集するコマンド および/etc/gshadow
ファイル。この管理タスクを実行するために使用する手順が何であれ、常に最大限の注意を払う必要があります。