【Linux】pwckコマンドでパスワードファイルの不整合を検知・修復する

目次

概要

システムのアカウント情報が格納されている /etc/passwd および /etc/shadow ファイルの整合性を検証するための管理コマンドです。

ファイル内のフィールド数が正しいか、ユーザー名が重複していないか、ホームディレクトリが存在するかなどをチェックします。不整合が見つかった場合、対話形式で修正(行の削除など)を行うことが可能であり、システムトラブルの予防や解消に使用されます。

仕様(引数・オプション)

構文

pwck [オプション] [passwdファイル名] [shadowファイル名]

※ファイル名を省略した場合、デフォルトで /etc/passwd/etc/shadow が対象になります。

主なオプション

オプション説明
-r / –read-only読み取り専用モードで実行します。修正は行わず、チェック結果の表示のみを行います。
-s / –sortファイル内のエントリをUID順(ユーザーID順)に並べ替えて保存します。
-q / –quiet重大なエラーのみを表示し、警告レベルのメッセージ(ホームディレクトリがない等)を抑制します。

基本の使い方

まずはファイルを変更せず、現状の問題点を確認するために読み取り専用モードで実行します。

BASH

# パスワードファイルの整合性を照合する(変更なし)
sudo pwck -r

実行結果例

Plaintext

user 'mori': directory '/home/mori' does not exist
pwck: no changes

※上記の場合、ユーザー mori のホームディレクトリが存在しないという警告が出ています。

実践コマンド

不整合を検出し、対話的に修正する

実際にファイルの不整合を修正するフローです。コマンドを実行すると、問題が見つかるたびに「修正しますか?」と聞かれます。

BASH

# 1. 現在のファイル末尾を確認(誤った行がないか確認)
tail -n 4 /etc/passwd

# 2. チェックと修正を実行
sudo pwck

実行結果例

user 'testuser': directory '/home/testuser' does not exist
delete user 'testuser'? y
pwck: the files have been updated

シャドウファイルとの整合性をチェックする

通常は自動的に /etc/shadow もチェックされますが、明示的にファイルを指定して整合性を確認することも可能です。

BASH

# パスワードファイルとシャドウファイルを明示してチェック
sudo pwck /etc/passwd /etc/shadow

注意点

  1. バックアップの重要性pwck は対話モードで y を選ぶと、該当する行をファイルから削除するなどの破壊的な変更を行います。操作を誤るとログインできなくなる可能性があるため、実行前には必ず /etc/passwd/etc/shadow のバックアップを取ってください。
  2. ロックファイルpwck は実行中にファイルをロックします。他のユーザー作成コマンドなどが同時に動いているとエラーになる場合があります。

まとめ

pwckコマンドは、手動編集やシステム障害によって破損したアカウント情報を修復するための「検査ツール」です。

日常的に使用するコマンドではありませんが、ログインできないユーザーが発生した場合や、サーバーの健康診断を行う際に有用です。基本的には -r オプションで安全に確認を行い、修正が必要な場合のみ慎重に対話モードを実行するという手順で運用します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次