GNU/Linux >> Linux の 問題 >  >> Linux

/ etc/shadowファイルを理解する

Linuxシステムで使用できるいくつかの異なる認証スキームがあります。最も一般的に使用される標準的なスキームは、/etc/passwdに対して認証を実行することです。 および/etc/shadow ファイル。

/etc/shadow システムのユーザーのパスワードに関する情報を含むテキストファイルです。ユーザーrootとグループシャドウが所有し、640の権限があります。

/etc/shadow フォーマット#

/etc/shadow ファイルには、1行に1つのエントリが含まれ、各エントリはユーザーアカウントを表します。テキストエディタまたはcatなどのコマンドを使用して、ファイルの内容を表示できます。 :

sudo cat /etc/shadow

通常、最初の行はrootユーザーを表し、その後にシステムアカウントと通常のユーザーアカウントが続きます。新しいエントリはファイルの最後に追加されます。

/etc/shadowの各行 ファイルには、コンマで区切られた9つのフィールドが含まれています:

mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
|      |      |   |   |   |||+-----------> 9. Unused
|      |      |   |   |   ||+------------> 8. Expiration date
|      |      |   |   |   |+-------------> 7. Inactivity period
|      |      |   |   |   +--------------> 6. Warning period
|      |      |   |   +------------------> 5. Maximum password age
|      |      |   +----------------------> 4. Minimum password age
|      |      +--------------------------> 3. Last password change
|      +---------------------------------> 2. Encrypted Password
+----------------------------------------> 1. Username
  1. ユーザー名。システムにログインするときに入力する文字列。システムに存在するユーザーアカウント。

  2. 暗号化されたパスワード。パスワードは$type$salt$hashedを使用しています フォーマット。 $type メソッド暗号化ハッシュアルゴリズムであり、次の値を持つことができます:

    • $1$ – MD5
    • $2a$ –フグ
    • $2y$ – eksblowfish
    • $5$ – SHA-256
    • $6$ – SHA-512

    パスワードフィールドにアスタリスク(*が含まれている場合 )または感嘆符(! )、ユーザーはパスワード認証を使用してシステムにログインできなくなります。キーベースの認証やユーザーへの切り替えなど、他のログイン方法は引き続き許可されます。

    古いLinuxシステムでは、ユーザーの暗号化されたパスワードは/etc/passwdに保存されていました。 ファイル。

  3. 最後のパスワード変更。これは、パスワードが最後に変更された日付です。 1970年1月1日(エポック日)からの日数をカウントします。

  4. パスワードの最小有効期間。ユーザーパスワードを変更できるようになるまでに経過する必要のある日数。通常はゼロに設定されます。これは、パスワードの最小有効期間がないことを意味します。

  5. パスワードの最大有効期間。ユーザーパスワードを変更する必要がある日数。デフォルトでは、この番号は99999に設定されています 。

  6. 警告期間。パスワードの有効期限が切れるまでの日数。その間に、パスワードを変更する必要があることをユーザーに警告します。

  7. 非アクティブ期間。ユーザーパスワードの有効期限が切れてからユーザーアカウントが無効になるまでの日数。通常、このフィールドは空です。

  8. 有効期限。アカウントが無効になった日付。エポック日付として表されます。

  9. 未使用。このフィールドは無視されます。将来の使用のために予約されています。

/etc/shadow 何をしているのかわからない限り、ファイルを手動で編集しないでください。常に目的に合わせて設計されたコマンドを使用してください。たとえば、ユーザーパスワードを変更するには、passwdを使用します コマンドを実行し、パスワードのエージング情報を変更するには、chageを使用します コマンド。

エントリの例#

次の例を見てみましょう:

linuxize:$6$zHvrJMa5Y690smbQ$z5zdL...:18009:0:120:7:14::

上記のエントリには、ユーザーの「linuxize」パスワードに関する情報が含まれています。

  • パスワードはSHA-512で暗号化されています(読みやすくするためにパスワードは切り捨てられています)。
  • パスワードは2019年4月23日に最後に変更されました-18009
  • パスワードの最低有効期間はありません。
  • パスワードは少なくとも120日ごとに変更する必要があります。
  • ユーザーは、パスワードの有効期限の7日前に警告メッセージを受け取ります。
  • パスワードの有効期限が切れてから14日後にユーザーがシステムにログインしようとしない場合、アカウントは無効になります。
  • アカウントの有効期限はありません。

結論#

/etc/shadow ファイルは、暗号化されたユーザーのパスワードに関する記録、およびその他のパスワード関連情報を保持します。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Linux の /etc/inittab ファイルについて

  2. /etc/login.defs ファイルについて

  3. ネットワーク インターフェイス構成ファイルの理解 /etc/sysconfig/network-scripts/ifcfg-eth#

  1. Linux の /etc/profile 構成ファイルについて

  2. /etc/shadow から日付を抽出する

  3. /etc/shadow のパスワードを手動で生成する

  1. Linux / etc/fstabファイルの紹介

  2. との差 !対!! vs * /etc/shadow 内

  3. /etc/hosts のサイズ制限は?