GECOS情報は、現代のコンピューティングの最後の大きな謎の1つである可能性があります。なぜGECOSはLinuxの人々にとってそのようなユニコーントピックなのですか?これは、システム管理者が GECOSと呼んでいるためだと思います。 頭字語の意味や本来の目的を知らなくても。システム管理者はこの/etc/passwd
を参照します ユーザーコメントとしてのファイル情報 分野。ユーザーのコメントは、ユーザーが編集可能で、気まぐれで変更できるもののように聞こえます。どちらも真実ではありません。このフィールドはユーザーが編集することはできません。このフィールドは通常、アカウントの目的(システムアカウントまたはサービスアカウントの場合)またはユーザーのフルネームやその他の情報を保持するために使用されます。
[お楽しみいただけるかもしれません:passwdコマンドを使用したLinuxユーザーの管理]
自分の/etc/passwd
を見ると ファイルの場合、GECOSフィールドが空白であるか、ユーザーのフルネームが含まれているか、デーモンの名前またはサービスアカウントの説明が含まれている可能性があります。
私の/etc/passwd
からのこの抜粋を見てください ファイル:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin
GECOSフィールドは、以下に示すように、グループ番号の直後で、ユーザーのシェルの直前のフィールドです。
/etc/passwd
のはるか下 ファイルは私のユーザーアカウントのリストです。以下に示すように、私のユーザーアカウントのGECOSフィールドの名前は Ken Hessです。 、その中に。
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:984:980:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:983:979:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
bsmith:x:1000:1000:Bob Smith:/home/bsmith:/bin/bash
khess:x:1001:1001:Ken Hess:/home/khess:/bin/bash
それで、大きな謎は何ですか?良い質問。そして、そこからこのストーリーが始まります。
GECOSの歴史
これがどのように始まったかの全体像を誰もが覚えているかどうかは100%わかりませんが、検索と古いUNIXクラスのメモを読んで収集したものは次のとおりです。コンピューティングの暗黒時代には、General Electric Comprehensive Operating System(GECOS)と呼ばれるものがありました。それだけで、これがどこに向かっているのかがわかると思いますが、とにかく続けます。その後、GECOSはGeneral Comprehensive Operating System(GCOS)になりました。 UNIXプログラマーは、印刷スプーリングやその他のサービスにGECOS/GCOSシステムを使用していました。 GECOS/GCOSフィールドがUNIXの/etc/passwd
に追加されました サービス名を示すファイルで、後でユーザーのフルネームといくつかの追加のオプション情報のホームになりました。
名前、電話番号、建物番号、および電子メールアドレスにGECOSフィールドを使用することが標準的な方法になりました。 UNIXはラボで始まり、当時は誰もが信頼されていたため、自宅の電話番号やその他の情報は現在ほど非公開にされていなかったことを忘れないでください。そのフィールドの情報の各ビットは、次のようにコンマで区切られています。
:Ken Hess、Building 300、212-555-0000、212-555-1234、khess @ example.com:
GECOSには5文字あり、GECOSフィールドには5つのプレースホルダーがあるため、各文字が情報のその部分を何らかの形で表していると考える人もいます。そうではありません。 GECOSとフィールドの両方に5つの場所があるのは偶然の一致です。私はまた、GECOSがこれらの5つの場所で何を表すかについてのあらゆる種類の理論を見てきました。 GECOSフィールドは、/etc/passwd
の5番目のフィールドでもあります。 ファイル。これらすべてのことが1つの結論につながります。それは時間の経過とともに発生し、必然的に機能し、変更されていません。そして、それは私にとってクールです。他の名前のバラですよね?
今日のGECOS
一部のLinuxディストリビューションでは、adduser
コマンドはuseradd
へのシンボリックリンクです 。ただし、これは他のディストリビューションには当てはまりません。これらのディストリビューションでは、adduser
コマンドは実際には、新しいユーザーアカウントを作成する手順を実行するPerlスクリプトです。このスクリプトの実行の興味深い詳細については、以下を参照してください。このadduser
を移植しました システムへのスクリプトを簡単に作成できます。私がそれをどのように行ったかを説明する記事については、システム管理者を有効にすることにご期待ください。
# adduser jhill
Adding user `jhill' ...
Adding new group `jhill' (1003) ...
Adding new user `jhill' (1003) with group `jhill' ...
Creating home directory `/home/jhill' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for jhill
Enter the new value, or press ENTER for the default
Full Name []: Jill Hill
Room Number []: 828
Work Phone []: 212-555-0000
Home Phone []: 212-555-3456
Other []: [email protected]
Is the information correct? [Y/n] Y
このコマンドがGECOS情報の入力を求める場所がわかりますか?
/etc/passwd
を確認する ファイルはGECOSフィールドを確認します。
jhill:x:1003:1003:Jill Hill,828,212-555-0000,212-555-3456,[email protected]:/home/jhill:/bin/bash
ジルのすべての情報が/etc/passwd
に挿入されました ファイルのGECOSフィールド。 Perlスクリプトであるため、これらのプロンプトをカスタマイズして、必要に応じて読み取ることができます。 その他の下のランダムな情報ではなく、メールアドレスをクエリするように編集します。 プロンプト。
[システム管理者のスキルをテストしたいですか?今日、スキル評価を受けてください。 ]
まとめ
GECOSフィールドを単にユーザーコメントと呼びます フィールドは部分的に正確ですが、ユーザー情報と考えてください。 分野。ただし、あなたや私がどのように参照しているかに関係なく、アカウントの所有者または目的の説明を保持することを目的としています。