# 5.2. su へのインターフェース

KDE su は権限を取得するのに、システムの "su" を使用します。この項では、kdesu は どのようにこれをするのかの詳細を説明します。

いくつかの su の実装(例えば、Redhatの su)では、標準入力からのパスワード読み込みを 使わないので、KDE su は、 pty/tty のペアを作成し、tty に接続されたそれ自身の 標準ファイルディスクリプターにて"su" を実行します。

ユーザーが選択したコマンドを実行するために、kde su は、対話シェルではなく、"-c" の引数を伴った su を使用します。この引数は、私の知る全てのシェルで認識され、汎用的に動 作するはずです。su は、この "-c" 引数を、対象とするユーザーのシェルに渡し、そして、シ ェルはプログラムを実行します。コマンド例は、"su root -c the_program" となりま す。

su を使って直接ユーザーコマンドを実行する代わりに、kdesu は `kdesu_stub`と呼ばれる小さな スタブプログラム を実行します。この スタブ(対象のユーザーとして実行されるている)は 、いくつかの情報を pty/tty チャンネル(スタブの標準入出力)越しに kdesu に要求し、それから、ユーザーの プログラムを実行します。渡される情報は、Xディスプレイ、(可能であれば)X 認証クッキー、 環境変数PATH、そして、実行するコマンド、となっています。スタブプログラムが使われる理由 は、X クッキーはプライベートな情報であるためで、コマンドラインに渡すことが出来ないので す。