\r\n\r\n

linuxでchfnとusermodを使ってユーザーデータを変更する方法

ユーザーアカウントは単なるユーザー名ではありません。コマンドラインからLinuxユーザーアカウントに関連するすべてのメタデータを設定、変更する方法を学びます。

ユーザーアカウントは単なるユーザー名ではありません。Linuxのユーザーアカウントに関連するすべてのメタデータを、コマンドラインから設定・変更する方法を学びましょう。

名前の由来は?

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

もう一つの情報は、ユーザーアカウントごとに保存することができます。例えば、人のフルネーム、勤務先番号、勤務先電話番号など、実世界のデータを定義して添付することができます。実際、ユーザーアカウントには、まったく任意の情報をタグ付けすることができます。

実際には、多くのユーザーアカウントで構成されたコンピュータの管理を担当するシステム管理者にとっては、この方が便利でしょう。しかし、シングルユーザーのLinuxコンピュータであっても、ボンネットの下で何が起こっているのかを知ることは常に興味深いことです。

ゲコスフィールド

かつて、Unixの先駆者たちは、自前のプリンターを持っていなかった。GECOS(ゼネラル・エレクトリック社製統合オペレーティング・システム)を搭載したメインフレームに、印刷を移行しなければならないのだ。そのために、Unixシステムのユーザーは、GECOSシステムのアカウントを保存し、使用するための認証情報が必要だった。

GECOSフィールドは、これらの認証情報を保存するために作られた。GECOSフィールドは、ユーザーアカウントの所有者に関連する他のデータを格納するために再設計されました。新しい仕事に就いても、元の名前はそのままです。現在もGECOSフィールドと呼ばれている。

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

  • アカウントのユーザー名です。
  • ユーザーIDです。
  • グループIDです。
  • ユーザーアカウントのホームディレクトリのパス。
  • ユーザーがログインしたときに起動するシェル。

ここで、指のコマンドと小指のコマンドが表示する情報を取得する。

関連:Linuxでのfingerコマンドの使い方

chfnコマンド

chfn(Change finger information)では、GECOSのフィールドに格納されている情報を設定・変更することができます。フィールドには、カンマ区切りのリストとして情報が格納される。

chfnコマンドは、ubuntu 18.04.1 と manjaro 18.1.0 で既に存在しています。Fedora 31にインストールする必要があります。以下のコマンドでインストールしてください。

sudo dnf install util-linux-user

ユーザーアカウント "dave "の所有者について、fingerが何を見つけることができるか見てみましょう。それを最大限に活用するために、-l(ロングフォーマット)オプションを使用します。

finger dave -l

これが検索できる内容です。

アカウントのユーザー名、ホームディレクトリ、デフォルトシェルなど、ユーザーアカウントに関連するものを取得します。実際にそのアカウントを使っていない人のことを指します。chfnコマンドを使って、実際の人物に関する情報を保存することができる。

chfn dave

このようにchfnを使用することで、短いインタラクションプロセスが開始されます。GECOSフィールドに保存可能な各情報のデータ値を入力するよう促されます。各データ値の現在値は、括弧 [ ] 内に表示されます。現在のデータを保持したい場合は、「Enter」キーを押せば、括弧内の値が保持されます。

を入力しました。

  • 部屋番号:512
  • 勤務先電話番号:555-4567
  • 自宅電話:555-5432

指が新しい情報を拾っているかどうか、確認してみましょう。

finger dave -l

はい、そうです。しかし、フルネームの変更を促さないことにお気づきでしょうか。sudoでできるのは自分だけです。しかし、sudoを使うのを忘れたからといって、もう一度chfnのセッションをやり直す必要はないのです。

個々のデータ値を変更する

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

sudo chfn -f "Dave McKay" dave

もう一度、指で確認すれば。

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

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

sudo chfn -r 633 dave

なお、一部のディストリビューションでは、-rオプションの代わりに-o(オフィスルーム番号)オプションを使用することが可能です。これについては、後で詳しく説明します。とりあえず、chfn版のオプションを見るには、以下を使用します。

man chfn

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

sudo chfn -w 555-1122 dave

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

sudo chfn -h 555-6576 dave

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

finger dave -l

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

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

自分たちの情報を変えるのはいいとして、他のユーザーのGECOS情報を変えるのはどうなんでしょう?それもシンプルに。sudoを使わなければなりませんが、違いはそれだけです。ユーザーアカウントにどのようなデータが設定されているか確認してみましょう。

finger mary -l

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

sudo chfn mary

先ほどと同じセッションを実行し、保存可能な各情報のデータ値の入力を促します。sudoを使用しているため、フルネームのデータ値の入力を求められます。

待てよ、最後の "その他 "という項目は何だ?"

chfnのすべてのバージョンはこれをサポートしておらず、sudoを使用しているときのみ表示されるため、以前sudoを使用していないときは(意図的に)表示されませんでした: The

chfn dave

その他」のデータ値は、任意の内容を保持することができ、所定の使用目的もない。

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

lessを使って、/etc/paswdファイルに格納されているユーザーアカウントmaryのデータを見ることができます。

less /etc/passwd

これをサポートするシステム(chfnバージョンのマニュアルページを参照)では、-o(other)オプションを直接使用して、「other」フィールドを設定することができます。

sudo chfn -o "HTG Freelancer" dave

ユーザーアカウントdaveのデータをlessコマンドで確認することができます。

less /etc/passwd

[asswd in a terminal window" width="646″ height="382″ />

こうなると、当然の疑問が湧いてくる。お使いのバージョンのchfnが「その他」フィールドに対応していない場合、どのように変更するのですか?usermodコマンドでこれを行うことができます。

usermodコマンド

usermodコマンドは、ユーザーアカウントをグループから追加または削除したり、デフォルトのシェルを変更するなど、ユーザーアカウントの側面を変更することができます。また、GECOSファームを直接操作することも可能です。

etc/passwdファイルのユーザーアカウント用の行を詳しく見てみましょう。その行を grep で切り分けます。ユーザー名は一意でなければならないので、これはうまくいくでしょう。maryというユーザーアカウントは1つしか存在できません。

grep mary /etc/passwd

etc/passwd ファイルのフィールドを表示します。フィールドの区切り文字としてコロン ":" が使用されます。

  • アカウントのユーザー名です。
  • このユーザーアカウントのパスワードを示す「x」は、/etc/shadow ファイルで暗号化されます。
  • MaryユーザーアカウントのユーザーID。
  • ユーザーアカウントのグループID。
  • GECOSのフィールド。
  • maryユーザーアカウントのホームディレクトリのパス。
  • maryアカウントのオーナーがログインしたときに起動するシェル。

カンマ「,」は、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でユーザーをグループ(または2つ目のグループ)に追加する方法

人間万事塞翁が馬

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

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ