技術ノート Linux Linux で chfn と usermod を使用してユーザー データを変更する方法

Linux で chfn と usermod を使用してユーザー データを変更する方法

ユーザー アカウントにはユーザー名以上の意味があります。 Linux ユーザー アカウントに関連付けられたすべてのメタデータをコマンド ラインから設定および変更する方法を学びます。

名前って何?

Linux または Unix 系のコンピュータを使用している場合は、ユーザー アカウントを持っています。アカウントに付けられた名前は、ユーザー アカウント名です。これはログインに使用する名前です。 (デフォルトでは) ログイン グループの名前とホーム ディレクトリの名前でもあります。これらはすべて同じ識別子を使用します。

ユーザー アカウントごとに保存できる別の情報セットがあります。たとえば、個人のフルネーム、オフィス番号、職場の電話番号などの実世界のデータを定義して、それらのデータに添付できます。実際、完全に任意の情報の断片をユーザー アカウントにタグ付けすることができます。

実際には、これは、多数のユーザー アカウントが構成されているコンピュータを管理するシステム管理者にとってより便利です。しかし、シングルユーザーの Linux コンピューターであっても、内部で何が起こっているのかを知るのは常に興味深いことです。

Linux で chfn と usermod を使用してユーザー データを変更する方法

GECOSフィールド

かつて、Unix の先駆者たちは独自のプリンタを持っていませんでした。彼らは 、ゼネラル・エレクトリック 総合オペレーティング・システム (GECOS) を実行しているゼネラル・エレクトリック のメインフレームに印刷ジョブをスプールする必要がありました。これを実現するには、Unix システム上のユーザーは、GECOS システム上のアカウントの資格情報を保存して使用する必要がありました。

GECOS フィールドは、これらの資格情報を保存するために作成されました。この非常にニッチな要件はとうの昔に歴史の中に消えており、GECOS フィールドはユーザー アカウントの所有者に関連する他のデータを保存するために再利用されています。新しい仕事があるかもしれませんが、古い名前は残ります。それは今でも GECOS フィールドと呼ばれています。

このフィールドは、ユーザー アカウントに関するその他の情報とともに /etc/passwd ファイルに保存されます。

  • アカウントのユーザー名。
  • ユーザーID。
  • グループID。
  • ユーザー アカウントのホーム ディレクトリへのパス。
  • ユーザーのログイン時に起動されるシェル。

ここで、 finger コマンドと pinky コマンドが表示する情報を取得します。

Linux で chfn と usermod を使用してユーザー データを変更する方法

chfn コマンド

chfn (指情報の変更) を使用すると、GECOS フィールド内に保存されている情報を設定および変更 できます。情報はフィールド内にカンマ区切りのリストとして保存されます。

chfn コマンドは、Ubuntu 18.04.1 と Manjaro 18.1.0 にすでに存在していました。これは Fedora 31 にインストールする必要がありました。次のコマンドを使用してインストールします。

 sudo dnf インストール util-linux-user

ユーザー アカウント「dave」の所有者についてどの finger が見つけられるかを見てみましょう。最大限の情報を取得するには、 -l (ロングフォーマット) オプションを使用します。

指デイブ -l

見つけられるものは次のとおりです。

アカウントのユーザー名、ホーム ディレクトリ、およびデフォルトのシェルを取得します。これらはすべてユーザー アカウントに関連しています。これらは、そのアカウントを使用する実際の人物を指すものではありません。 chfn コマンドを使用して、実際の人物に関する情報を保存できます。

シフンデイブ

このように chfn を使用すると、短い対話型プロセスが開始されます。 GECOS フィールドに保持できる各情報のデータ値を入力するように求められます。各データ値の現在値は括弧 [] 内に表示されます。現在のデータを保持したい場合は、「Enter」キーを押すと、括弧内の値が保持されます。

入力した情報は次のとおりです。

  • 部屋番号 :512
  • 職場の電話 : 555-4567
  • 自宅の電話 : 555-5432

finger その新しい情報を拾うことを確認してみましょう。

指デイブ -l

はい、そうです。ただし、フルネームの変更を求めるプロンプトが表示されなかったことに気づいたかもしれません。 sudo 使用する場合にのみこれが行われます。ただし、 sudo を使用するのを忘れたからといって、 chfn セッション全体を再度実行する必要はありません。データ値は個別に変更できます。

Linux で chfn と usermod を使用してユーザー データを変更する方法

個々のデータ値の変更

-f (フルネーム) オプションと sudo を併用することで、ユーザー アカウントの所有者のフルネームを設定できます。

 sudo chfn -f "デイブ・マッケイ" デイブ

そしてもう一度 finger で確認してみると:

フルネームが追加されていることがわかります。

部屋番号、自宅の電話番号、勤務先の電話番号を変更するオプションもあります。部屋 (オフィス) 番号を変更するには、 -r (部屋番号) オプションを使用します。

 sudo chfn -r 633 デイブ

一部のディストリビューションでは、 -r オプションの代わりに -o (オフィスの部屋番号) オプションを使用する場合があることに注意してください。これについては後ほど詳しく説明します。現時点では、お使いの chfn のバージョンのオプションを確認するには、次のコマンドを使用します。

男シフン

オフィスの電話番号を変更するには、 -w (職場の電話) オプションを使用します。

 sudo chfn -w 555-1122 デイブ

最後に、自宅の電話番号を変更するには、 -h (自宅の電話番号) オプションを使用します。

 sudo chfn -h 555-6576 デイブ

もう一度 finger を使用して、これらの変更がすべて受け入れられたかどうかを確認してみましょう。

指デイブ -l

成功。これらのコマンドはすべて機能し、データ値が更新されました。

Linux で chfn と usermod を使用してユーザー データを変更する方法

他のユーザーアカウントでの chfn の使用

私たち自身の情報を変更することはこれまでにして、他のユーザーの GECOS 情報を変更する場合はどうでしょうか?それも同じくらい簡単です。その場合は sudo を使用する必要がありますが、違いはそれだけです。ユーザー アカウント mary にどのようなデータが設定されているかを確認してみましょう。

フィンガーメアリー -l

このユーザーアカウントには通常のデフォルト情報が設定されています。情報を追加しましょう。

須藤 chfn メアリー

以前と同じセッションを実行し、保存できる情報ごとにデータ値の入力を求められます。 sudo を使用したため、フルネームのデータ値が求められます。

ちょっと待って、最後の「その他」という項目は何ですか?

これは chfn のすべてのバージョンでサポートされているわけではなく、 sudo 使用する場合にのみ表示されます。これが、以前に (意図的に) sudo を使用しなかったときにこれが表示されなかった理由です。

シフンデイブ

「その他」のデータ値には、任意のものを保持できます。いかなる使用法も想定されていません。

「Other」フィールドをサポートする chfn のバージョンでは、この値を直接変更する -o (other) オプションも提供します。一部のシステムでは「部屋番号」に -r を使用するのは、「オフィス番号」を表す -o と「その他」を表す -o が競合するためです。

less 使用すると、 /etc/paswd ファイルにユーザー アカウント mary に保存されているデータを確認できます。

 /etc/passwd を省略

これをサポートするシステム ( chfn のバージョンの man ページを確認してください) では、 -o (other) オプションを使用して「other」フィールドを直接設定できます。

 sudo chfn -o "HTG フリーランサー" dave

そして、 less コマンドを使用してユーザー アカウント dave のデータを確認できます。

 /etc/passwd を省略

[ターミナル ウィンドウの asswd” width=”646″ height=”382″ />

そこで当然の疑問が生じます。 chfn のバージョンが「その他」フィールドをサポートしていない場合、どうすれば変更できますか? usermod コマンドを使用してそれを行うことができます。

Linux で chfn と usermod を使用してユーザー データを変更する方法

usermod コマンド

usermod コマンドを使用すると、 グループ へのユーザー アカウントの追加または削除、デフォルト シェルの変更などのアクションを通じて 、ユーザー アカウントの側面を変更 できます。 GECOS フィールドを直接操作するために使用することもできます。

/etc/passwd ファイル内のユーザー アカウント mary の行を詳しく見てみましょう。 grep を使用してその行を分離します 。ユーザー名は一意である必要があるため、これは機能します。 mary という名前のユーザー アカウントは 1 つだけ存在できます。

 grep mary /etc/passwd

etc/passwd ファイル内のフィールドが表示されます。コロン「 : 」がフィールド区切り文字として使用されます。左から右に、フィールドは次のとおりです。

  • アカウントのユーザー名。
  • このユーザー アカウントのパスワードを示す「x」は、 /etc/shadow ファイルに暗号化されて保持されます。
  • Mary ユーザー アカウントのユーザー ID。
  • mary ユーザー アカウントのグループ ID。
  • GECOS フィールド。
  • mary ユーザー アカウントのホーム ディレクトリへのパス。
  • Mary アカウントの所有者がログインするときに開始されるシェル。

コンマ「,」は、GECOS フィールド内のデータ値の区切り文字として使用されます。 GECOS フィールド内の値は、左から右に次のとおりです。

  • フルネーム。
  • 部屋(またはオフィス)番号。
  • 職場の電話番号。
  • 自宅の電話番号。
  • その他の情報。

usermod コマンドは、GECOS フィールド全体を指定した新しい値に設定することに注意してください。入力したのがその人のフルネームのみの場合、GECOS フィールドにはフルネームのみが表示されます。これは、保持したい既存のデータ値を提供する必要があることを意味します。

ここに例を示します。ユーザーのメアリーが昇進し、4階に異動することになりました。彼女は新しいオフィス番号と新しい職場の電話番号を取得し、ミドルネームを追加します。彼女の「その他」フィールドの値も変更されます。彼女の自宅の電話番号は変更されませんが、文字列で usermod に提供する必要があります。

-c (コメント) オプションを使用し、 sudo でコマンドを実行する必要があります。

 sudo usermod -c "Mary Carol Quinn,405,5559654,555-7704,Linux Advocate" mary

grep を使用して Mary の /etc/passwd ファイルの内容をレポートすると、新しい値が追加されたことがわかります。

 grep mary /etc/passwd 

Linux で chfn と usermod を使用してユーザー データを変更する方法

すべては流動的であり、永続するものは何もない

不正確なデータには価値がありません。オフィスの移転、名前の変更、役職など、人物に関する情報が変更された場合、現在の役職を反映するようにメタデータを簡単に更新できます。

Linuxコマンド

ファイル

tar pv cat tac chmod grep diff sed ar man pushd popd fsck testdisk seq fd pandoc cd $PATH awk join jq fold uniq journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · · mkdir · du · ln · パッチ · 変換 · rclone · シュレッド · srm · scp · gzip · chattr · カット · 検索 · umask · wc · tr

プロセス

エイリアス · スクリーン · トップ · ナイス · renice · 進行状況 · strace · systemd · tmux · chsh · 履歴 · at · バッチ · フリー · what · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · タイムアウト · ウォール · はい · キル · スリープ · sudo · su · タイム · groupadd · usermod · · lshw · シャットダウン · 再起動 · 停止 · パワーオフ · パスワッド · lscpu · crontab · 日付 · bg · fg · pidof · nohup · pmap

ネットワーキング

netstat ping ip ss whois fail2ban bmon dig finger nmap ftp curl wget who whoami w iptables ssh-keygen ufw arping firewalld

関連: 開発者と愛好家のための最高の Linux ラップトップ

「Linux で chfn と usermod を使用してユーザー データを変更する方法」に関するベスト動画選定!

Linux – ユーザーの追加、削除、変更 (adduser、deluser、passwd、chfn)
【Windows 10】ローカルアカウントの新規追加・権限の変更方法