Linuxがユーザーパスワードを保存および管理する方法
Linuxがマルチユーザー環境をどのように効率的に管理するのか疑問に思ったことはありませんか?この記事では、Linuxがユーザーのパスワードとログインを保存および管理する方法について説明します。
/ etc/passwdファイルの探索
ユーザーがユーザー名とパスワードを入力すると、Linuxは入力されたパスワードを「/etc」ディレクトリ内のいくつかのファイルのエントリと照合します。
「/etc/ passwd」は、ユーザーの詳細を保存する最も重要なファイルの1つです。
このファイルの最後のエントリは、「カーボン」ユーザーに対応しています。コロン(:)で区切られた情報の複数のフィールドがあります。
carbon
:このエントリが対応するユーザーの名前。-
x
:ユーザーのパスワードが存在することを示します。ただし、パスワードは「/ etc/shadow」ファイルに保存されます。x
の代わりに!
が表示されます 記号、これはパスワードが存在しないことを示します。 -
1000
:このユーザーのユーザーID。 -
1000
:このユーザーが属するグループのグループID。 -
carbon, , ,
:氏名と電話番号を含む複数の情報フィールドを示します。ここでは、電話番号は提供されていません。 -
/home/carbon
:このユーザーに割り当てられたホームディレクトリの場所。 -
/bin/bash
:このユーザーに割り当てられたデフォルトのシェル。
いくつかの電話番号が保存されている別のユーザーを作成しましょう。ユーザー「pluto」は、adduser
を使用してシステムに追加されます コマンド。
「etc/passwd」ファイルをもう一度見ると、ユーザー「pluto」の完全な情報を表示できます。フルネームと番号のコンマ区切りのリストがあるフィールドは、「GECOSフィールド」と呼ばれます。
ユーザーが作成されるたびに、割り当てる必要のあるホームディレクトリとデフォルトシェルの値が「/etc/adduser.conf」ファイルで指定されます。
作成されたユーザーのユーザーIDは、1000から始まり、59999まで実行されます。
ユーザー「carbon」は、cat
を使用するだけで、「/ etc/passwd」ファイルのエントリを表示できました。 指図。その権限を見てみましょう。
「root」ユーザーのみがファイルに書き込むことができます。他のユーザーはファイルを読み取ることしかできません。このファイルは誰でも読み取ることができるため、ここにパスワードを保存することは理想的ではありません。代わりに、「/ etc/shadow」という別のファイルに保存されます。
/ etc/shadowファイルの探索
次に、「/ etc/shadow」ファイルに保存されているユーザー「carbon」と「pluto」のパスワードを表示してみましょう。
「/etc/ shadow」ファイルのアクセス許可を見ると、「root」ユーザーのみがファイルの読み取りと書き込みを実行できることがわかります。また、グループ「shadow」のメンバーのみがファイルを読み取ることができます。実際には、「シャドウ」グループは空ですが、このファイルには構文的に必要です。
「root」としてログインすると、「/ etc/shadow」の最後の10行が表示されます。 「/etc/ passwd」のすべてのエントリについて、このファイルに対応するエントリがあります。形式は次のようになります:
pluto:$6$JvWfZ9u....:18283:0:99999:7:::
このファイルでも、すべてのエントリにコロン(:)で区切られた複数のフィールドがあります。 「pluto」ユーザーのエントリを解読しましょう。
-
pluto
:このエントリが対応するユーザーの名前。 -
$6$JvWfZ9u.$yGFIqOJ....
:使用されるハッシュアルゴリズムに関する情報とともに保存されるハッシュされたユーザーパスワード。さらに、ソルト値がプレーンテキストのパスワードとともに使用され、パスワードハッシュが生成されます。
{ plaintext password, salt} -> hashed password
このフィールドのコンテンツを処理してみましょう。 $
記号は、3つのフィールドを区切る区切り文字として使用されます。
$6 $JvWfZ9u. $yGFIqOJ....
-
$6
:使用されるハッシュアルゴリズム。潜在的なハッシュアルゴリズムのリストは次のとおりです。- $ 1:MD5
- $ 2a:フグ
- $ 2y:Eksblowfish
- $ 5:SHA-256
- $ 6:SHA-512
-
$JvWfZ9u.
:ソルト値。 -
$yGFIqOJ....
:ハッシュ化されたパスワード。
結果のハッシュ値は、ユーザーの暗号化されたパスワードとして保存されます。ソルト値はユーザーごとに異なります。 2人のユーザーが同じプレーンテキストのパスワードを持っている場合でも、一意のソルトを使用すると、一意のハッシュ値が生成されます。
このエントリの残りのフィールドに続いて、
-
18283
:パスワードが最後に変更された1970年1月1日からの日数を示します -
0
:このフィールドは、パスワードを変更できる日数を示すために使用されます。値0は、パスワードをいつでも変更できることを意味します。 -
99999
:このフィールドは、パスワードを変更する必要がある日数を示します。値99999は、ユーザーが必要な限りパスワードを保持できることを示します。 -
7
:パスワードの有効期限が切れるように設定されている場合、このフィールドは、パスワードの有効期限についてユーザーに警告する日数を示します。 -
: : :
ここでは空ですが、さらに3つのフィールドがこのエントリの一部です。最初のものは、パスワードの有効期限が切れてからアカウントが無効になるまで待機する日数を示します。 2つ目は、1970年1月1日からアカウントが無効にされた日数を示します。 3番目のフィールドは、将来の使用のために予約されています。空のフィールドは、このユーザーの既存のパスワードが期限切れになっておらず、すぐに期限切れになるように設定されていないことを示します。
パスワードの有効性に関する最後の7つのフィールドは、まとめて「パスワードエージングポリシー」に関する情報を保持していると言われています。
「パスワードエージングポリシー」に対応するデフォルト値は、「/ etc/login.defs」ファイルで指定されています。これらの値は、ユーザーがchange
を使用して変更できます。 コマンド。
グループ情報はどうですか?
ユーザー情報とパスワードは、「/ etc/passwd」ファイルと「/etc/shadow」ファイルに保存されます。同様に、グループ情報は「/ etc/group」ファイルに保存されます。
上で強調表示されているのは、ユーザー「carbon」と「pluto」に属するグループです。 Linuxでユーザーが作成されると、そのユーザーはすぐにユーザー名と同じ名前のグループに割り当てられます。
グループのメンバーは、グループ関連のアクティビティのためにグループパスワードを共有することもできます。 x
の値 そのグループのパスワード情報が「/etc/gshadow」ファイルにあることを示します。
ただし、「/ etc/gshadow」へのアクセスは「root」ユーザーに制限されています。
「root」ユーザーは、「/ etc/shadow」のエントリを表示できます。これは「/etc/shadow」に似ています。 「carbon」グループのエントリを見ると、2番目のフィールドの値が!
であることがわかります。 、これは、このグループのパスワードが存在しないことを示します。
すべてをまとめる
ユーザーがログインを希望する場合、入力されたパスワードのハッシュは、「/ etc/shadow」内のそのユーザーのソルト値を使用して検出されます。次に、保存されているハッシュと比較されます。値が一致する場合、ユーザーにはアクセスが許可されます。
関連:
- Linuxでrootパスワードをリセットする方法
- Linuxでターミナルからユーザーパスワードを管理する方法
-
LinuxでZipファイルを抽出する方法
Zipファイルは、ダウンロード速度が遅く、保存されたすべてのバイトが重要だったときほど一般的ではありません。それでも、これはかなり一般的なファイルタイプです。遅かれ早かれ、おそらく1つ開く必要があります。 使用するディストリビューションによっては、zipアーカイブを抽出するのはおそらくかなり簡単です。それでも、zipファイルを開いてその内容を処理するためのより高度な方法を知っていても問題はありません。 GUIを使用した解凍 ほとんどのLinuxデスクトップ環境では、ファイルを解凍するのは簡単です。ファイルを右クリックするだけで、いくつかのオプションが表示されます。通常、「ここで抽出」または
-
Linux でファイルを完全に削除する方法
Linux オペレーティング システムでは、削除されたファイルはゴミ箱に移動します。ゴミ箱を空にすると、ファイルはシステムから削除されます。ただし、回復ソフトウェアの需要が高まるにつれて、ゴミ箱から削除されたファイルはある程度まで回復できます。これは、ゴミ箱から削除されたファイルが完全に削除されることはなく、目に見えなくなったことを意味します。ファイルはまだハード ドライブのどこかに不必要なスペースを占有しており、新しいファイルが作成されてハード ドライブの同じセクターに保存されたときにのみ完全に削除されます。貴重なディスク スペースを回復し、ファイルの破損を回避するには、Linux 内のファ