DM(8)

名称
dm - ダジョンマスター

書式
ln -s dm game

解説
dm は、ゲームで遊ぶことを規制するために使うプログラムです。 dm は、ユーザが遊びたいゲームの名前で起動されることを想定しています。 これは、 dm へのシンボリックリンクを、ディレクトリ /usr/games 内に、規制する全てのゲームの名前で作ることで行われます。 これらのゲームの実際のバイナリは “hidden” ディレクトリ /usr/games/hide に置かれ、 dm プログラムだけがこれらにアクセスできます。 dm はリクエストされたゲームが利用可能かどうか判定し、利用可能であれば実行します。 ファイル /etc/dm.conf で、どのゲームを実行してよいかを制御します。

ファイル /etc/nogames によって、ゲームで遊ぶことを “できなくする” ことが可能です。 このファイルが存在すると、ゲームで遊ぶことができなくなります。 ゲームをリクエストしたユーザには、このファイルの中身がメッセージとして 表示されます。

関連ファイル
/etc/dm.conf
    設定ファイル
/etc/nogames
    ゲームで遊ぶことをできなくするファイル
/usr/games/hide
    ``実際の'' バイナリが置かれているディレクトリ
/var/log/games.log
    ゲームの起動のログを取っておくファイル

関連項目
dm.conf(5)

バグ
dm がゲームを setuid “games” で起動するために、2 つの問題が生じます。 ひとつは、 全てのゲームでユーザが UNIX コマンドを実行することを許すためには、 そのコマンドを実行する直前に 実ユーザIDと実行ユーザIDの両方を注意深く設定しなければいけません。 もっと重要であると思われることは、 dm は決して “games” 以外に setuid してはいけないということです。 こうしないと、結果として意のままにゲームが遊べてしまうからです。 第 2 に、以前は setuid を行って実行する理由がなく、ユーザのファイルをアクセス ゲームは、その動作を変更しなければならないということです。

歴史
dm コマンドは 4.3BSD tahoe から登場しました。