& kdesu; uses a daemon, called kdesud. The daemon listens to a & UNIX; socket in / tmp for commands. The mode of the socket is 0600 so that only your user id can connect to it. If password keeping is enabled, & kdesu; executes commands through this daemon. It writes the command and root's password to the socket and the daemon executes the command using su, as describe before. After this, the command and the password are not thrown away. Instead, they are kept for a specified amount of time. This is the timeout value from in the control module. If another request for the same command is coming within this time period, the client does not have to supply the password. To keep hackers who broke into your account from stealing passwords from the daemon (for example, by attaching a debugger), the daemon is installed set-group-id nogroup. This should prevent all normal users (including you) from getting passwords from the kdesud process. Also, the daemon sets the DISPLAY environment variable to the value it had when it was started. The only thing a hacker can do is execute an application on your display.
& kdesu; は、 kdesudというデーモンを使用します。このデーモンは /tmp内の & UNIX; ソケットからコマンドを読み込みます。ソケットのモードは 0600 なので、あなたのユーザだけが接続できます。パスワードの保存が有効になっているのなら、kdesu; はこのデーモンを使ってコマンドを実行します。上記のとおりに、コマンドと rootのパスワードをソケットに書き込み、デーモンは suを使ってそれを実行します。その際に使ったコマンドとパスワードは破棄せずに、指定された期間だけ保存されます。この期間はコントロールモジュール内のタイムアウト値です。次回同じコマンドを実行したときにパスワードが保存されていれば、パスワードは必要ありません。あなたのアカウントに侵入したクラッカーが、デバッカなどを用いてデーモンからパスワードを盗聴するのを防ぐために、デーモンは set-group-id で nogroup に設定した状態でインストールされています。これで、あなたを含む一般ユーザが kdesudからパスワードを得ることを防げるはずです。また、デーモンは環境変数 DISPLAYに起動時の値をセットします。唯一クラッカーができることは、あなたのディスプレイ上でアプリケーションを実行することだけです。