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データベースに数百万件のレコードを挿入する実装

推薦する

Centos7 に PHP と Nginx をインストールする詳細なチュートリアル

Centos のサーバー側への適用がますます普及するにつれて、Centos7 もますます使用されるよ...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

Vue3 ミックスインの使い方

目次1. mixin の使い方は? 2. ミックスイン使用時の注意2.1. ミックスイン オブジェク...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

Linux で ARM 開発ボード用のファイルシステムを作成する

1. Busyboxのソースコードをオンラインでダウンロードしてください。コンパイル方法については、...

Vue.jsはアイコンをクリックしてズームインし、

前回の記事では、Vue で画像の切り抜きや拡大・縮小、回転を実現する方法を紹介しました。今回は、アイ...

MySQLでデータを削除してもディスク領域が解放されないのはなぜですか

目次問題の説明解決問題分析問題の説明MySQL で delete ステートメントを使用してデータを削...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

MySQLのエンコードの不一致によって発生する可能性のある問題

ストアドプロシージャとコーディングMySQL ストアド プロシージャでは、テーブルとデータのエンコー...

Linux と最もよく使用されるコマンドの紹介 (習得は簡単ですが、問題の 95% 以上を解決できます)

Linux は現在最も広く使用されているサーバー オペレーティング システムです。Unix をベー...

jQueryはドロップダウンメニューのスライド効果を実現します

Web ページを作成するときに、クールでスムーズなドロップダウン メニューが必要になることがあります...

1 分で Nginx のバージョンをスムーズにアップグレードおよびロールバックする方法

今日は、企業の実際の本番環境でよく遭遇する、Nginx を新しいバージョンにアップグレードし、古いバ...

Tomcatサーバーのセキュリティ設定方法

Tomcat は、Java Community Process を通じて Sun が開発した、広く使...

ウェブサイトにダークモード切り替え機能を持たせるための純粋なCSSフリー実装コード

序文ダーク モードの概念は、 MacOS系統のMojaveに由来し、ユーザーが選択できる 2 つのス...