あるソフトウェアのセットアップで adduser -gecos
を設定するExampleがあって、何をしているか理解していなかったので調べてみました。
TLDR
-gecos option
はgecos field
を設定するときに使うもの- なぜ
gecos
というかは歴史的経緯があった - システムとしてのみ使う場合に便利
GECOSとは
まず man
で調べてみると gecos field
を設定するときに使うオプションらしいです。
# man adduser --gecos GECOS Set the gecos field for the new entry generated. adduser will not ask for finger information if this option is given.
それでは gecos field
は何かと言うと
本サイトでのパスワードファイル中のコメントをかけるフィールドに関してはコメントフィールドと呼んでいますが、ここは伝統的にはGECOSフィールドあるいはGECOS情報と呼ばれています。 これはGECOSとは米ジェネラル・エレクトリック社が1960年代前期に開発したオペレーティングシステム GCOS(General Comprehensive Operating System) のことです。 なぜUNIXのコメントフィールドがGECOSフィールドと呼ばれているかというと、むかしベル研究所の頃にGCOSに接続するために必要な情報がこのフィールドにかかれていたためです。 ここはカンマで区切られたリストで、特に何を書くか正確に定義づけられているわけではありませんが、慣習的に次のようになっています。
- ユーザのフルネーム
- 部屋番号やビル名
- オフィスの電話番号
- その他のコンタクト先(FAX番号など)
不意にめっちゃ面白い豆知識に当たってしまいました。 俗に言う歴史的経緯ってやつですね。
コメントフィールドと言われるくらいなのでシステム的に必要なものではないということですね。
検証
環境
docker上で行いました
# cat /etc/os-release NAME="Ubuntu" VERSION="16.04.4 LTS (Xenial Xerus)"
通常通り adduser
してみる
# adduser test Adding user `test' ... Adding new group `test' (1000) ... Adding new user `test' (1000) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for test Enter the new value, or press ENTER for the default Full Name []: myoji namae Room Number []: 123 Work Phone []: 456 Home Phone []: 789 Other []: 000 Is the information correct? [Y/n] Y
チェックしてみる
# grep test /etc/passwd test:x:1000:1000:myoji namae,123,456,789,000:/home/test:/bin/bash
この
myoji namae,123,123,123,123
の部分がgecos fieldです。
--gecos
optionを付けてみる
Exampleにあった --gecos ""
を試してみました。
# adduser --gecos "" test Adding user `test' ... Adding new group `test' (1000) ... Adding new user `test' (1000) with group `test' ... Creating home directory `/home/test' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
先程と違い、Full NameやRoom Number...などなどは聞かれてませんでした。 では中身をチェックしてみましょう。
# grep test /etc/passwd test:x:1000:1000:,,,:/home/test:/bin/bash
さきほど入っていたFull NameからOtherまでの番号がなくなりました。 システム的にしか使わない場合(Chefで動的にユーザーを作成するときなど)に重宝しそうですね。 だからちょくちょく出てくるのか。スッキリしました。