サイトアイコン 協栄情報ブログ

Linuxのパスワード有効期限を簡単に設定・無効化する方法

Linux パスワード有効期限の簡単な設定と無効化方法

1. はじめに

Linuxでは、セキュリティ対策の一環として、ユーザーアカウントのパスワードに有効期限を設定することが一般的です。この設定により、ユーザーが定期的にパスワードを変更するよう促せます。
一方で、管理アカウントなど、特定のユーザーに対して有効期限を無効化したいケースも存在します。そこで本記事では、Linux パスワード有効期限の設定方法と無効化方法について、具体的な手順を解説します。

関連情報:
Linuxでのユーザー管理についてさらに詳しく知りたい方は、Linuxユーザー管理完全ガイドをご覧ください。


2. パスワード有効期限の基礎

まず、パスワード有効期限やアカウント管理情報は、/etc/shadow というファイルで管理されています。このファイルは通常、管理者権限(sudo など)を持っているユーザーのみがアクセスできるよう厳重に保護されています。

/etc/shadow のフィールド構造

以下は、/etc/shadow ファイルの基本的なフォーマットです。

ユーザー名:パスワードハッシュ:最終変更日:最小日数:最大日数:警告日数:無効日数:有効期限:予約

3. パスワード有効期限を設定する方法

次に、Linux パスワード有効期限を設定する方法を説明します。この作業には、chage コマンドを使用します。

手順: パスワードの有効期限を90日に設定する

以下のコマンドを実行すると、指定したユーザーのパスワード有効期限を90日に設定できます。

sudo chage -M 90 testuser123

設定が正しく反映されたか確認する

設定後に、以下のコマンドを実行して確認します。

sudo chage -l testuser123

出力例:

Last password change                    : Nov 13, 2024
Password expires                        : Feb 11, 2025
Password inactive                       : never
Account expires                         : never
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7

上記のように、Linux パスワード有効期限が90日後に設定されていれば成功です。


4. パスワード有効期限を無効化する方法

一方、特定のユーザーで「Linux パスワード有効期限を無効化」したい場合は、次の手順を実行します。

手順: 有効期限を無効化する

以下のコマンドで、パスワード有効期限を無期限に設定します。

sudo chage -M -1 testuser123

設定が正しく反映されたか確認する

再び、以下のコマンドで設定が反映されているか確認します。

sudo chage -l testuser123

出力例:

Last password change                    : Nov 13, 2024
Password expires                        : never
Password inactive                       : never
Account expires                         : never
Minimum number of days between password change : 0
Maximum number of days between password change : -1
Number of days of warning before password expires : -1

このように、Password expiresnever となり、パスワード有効期限が無期限であることを確認できます。


5. /etc/shadow を直接編集する方法

最後に、chage コマンドを使用せずに、/etc/shadow ファイルを直接編集する方法について説明します。
ただし、この方法はリスクが高いため、上級者向けです。

手順: ファイルを編集する

専用コマンドの vipw -s を使用して、競合やパーミッションの問題を回避しながら編集を行います。

sudo vipw -s

例: パスワード有効期限を無効化する

以下のように、対象ユーザーの行を編集します。

この変更で、「最大日数」の値が -1 に設定されます。

注意

  • 編集前には必ずバックアップを取ることを推奨します。
  • 誤った編集が行われると、ユーザーがログインできなくなる可能性があります。

6. まとめ

Linuxでのパスワード有効期限管理を適切に行い、セキュリティリスクを最小限に抑えましょう。


参考リンク

  1. /etc/passwdと/etc/shadowファイルについてのまとめ | server-memo.net
  2. Linux 用 /etc/shadow ファイル完全ガイド
  3. ひつまぶし食べたい: /etc/shadowについて勉強してみた
モバイルバージョンを終了