目次
概要
/etc/passwd ファイルのGECOSフィールド(コメント欄)に格納されている、ユーザーの実名、部屋番号、電話番号などの付帯情報を変更するためのコマンドです。
finger コマンドなどで表示されるこれらの情報は、システム管理上の連絡先として利用されます。通常は対話形式で変更を行いますが、オプションを指定して非対話的に設定することも可能です。
仕様(引数・オプション)
構文
chfn [オプション] [ユーザー名]
主なオプション
| オプション | 説明 |
| -f [名前] | ユーザーのフルネーム(Full Name)を変更します。 |
| -r [部屋番号] | オフィスの部屋番号(Room Number)を変更します。 |
| -w [電話番号] | 職場の電話番号(Work Phone)を変更します。 |
| -h [電話番号] | 自宅の電話番号(Home Phone)を変更します。 |
| -o [その他] | その他の情報(Other)を変更します。 |
基本の使い方
オプションを指定せずに実行すると、対話モードで順番に情報の入力を求められます。Enterキーを押すと、その項目は現在の値を維持(スキップ)します。
BASH
# 現在の情報を確認
finger mori
# 対話モードで情報を変更
chfn mori
# 変更後の情報を確認
finger mori
# /etc/passwd ファイルへの反映を確認
grep mori /etc/passwd
実行結果例
# chfn実行時の対話
Changing finger information for mori.
Password: (パスワード入力)
Name []: Mori Taro
Office []: 3F-A
Office Phone []: 03-1234-5678
Home Phone []:
Finger information changed.
# grep確認結果
mori:x:1001:1001:Mori Taro,3F-A,03-1234-5678,,:/home/mori:/bin/bash
実践コマンド
コマンドライン引数で一括変更する
スクリプトで自動設定する場合や、対話モードが面倒な場合に、オプションを使って一発で設定を変更します。
BASH
# フルネームと内線番号を設定
sudo chfn -f "Mori Jiro" -w "Ex.9999" mori
情報を削除する(空にする)
特定の項目を削除したい場合は、引用符で囲んだ空文字 "" を指定するか、対話モードで none と入力するシステムもありますが、基本的には空文字で上書きします。
BASH
# 自宅電話番号を削除
chfn -h "" mori
カスタムポイント
- GECOSフィールドの構造
chfnで入力した情報は/etc/passwdの5番目のフィールドにカンマ区切りで保存されます。システムによってはメールソフトなどがこの「名前」欄を送信者名として利用することがあるため、正確な表記にしておくことが推奨されます。 - プライバシーへの配慮
fingerコマンドはネットワーク越しにユーザー情報を公開する設定になっている場合があります(現代のセキュリティ設定では稀ですが)。自宅の電話番号など、公開されて困る情報は入力しない、または-oオプションなどで管理用の別枠に入れるなどの運用ルールが必要です。
まとめ
chfn コマンドは、Linuxユーザーの属性情報(メタデータ)を管理するための古典的ですが重要なツールです。usermod -c コマンドでも同様の変更は可能ですが、chfn は項目ごとに細かく対話的に指定できる点で優れています。特に組織内でサーバーを共有する場合、緊急連絡先として -w(職場電話)や -r(部屋番号)を正しく設定しておくことは、システム運用の円滑化に繋がります。
