Linux システムでのユーザー管理の概要

Linux システムでのユーザー管理の概要

1. ユーザーとユーザーグループの重要性

1) ユーザーの存在意義

システム リソースは限られています。システム リソースを合理的に割り当てるにはどうすればよいでしょうか?

1. アカウント

2. 認可

3. 認証

上記の 3 つの「a」は 3A メカニズムと呼ばれ、システム内の最も低いレベルのセキュリティ アーキテクチャを構成します。

2) ユーザーグループの重要性

ユーザー グループは、ユーザーを分類して均一に承認する論理コンテナーです。

簡単に言えば、ユーザー グループは、私たちが学校に通っていたときのクラスやコミュニティ組織のようなものです。クラスで付与される権利と、コミュニティ内の部門が持つ権限、それがあなたの持つものです。これにより、権力の統一的な分散化が促進されます。

2. システム内でのユーザーとユーザーグループの存在方法

コンピュータは数字に敏感ですが、人間は名前にもっと敏感なので、この機能を使用して、関連付けられた数字と文字列の形式でユーザーをコンピュータに保存できます。

Linux ではすべてがファイルであることはご存じのとおりです。ユーザーも例外ではありません。ユーザーやユーザー グループと呼ばれるものは、実際にはファイル内の文字列です。

ユーザーは、/etc/passwd ファイル内の文字列です。ユーザー グループは、/etc/group ファイル内の文字列です。vim /etc/passwd このコマンドを使用すると、passwd ファイルの内容を表示し、ユーザー情報を取得できます。vim /etc/group このコマンドを使用すると、group ファイルの内容を表示し、ユーザー グループ情報を取得できます。

ただし、ファイル内のユーザーまたはユーザー グループの ID 情報を表示するのは少し面倒です。Linux では、ユーザーの関連情報を表示しやすくするための次のようなコマンドが提供されています。

whoami 現在のユーザー名を表示します id [パラメータ][ユーザー名] ユーザーのID情報を表示します。デフォルトのユーザー名は現在のユーザーを表示します -u ユーザーのユーザーIDを表示します
    -g ユーザーのプライマリグループIDを表示する
    -G ユーザーのすべてのグループIDを表示する
    -n は名前を表示します。単独では使用できません。ユーザー ID の範囲を表示するには、上記のコマンドと組み合わせて使用​​する必要があります。
    0: スーパーユーザーID
    1-999: Linux システム ID
    1000-65535: ユーザーレベルID
            
            上記のID情報は/etc/login.defsに記録されます。

3. ユーザーに関連するシステム設定ファイル

/etc/passwd ユーザー識別情報ファイル

passwd 内の文字列の意味: ユーザー名: ユーザーのパスワード: ユーザー ID: ユーザーのプライマリ グループ ID: ユーザーの説明: ユーザーのホーム ディレクトリ: ユーザーのデフォルト シェル

/etc/group グループ識別情報ファイル

グループ名: グループパスワード: グループID: グループの追加メンバー

/etc/skel/.* ユーザー環境設定ファイルテンプレート

/etc/shadow ユーザー認証情報ファイル

/home/username ユーザーのホームディレクトリ

/var/spool/mail/username ユーザーメールボックスファイル

4. ユーザー関連の操作

1) ユーザーとユーザーグループの作成と削除

watchコマンドを使用してユーザーの作成と削除を監視することができます。

watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"

ユーザー作成コマンド useradd:

useradd username ##ユーザー作成 -u id username ##ユーザーのuidを指定
        -g id username ##プライマリグループIDを指定します
        -G id username ##追加のグループIDを指定します
        -d dir username ##ユーザーのホームディレクトリを指定します -M username ##ユーザー作成時にホームディレクトリを自動的に作成しません -c word username ##ユーザー作成時にユーザーへの指示を指定します -s shell username ##シェルを指定します
userdel username ##ユーザーの削除 -r username ##ユーザーを削除し、ホームディレクトリとシステム構成ファイルを削除します groupadd groupname ##グループの作成 -g id groupname ##グループIDを指定します
groupdel groupname ##グループの削除

2) ユーザーおよびユーザーグループの情報管理

サーバーの使用中に、ユーザーの関連属性を変更する必要がある場合があります。ユーザーは /etc/passwd ファイルに文字列の形式で保存されており、その文字列の意味もわかっています。

ユーザー名: ユーザーパスワード: ユーザーID: ユーザーのプライマリグループID: ユーザーの説明: ユーザーのホームディレクトリ: ユーザーのデフォルトシェル

もちろん、ルート ユーザーを使用してこれらのフィールドを変更し、ユーザー情報を変更することもできますが、実際のアプリケーションではこれを行わず、いくつかの関連コマンドを使用します。

usermod [オプション] [パラメータ] [ユーザー名]
 
[オプション]
        -l #ユーザー名を変更 -u #ユーザーのuidを変更
        -g #ユーザーのプライマリグループIDを変更する
        -G #ユーザーの追加グループ ID を変更します -aG #ユーザーの追加グループ ID を追加します -c #ユーザーの説明テキストを変更します -d #ユーザーのホーム ディレクトリ ポインターを変更します -md #ホーム ディレクトリ ポインターとホーム ディレクトリ名を同時に変更します -s #既定のシェルを変更します
        -L #アカウントを凍結 -U #アカウントのロックを解除

パスワード情報はシャドウ ファイル、シャドウ コンテンツに保存されます。

ユーザー名: 暗号化されたパスワード: 最終更新日時: 最小変更間隔: パスワードの有効期間: パスワード変更前の警告日数: パスワード有効期限後の猶予時間: アカウントの有効期限: 予約フィールド

passwdコマンドを使用してパスワード関連の属性情報を変更することができます。

passwd [オプション] [パラメータ] [ユーザー名]
オプションとパラメータが設定されていない場合は、「ユーザー名」のパスワードを変更します[オプション]
        -S #パスワードの状態を確認する -l #アカウント認証を凍結する -u #アカウント認証をロック解除する -d #ユーザーパスワードを削除する -e #デフォルトの使用時間を0に変更する
        -n #最小使用時間を設定します -x #パスワードの有効期限を設定します -w #有効期限の警告時間を設定します -l #非アクティブ日数を設定します change -d 0 [ユーザー名] #ログインするにはパスワードを変更する必要があります change -E "xxxx-xx-xx" [ユーザー名] #凍結日を設定します

5. ユーザーの分散化

実際にサーバーを使用する場合、分散化を使用することが多いです。これにより、より高い権限で一部のコマンドを実行できます。たとえば、分散化を使用すると、一般ユーザーが一部のコマンドを root として実行できるため、root アカウントにログインする必要がなくなり、システムのセキュリティを確保しながら目的を達成できます。

認証方法:

visudo コマンドを使用して /etc/sudoers ファイルを変更することができます (もちろん、vi または vim を使用して変更することもできますが、vi と vim は構文検出を提供しないため、ファイルを誤って変更した場合にエラーを見つけるのが不便です)。

便宜上、通常はファイルの 100 行目あたりに分散化を追加します。

ユーザー名 ホスト名=(新しいユーザー名) [NOPASSWD:] /command, /command1

6. ファイルの権限の表示と読み取り

1) 権限チェック

ls -l file # ファイルの権限を表示する ls -ld dir # ディレクトリの権限を表示する

ファイルの権限情報は、次の 3 つのカテゴリに分かれています。

u はユーザー(ファイルの所有者)を表します。g はグループ(ファイルの所有者グループ)を表します。o はその他(ファイルの所有権とは関係のない他の人)を表します。各主要タイプには権限を示すフラグ ビット(rwx)があります。
r は読み取り(読み取り権限)、w は書き込み(書き込み権限)、x は実行権限を表します。

chmodコマンドを使用してファイル関連の権限情報を変更することができます。

chmod [ugo][+-=][rwx] [filename/dirname] #式で権限を付与 chmod [xxx] [filename/dirname] #数値で権限を付与 ブール値を理解することで、rwx の 3 ビットを 2 進数から 8 進数に変換できます。
W-2
x-1

S 権限

文字列式を使用して S 権限を設定できます。S 権限の機能は次のとおりです。

ファイルの u ビットに s パーミッションが設定されている場合、ファイル実行者はファイルを実行するときにそのファイルの所有者 ID を取得します。これはバイナリ ファイルでのみ使用できます。ファイルの g ビットに s パーミッションが設定されている場合、ファイル実行者はファイルのグループ ID を取得します。ディレクトリで使用すると、ディレクトリ内に作成されたファイルのグループがこのディレクトリのグループになります。スティッキー ビットの効果はディレクトリに対してのみ有効であり、その効果は、ファイルの所有者だけが現在のディレクトリ内の自分のファイルを削除できることです。

Linux システムでのユーザー管理に関するこの記事はこれで終わりです。Linux システムでのユーザー管理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux コマンドラインで他のユーザーと通信する方法
  • Linux システムのユーザー管理コマンドの概要
  • Linux ファイルとユーザー管理の実践

<<:  Youku 動画から 30 秒の広告コードを削除する 2 つの方法

>>:  10秒以内にMySQLデータベースに数百万件のレコードを挿入する実装

推薦する

reduxの動作原理と使い方の説明

目次1. redux とは何ですか? 2. 還元の原則3. redux の使い方は? (1)redu...

CSS ボックスの折りたたみに対する 5 つの解決策

まず、ボックスコラプスとは何でしょうか?親ボックスの内側にあるべき要素が外側にあります。第二に、箱は...

MySQLのネストされたトランザクションで発生する問題

MySQL はネストされたトランザクションをサポートしていますが、それを実行する人は多くありません....

CSS モジュールソリューション

CSS のモジュール ソリューションは、JS のモジュール ソリューションと同じくらい多く存在すると...

Vue サーバーに js 構成ファイルをインポートする方法

目次背景成し遂げるvue-cli2.0での設定方法の補足要約する背景プロジェクトにはローカル構成ファ...

MySQL で期限切れのデータレコードを定期的に削除する簡単な方法

1. MySQL に接続してログインしたら、まず MySQL でイベント機能が有効になっているかどう...

Mysql での結合操作

結合の種類1. 内部結合: 結合関係を持つ 2 つのテーブル内のフィールドは、結合関係を満たすレコー...

HTML の色に関する参考資料

HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...

Nexus をベースに Alibaba Cloud プロキシ ウェアハウスを構成するプロセスの分析

Nexus のデフォルトのリモートリポジトリは https://repo1.maven.org/ma...

Linux での Makefile の書き方と使い方の詳細な説明

目次メイクファイルMakefile の命名とルールMakefile の仕組みMakefile変数Ma...

ネイティブ JavaScript を使用した Web 計算機の実装

この記事では、参考までに、計算機のWebバージョンを実装するためのJavaScriptの具体的なコー...

MySQL の group by と having の詳細な説明

GROUP BY 構文を使用すると、指定されたデータ列の各メンバーに従ってクエリ結果をグループ化して...

js はマウスインとマウスアウトによるカード切り替えコンテンツを実装します

この記事では、マウスでカード内外のコンテンツを切り替えるためのjsの具体的なコードを紹介します。具体...

Spring Boot + jar パッケージングのデプロイメント Tomcat 404 エラーの問題を解決する

1. Spring Boot は jsp jar パッケージをサポートしていません。jsp は wa...