概要
Linuxシステムにおけるセキュリティ向上のため、暗号化されたパスワード情報を一般ユーザーが閲覧可能な /etc/passwd から、管理者のみがアクセスできる /etc/shadow へ移行、またはその逆の操作を行うためのツール群です。現代のシステムではシャドウパスワードの利用が標準ですが、古いシステムとの互換性確認や、特定のディレクトリサービスへの移行に伴うデータ整理において、これらの変換コマンドが必要となります。
仕様(コマンド一覧)
シャドウファイルの作成、更新、および統合(解除)を行う各コマンドの機能です。
| コマンド | 説明 |
| pwconv | /etc/passwd から /etc/shadow を作成または更新します。パスワード情報をシャドウファイルに移動し、passwd側のパスワード欄を x に置き換えます。 |
| pwunconv | /etc/shadow を削除し、暗号化されたパスワード情報を /etc/passwd の元のフィールドに戻します。シャドウ化を解除する際に使用します。 |
| grpconv | /etc/group から /etc/gshadow を作成または更新します。グループパスワード情報をシャドウ化します。 |
| grpunconv | /etc/gshadow を削除し、情報を /etc/group に戻します。 |
実践シナリオ:セキュリティ強化に伴うパスワードのシャドウ化
サーバー管理者である mori が、セキュリティポリシーの変更に伴い、平文のパスワードハッシュが /etc/passwd に露出していないかを点検し、確実にシャドウファイルへ移行させる手順を実施します。
BASH
# 現在のファイル構成を確認(shadowファイルの有無やパーミッションをチェック)
ls -l /etc/passwd /etc/shadow
# ユーザー mori のパスワード情報がシャドウ化されているか確認
grep mori /etc/passwd
# シャドウパスワードへの変換を実行
sudo pwconv
# 変換後のファイル構成と内容を確認
ls -l /etc/passwd /etc/shadow
grep mori /etc/passwd
sudo grep mori /etc/shadow
グループ情報のシャドウ化
ユーザー情報と同様に、グループパスワードもシャドウ化することで、グループ権限の不正取得を防止します。mori が所属する開発グループなどの情報を安全に分離します。
BASH
# グループパスワードのシャドウ化を実行
sudo grpconv
# ファイルの生成を確認
ls -l /etc/group /etc/gshadow
# 設定を解除(/etc/groupへ情報を統合)する場合
sudo grpunconv
注意点
- 情報の欠落リスク
pwunconvを実行してシャドウ化を解除すると、パスワードの有効期限情報(最終変更日や最大有効日数など)が/etc/passwdの形式では保持しきれず、一部失われる可能性があります。 - 手動編集後の同期
vipwなどで/etc/passwdを直接編集し、新しいユーザーを手動追加した直後などは、pwconvを実行してシャドウファイル側にもエントリを正しく生成・同期させる必要があります。 - root権限の必要性これらすべてのコマンドは
/etc配下の極めて重要なファイルを直接操作するため、実行には必ずsudoまたはroot権限が必要です。
まとめ
pwconvおよびpwunconvコマンドは、システムの認証情報の保存形式を物理的に変更するための不可欠なツールです。特にユーザー mori のような管理者アカウントを含む全ユーザーの機密情報を適切に分離・保護するシャドウパスワードシステムを構築する際に、その威力を発揮します。現代のLinux運用においてシャドウ化の解除が必要になる場面は極めて稀ですが、変換の仕組みを理解しておくことで、認証トラブル発生時のファイル構造の不整合を迅速に特定し、修復することが可能になります。
