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

推薦する

Nginx リバース プロキシはポート 80 のリクエストを 8080 に転送します

まず、一連の概念を理解しましょう。nginx リバース プロキシとは何でしょうか?リバース プロキシ...

lastInfdexOf 関数の MySQL 実装例

MySQL では lastIndexOf に似た関数を使用する必要がある場合もありますが、すぐに使用...

MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal

Canal は、Java を使用して開発された Alibaba のオープンソース プロジェクトです...

Vueはランニングライトのシンプルな効果を実現

この記事では、マーキーのシンプルな効果を実現するためのVueの具体的なコードを参考までに共有します。...

Javascript で SessionStorage と LocalStorage を使用する方法

目次序文SessionStorage と LocalStorage の紹介SessionStorag...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

jsでユーザー登録機能を実装する

この記事の例では、ユーザー登録機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

Nginx のインストールと設定ルールの詳細な紹介

目次1. nginxのインストールと操作(Mac OS環境) 2. nginxルールの設定3. コマ...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

MySQL ページング分析の原理と効率改善

MySQL ページング分析の原理と効率改善PERCONA PERFORMANCE CONFERENC...

テキストエリアのテキストをHTMLに変換する方法、つまり復帰改行について

説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...

Navicat を使用してリモート Linux MySQL データベースに接続するときに発生する 10061 不明エラーの詳細な説明

Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...

jsを使用してスライダーをドラッグする効果を実現します

この記事では、jsでスライダーをドラッグする方法の具体的なコードを参考までに共有します。具体的な内容...

JavaScript ドキュメント オブジェクト モデル DOM

目次1. JavaScriptはページ内のすべてのHTML要素を変更できる1. IDでHTML要素を...

Javascript のスコープとクロージャの詳細

目次1. 範囲2. スコープチェーン3. 語彙の範囲5. 閉鎖の適用6. クロージャの欠陥7. 閉会...