
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
ファイルは、暗号化されたユーザーのパスワードに関する記録、およびその他のパスワード関連情報を保持します。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。