概要
/etc/passwd や /etc/group といった重要なシステムファイルを直接エディタで編集する際に、他のプロセスによる同時書き換えを防ぐためのコマンドです。単にエディタを起動するだけでなく、編集開始時にファイルをロックし、終了時に構文チェックを行うことで、不適切な設定によるシステムログイン不可などの致命的なトラブルを未然に防ぎます。
仕様(引数・オプション)
構文
vipw [オプション]
vigr [オプション]
主なオプション
| オプション | 説明 |
| -g / –group | グループファイル(/etc/group)を編集対象にします。vigr と同等の動作です。 |
| -p / –passwd | パスワードファイル(/etc/passwd)を編集対象にします。vipw のデフォルト動作です。 |
| -s / –shadow | シャドウパスワードファイル(/etc/shadow)またはグループシャドウファイルを編集対象にします。 |
実践シナリオ:アカウント情報の整合性異常に対する直接修復
インフラ管理者の mori が、何らかのスクリプトエラーによって /etc/passwd 内の特定の行が破損し、標準の usermod コマンドなどが正常に動作しなくなった状況を想定します。mori は、ファイルの整合性を保ちながら安全に手動で破損箇所を修正するため、ロック機構を備えた vipw を使用して対応にあたります。
BASH
# 使用されるエディタの優先順位を確認
echo $VISUAL
echo $EDITOR
# /etc/passwd をロックして編集を開始
sudo vipw
# /etc/shadow(シャドウパスワード)を直接編集する場合
sudo vipw -s
# /etc/group を安全に編集する場合
sudo vigr
# /etc/gshadow(グループシャドウ)を編集する場合
sudo vigr -s
エディタの選択と排他制御の仕組み
vipw および vigr が起動するエディタは、環境変数 VISUAL または EDITOR の設定に基づきます。これらの変数が未設定の場合は、システム標準の vi などが自動的に選択されます。コマンド実行と同時にロックファイルが生成され、編集が完了してエディタを閉じるまで他のユーザーやプログラムによる変更が遮断されるため、データの不整合を確実に回避できます。
注意点
手動での編集は、通常のユーザー管理コマンドでは不可能な細かな調整が可能ですが、同時に構文ミスによるリスクも伴います。vipw は終了時に最低限の形式チェックを行いますが、UIDの重複や必須フィールドの欠落をすべて完全に防げるわけではありません。編集前には必ず現在の設定を把握し、重大な変更を行う前には慎重に内容を確認してください。
まとめ
vipwおよびvigrは、システムの根幹を成すアカウント情報を手動でメンテナンスする際の「安全装置」付きエディタ起動コマンドです。直接 vi /etc/passwd を実行する手法に比べ、ロック機構による同時更新の防止と簡易的なバリデーション機能があるため、実務における事故防止の観点から非常に重要な役割を果たします。一時的な障害対応や特殊な設定変更が必要な場面において、管理者が最も信頼すべき編集手段の一つです。
