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
-
ユーザー名。システムにログインするときに入力する文字列。システムに存在するユーザーアカウント。
-
暗号化されたパスワード。パスワードは
$type$salt$hashedを使用しています フォーマット。$typeメソッド暗号化ハッシュアルゴリズムであり、次の値を持つことができます:-
$1$– MD5 -
$2a$–フグ -
$2y$– eksblowfish -
$5$– SHA-256 -
$6$– SHA-512
パスワードフィールドにアスタリスク(
*が含まれている場合 )または感嘆符(!)、ユーザーはパスワード認証を使用してシステムにログインできなくなります。キーベースの認証やユーザーへの切り替えなど、他のログイン方法は引き続き許可されます。古いLinuxシステムでは、ユーザーの暗号化されたパスワードは
/etc/passwdに保存されていました。 ファイル。 -
-
最後のパスワード変更。これは、パスワードが最後に変更された日付です。 1970年1月1日(エポック日)からの日数をカウントします。
-
パスワードの最小有効期間。ユーザーパスワードを変更できるようになるまでに経過する必要のある日数。通常はゼロに設定されます。これは、パスワードの最小有効期間がないことを意味します。
-
パスワードの最大有効期間。ユーザーパスワードを変更する必要がある日数。デフォルトでは、この番号は
99999に設定されています 。 -
警告期間。パスワードの有効期限が切れるまでの日数。その間に、パスワードを変更する必要があることをユーザーに警告します。
-
非アクティブ期間。ユーザーパスワードの有効期限が切れてからユーザーアカウントが無効になるまでの日数。通常、このフィールドは空です。
-
有効期限。アカウントが無効になった日付。エポック日付として表されます。
-
未使用。このフィールドは無視されます。将来の使用のために予約されています。
/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 ファイルは、暗号化されたユーザーのパスワードに関する記録、およびその他のパスワード関連情報を保持します。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。