Linuxの/ etc / shadowファイルとは何ですか?それは何をしますか?

Linuxシステムファイルをざっと見てみると、 / etcディレクトリにshadowという名前のファイルがあるかもしれません。不気味に聞こえるかもしれませんが、システム管理にとって本当に安全で、必要で、便利なファイルです。

今日は、 / etc / shadowファイルの内容と、それがシステムについて何を教えてくれるかを詳しく見ていきます。

/ etc / shadowとは何ですか?

不思議なことに、ファイルの機能は非常に単純です。 / etc / shadowファイルには、Linuxシステムのユーザー、パスワード、およびパスワードの時間規制に関する情報が含まれています。

Linuxパスワードを作成または変更すると、システムはパスワードをハッシュしてシャドウファイルに保存します。有効期限や非アクティブ期間など、管理者によって割り当てられたパスワードルールもここに残ります。シャドウファイルは、たとえば、ユーザーのパスワードが正しいかどうか、またはパスワードの有効期限が切れたときに、認証プロトコルに通知できます。

シャドウファイルを直接編集しないでください。これは自動化されたプロセスによって維持され、通常のユーザーが変更することを意図したものではありません。それでも、そこに含まれる情報はあなたにとって価値がある可能性があるので、一見の価値があります。

Linuxシャドウファイルには何が含まれていますか?

シャドウファイルの内容を確認するには、ターミナルを開き、ターミナルでcatコマンドを発行します。

 sudo cat /etc/shadow

パスワードの入力を求めるプロンプトが表示されます。管理者権限があるとすると、次のようなテキスト文字列の印刷出力が表示されます(画面に合わせて文字列がクリップされた場所に省略記号が付いています)。

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

それは不可解に見えます、そして確かに、それのいくつかは暗号化されたテキストです。文字列は、しかし、特定の構造を、以下、コロンで区切られた情報の家特定のビット、(:)文字。

文字列の完全なレイアウトは次のとおりです。

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

これらの各フィールドを詳しく見てみましょう。

1.ユーザー名

文字列に続くものはすべて、このユーザー名に関連付けられています。

2.パスワード

パスワードフィールドは、ドル記号で示される3つの追加フィールドで構成されます: $ id $ salt $ hash

  • id:これは、パスワードの暗号化に使用される暗号化アルゴリズムを定義します。値は、 1 (MD5)、 2a (Blowfish)、 2y (Eksblowfish)、 5 (SHA-256)、または6 (SHA-512)のいずれかです。
  • ソルト:これは、パスワードの暗号化と認証に使用されるソルトです。
  • hash:これはハッシュ後に表示されるユーザーのパスワードです。シャドウファイルはパスワードのハッシュバージョンを保持するため、システムはパスワードを入力しようとする試みをチェックできます。

詳細:定義された基本的な暗号化用語

パスワードフィールドにアスタリスク* )または感嘆符 )のみが含まれる場合があります。これは、システムがユーザーのアカウントを無効にしているか、ユーザーがパスワード以外の方法で認証する必要があることを意味します。これは、シャドウファイルにも見られる可能性のあるシステムプロセス(疑似ユーザーとも呼ばれます)の場合によくあります。

3.最後のパスワード変更の日付

ここでは、このユーザーが最後にパスワードを変更した時刻を確認できます。システムは日付をUnix時間形式で表示することに注意してください。

4.パスワードの最小有効期間

ここには、ユーザーがパスワードを変更してから再度変更するまでに待機する必要のある日数が表示されます。

最小値が設定されていない場合、ここでの値は0になります。

5.パスワードの最大有効期間

これは、ユーザーがパスワードを変更せずに移動できる時間を定義します。パスワードを頻繁に変更することには利点がありますが、デフォルトでは、値は寛大な99、999日に設定されます。それは275年に近いです。

6.警告期間

このフィールドは、パスワードが最大経過時間に達するまでの日数を決定します。その間、ユーザーはパスワードを変更するように通知されます。

7.非アクティブ期間

これは、ユーザーのパスワードが最大経過時間に達してから、システムがアカウントを無効にするまでに経過できる日数です。これは、技術的に有効期限が切れている場合でも、ユーザーがパスワードを変更する2回目のチャンスがある「猶予期間」と考えてください。

8.有効期限

この日付は、システムがユーザーのアカウントを自動的に無効にする非アクティブ期間の終了です。無効にすると、管理者が再度有効にするまで、ユーザーはログインできなくなります。

このフィールドは、設定されていない場合は空になり、設定されている場合は、日付がエポック時間で表示されます。

9.未使用

このフィールドは現在目的を果たさず、将来の使用のために予約されています。

シャドウファイルの説明

シャドウファイルは実際にはまったく不思議ではありません。ただし、パスワードとパスワードルールを変更する場合は、シャドウファイルを直接編集するのではなく、その目的のために指定されたツールを使用することを選択する必要があることに注意してください。

Linuxシステムに新しいユーザーを追加するたびに、 / etc / shadowファイルは、ユーザーに関する認証情報を格納するように自動的に変更されます。