Ubuntu Weekly Recipe

第368回 エイプリルフール

この記事を読むのに必要な時間:およそ 3 分

本日は4月1日です。暦の上では今日から4月ではあるのですが,⁠今日はまだ3月だから,年度は変わってないから」とうそぶく人が出てくるエイプリルフールでもあります。そこでUbuntuを使って人をだますいたずらを考えてみましょう。

人をだますということ

Ubuntuは,と言うよりも一般的なOSのほとんどすべては,マルチアカウントに対応しています。1つのシステムの中に,複数のユーザーがログインする可能性があるわけです。もしあなたがあるシステムに対して管理者権限を持っているのであれば,他のユーザーが利用する部分に細工をすることで,簡単に他のユーザーを「だます」ことができるのです注1)⁠

注1)
言い方を変えると,他の人が管理するシステムにログインする場合はそういうリスクがあるということです。ある程度の信頼関係が前提にはあるものの,リスクの存在も頭の片隅に残しておくことが肝要です。また,エイプリルフールと同じく,みんながみんな冗談を受け入れるわけではないことも覚えておきましょう。

aliasの設定

たとえば有名な教育アプリとしてslコマンドが存在します。これはよく使う「ls」「sl」とタイプしてしまうミスを矯正するために,slと「ミスタイプ」した時は端末の中に機関車を走らせる教育的コマンドです。そこでslパッケージをインストールしたうえで,/etc/profileや/etc/profile.d/以下に「alias ls='sl'」とでも書いておけば,bashをはじめとする/etc/profileを読み込むシェルならもれなくlsコマンドがslコマンドに置き換わります注2)⁠

注2)
もちろんすごい不便です。

aliasはUbuntuの標準環境でもいくつか設定されています。lsやgrep時に色付きで表示されるのは.bashrcの中で「--color=auto」オプションを付けているからですし,⁠ll」で詳細表示,⁠la」でドットファイルの表示もaliasで実現しています。時間がかかるコマンドを実行する時に「時間のかかるコマンド; alert」としておけば,コマンド終了時にその戻り値に応じて通知メッセージをポップアップするのも,aliasでnotify-sendの複雑なオプションを1つにまとめているからです。

他にも「⁠あなたが愛用しているわけではないテキストエディタの名前を入れてください)のコマンド名」「⁠あなたが愛してやまないテキストエディタの名前を入れてください)のコマンド名」に置き換えるようなaliasを設定することも可能です。可能ではありますがこれは冗談ではすまされず,場合によっては血を見ることにもなりますので,あまりおすすめはしません。

MOTDの改変

MOTD(message of the day)⁠はユーザーがログインした時に,ログインコンソールに表示されるメッセージです。デスクトップユーザーにはあまり馴染みがないかもしれませんが,Ubuntu Serverを使っているユーザーなら,IPアドレスやロードアベレージ,アップデートの必要性の有無などが表示されるところを見たことがあるでしょう。

伝統的にはこれはログイン時に/etc/motdの内容を表示することで実現しています。Ubuntuの場合は,update-motdを用いて/etc/update-motd.d以下のスクリプトによって生成しています。よって,ここに新しいファイルを追加すれば,任意のメッセージをユーザーがログインした時に表示できるのです。

ところでfortuneと言う警句・名言を表示するコマンドがあります。これをMOTDと組み合わせて使うと,ログインの度にランダムにメッセージを表示できます。

$ sudo apt-get install fortune-mod fortunes
$ fortune
I am two fools, I know, for loving, and for saying so.
                -- John Donne

さらに世の中には「テキストを装飾する」コマンドが数多く存在します。そのうちUbuntuのリポジトリにあるものをいくつか紹介しておきましょう。

cowsayパッケージのcowsayコマンドは,渡した文字列を「牛さん」に喋らせるコマンドです注3)⁠

注3)
Monospaceフォントとして0x5cに円記号が割り当てられているフォントを利用している環境では,これらのアスキーアートをきれいには表示できないかもしれません。
$ cowsay -e "><" "Ubuntu Weekly Recipeは毎週水曜掲載!"
 ______________________________
< Ubuntu Weekly Recipeは毎週水曜掲載! >
 ------------------------------
        \   ^__^
         \  (><)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

「-e」オプションは牛さんの目を変えるオプションです。さらに「-f」オプションを使えば,牛さん以外に/usr/share/cowsay/cows/に定義されたアスキーアートを使用できます。

$ cowsay -f stegosaurus Ubuntu Weekly Topicsもよろしくね!
 _____________________________
< Ubuntu Weekly Topicsもよろしくね! >
 -----------------------------
\                             .       .
 \                           / `.   .' "
  \                  .---.  <    > <    >  .---.
   \                 |    \  \ - ~ ~ - /  /    |
         _____          ..-~             ~-..-~
        |     |   \~~~\.'                    `./~~~/
       ---------   \__/                        \__/
      .'  O    \     /               /       \  "
     (_____,    `._.'               |         }  \/~~~/
      `----.          /       }     |        /    \__/
            `-.      |       /      |       /      `. ,~~|
                ~-.__|      /_ - ~ ^|      /- _      `..-'
                     |     /        |     /     ~-.     `-. _  _  _
                     |_____|        |_____|         ~ - . _ _ _ _ _>

toiletパッケージで提供しているtoiletコマンドは,文字そのものを巨大化し,カラフルに修飾します。⁠-F list」で装飾内容のリストが表示されますし,⁠-f」オプションで/usr/share/figlet/にあるフォントを選択できます。

図1 残念ながら日本語には非対応

図1 残念ながら日本語には非対応

lolcatパッケージのlolcatはテキストを虹色にするコマンドです。

図2 ⁠-a」オプションでアニメーションも可能

図2 「-a」オプションでアニメーションも可能

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入