KDE su utiliza la orden su del sistema para obtener privilegios. En esta sección se explican los detalles de como KDE su lleva a cabo esta operación.
Debido a que ciertas implementaciones de su (es decir, la de Red Hat®) no desean leer la contraseña de stdin
, KDE su crea un par pty/tty y ejecuta su con sus descriptores de archivos estándar conectados a tty.
Para ejecutar la orden seleccionada por el usuario, en lugar de un intérprete interactivo, KDE su utiliza el argumento -c
con su. Este argumento es entendido por todos los intérpretes conocidos y debería por tanto funcionar. Su pasa este argumento -c
al intérprete de destino del usuario y el intérprete de órdenes ejecuta el programa. Ejemplo: su root -c
.el_programa
En lugar de ejecutar la orden del usuario directamente con su, KDE su ejecuta un pequeño programa intermediario denominado kdesu_stub. Este intermediario (ejecutándose como usuario de destino), solicita algo de información de KDE su por el canal pty/tty (la entrada y salida estándar del intermediario) y después ejecuta el programa del usuario. La información que se pasa es: la pantalla X, una cookie de acreditación X (si está disponible), la variable PATH
y la orden a ejecutar. La razón por la que se utiliza un programa intermediario es que la cookie X es información privada y por tanto no se puede pasar en la línea de órdenes.