<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook V3.1-Based Variant V1.0//EN" [
  <!ENTITY kappname "&kdesu;">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Spanish "INCLUDE" -- change language only here -->
  <!ENTITY % ents PUBLIC "-//KDE//ENTITIES Documentation V1.0//EN">
  %ents;
]>

<book lang="&language;">
<bookinfo>

<title>El manual de &kdesu;</title>

<authorgroup>
<author>
<firstname>Geert</firstname>
<surname>Jansen</surname>
<affiliation>
<address><email>g.t.jansen@stud.tue.nl</email></address>
</affiliation>
</author>

<othercredit role="reviewer">
<firstname>Lauri</firstname>
<surname>Watts</surname>
<affiliation>
<address><email>vampyr@atconnex.net</email></address>
</affiliation>
<contrib>Revisora</contrib>
</othercredit>

<othercredit role="translator">
<firstname>Pablo</firstname>
<surname>de Vicente</surname>
<affiliation>
<address><email>pvicentea@nexo.es</email></address>
</affiliation>
<contrib>Traductor</contrib>
</othercredit>

</authorgroup>

<copyright>
<year>2000</year>
<holder>Geert Jansen</holder>
</copyright>

<legalnotice>&FDLNotice;</legalnotice>

<date>14/03/2001</date>
<releaseinfo>1.00.00</releaseinfo>


<abstract><para>&kdesu; es un interfaz gráfico del comando Unix 
"<command>su</command>".</para></abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>su</keyword>
<keyword>contraseña</keyword>
<keyword>root</keyword>
</keywordset>

</bookinfo>

<chapter id="Introduction">
<title>Introducción</title>

<para>¡Bienvenido a &kdesu;! &kdesu; es un interfaz gráfico del comando UNIX
"<command>su</command>" para K Desktop Environment. 
Le permite ejecutar un programa como usuario diferente proporcionando la
contraseña de dicho usuario. &kdesu; es un programa sin privilegios; utiliza
el comando <command>su</command> del sistema.</para>

<para>KDE su tiene una característica añadida: puede recordar las contraseñas
que usted haya introducido previamente. Si usted utiliza esta característica,
sólo necesitará introducir una vez la contraseña para cada usuario. Consulte
<xref linkend="sec-password-keeping"> para obtener más información, que contiene
un análisis de seguridad.</para>

<para>Este programa se debe iniciar desde la línea de comandos o desde los 
archivos <filename>.desktop</filename>. Aunque solicita la contraseña de root
utilizando un diálogo <abbrev>GUI</abbrev> (gráfico), se puede considerar 
una línea de comandos &lt;-&gt; asociada a un <abbrev>GUI</abbrev> en lugar 
de un programa <abbrev>GUI</abbrev> puro.</para>

</chapter>

<chapter id="installation">
<title>Instalación</title>

<sect1 id="downloading">
<title>Descarga</title>

<para>&kdesu; se encuentra en el <abbrev>CVS</abbrev> de KDE, en kdebase. 
Debería estar incluido en todas las distribuciones KDE (2.x). También puede
obtener una versión para KDE 1.x en <ulink
url="ftp://skynet.stack.nl/pub/users/geertj/">ftp://skynet.stack.nl/pub/users/geertj/</ulink>.</para>

</sect1>

<sect1 id="compiling">
<title>Compilación</title>

<para>&kdesu; está en kdebase de modo que ya lo tiene preinstalado, o lo tendrá
cuando instale kdebase.</para>

<para>Para compilar la versión para KDE 1.x, utilice:</para>

<screen>
<prompt>$</prompt> <command>./configure</command>
<prompt>$</prompt> <command>make</command>
<prompt>$</prompt> <command>make <option>install</option></command>
</screen>

<para>El último paso lo deberá ejecutar como root. El proceso de instalación
necesita escribir sobre los directorios generales de KDE en su sistema.</para>

</sect1>
</chapter>

<chapter id="using-kdesu">
<title>Uso de &kdesu;</title>

<para>El uso de &kdesu; es sencillo. La sintáxis es del tipo:</para>

    <cmdsynopsis>
      <command>kdesu</command>
      <arg>USUARIO</arg>
      <arg>-n</arg>
      <arg>-t</arg>
      <arg>-q</arg>
      <arg>-d</arg>
      <arg>-f <replaceable>ARCHIVO</replaceable></arg>
      <arg>-c <group>
	  <arg>
	  <replaceable>COMANDO</replaceable>
	  <arg><replaceable>ARG1</replaceable></arg>
	  <arg><replaceable>ARG2</replaceable></arg>
          <arg rep="repeat"><replaceable></replaceable></arg>
	 </arg>
	</group>
      </arg>
    </cmdsynopsis>

    <cmdsynopsis>
      <command>kdesu</command>
      <group>
	<arg>-v</arg>
	<arg>-h</arg>
	<arg>-s</arg>
      </group>
    </cmdsynopsis>

<para>Las opciones de la línea de comandos se explican a continuación.</para>

<variablelist>
<varlistentry>
<term><option>-c <replaceable>PROGRAMA</replaceable></option></term>
<listitem><para>Especifica el programa a ejecutar como root. Este nombre se 
debe pasar en un argumento. De modo que, por ejemplo, si desea iniciar un nuevo
administrador de archivos, debería introducir: <userinput><command>kdesu <option>-c <replaceable>konqueror
-sw</replaceable></option></command></userinput></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f <replaceable>ARCHIVO</replaceable></option></term>
<listitem><para>Esta opción le permite un uso eficiente de &kdesu; en
archivos <filename>.desktop</filename>. Le indica a &kdesu; que examine 
el archivo especificado por <parameter>ARCHIVO</parameter>. Si este archivo 
tiene privilegio de escritura para el usuario actual, 
&kdesu; ejecutará el comando como usuario actual. Si no tiene privilegios de
escritura, el comando se ejecutará como usuario <parameter>USUARIO</parameter> 
(por omisión es root).</para>
<para><parameter>ARCHIVO</parameter> se evalua del siguiente modo: si
<parameter>ARCHVO</parameter> comienza por "/", se toma como un nombre de 
archivo absoluto. De lo contrario, se toma como el nombre de un archivo 
de configuración global de KDE. Por ejemplo: para configurar el administrador
K de acceso, <application>kdm</application>, usted podría utilizar
<command>kdesu <option>-c
kdmconfig -f kdmrc</option></command></para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Activa la salida por terminal. Esta opción desactiva la 
posibilidad de recordar contraseñas. La razón es por motivos de depuración 
del código: si desea ejecutar una applicación desde consola, utilice el 
comando "<command>su</command>" estándar en su lugar.</para> </listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<listitem><para>No guarda la contraseña. Desactiva la opción "<guilabel>guardar
contraseña</guilabel>" en el diálogo de contraseña.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Modo silencioso.</para></listitem>
<!-- Lauri: This could do with a little expansion.  quiet as in no screen -->
<!-- output, quiet as in no gui prompt for the password, or quiet as in no -->
<!-- beeping? -->
</varlistentry>

<varlistentry>
<term><option>-d</option></term>
<listitem><para>Mostrar información de depuración.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<listitem><para>Imprimir información de la versión y salir.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Imprimir algo de ayuda.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem><para>Detener el demonio kdesu daemon. Consulte <xref
linkend="sec-password-keeping">.</para></listitem>
</varlistentry>
</variablelist>

</chapter>

<chapter id="Configuration">
<title>Configuración</title>

<para>&kdesu; tiene incorporado un módulo de control denominado 
<application>kcmkdesu</application>. Lo puede encontrar en el menú 
<guimenu>K</guimenu>
bajo <menuchoice><guisubmenu>Preferencias</guisubmenu>
<guisubmenu>Personalización</guisubmenu> <guimenuitem>Contraseñas
</guimenuitem></menuchoice>. Puede modificar las siguientes opciones:</para>

<variablelist>
<varlistentry>
<term><guilabel>Modo eco</guilabel></term>
<listitem><para>Este modo indica el modo en que los caracteres que introduce 
son mostrados en la pantalla. Las posibles opciones son: una estrella por
carácter, tres estrellas o ninguna. El valor predeterminado es una estrella 
por carácter.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Guardar contraseñas</guilabel></term>
<listitem><para>Puede indicar a KDE su que recuerde las contraseñas 
introducidas seleccionando la opción "<guilabel>guardar contraseña</guilabel>"
Si la selecciona, puede introducir un valor de tiempo de expiración en el 
campo de texto debajo de él. Este es el tiempo durante el cual la contraseña
será recordada. El valor por omisión es no recordar contraseñas.
</para></listitem>
</varlistentry>
</variablelist>

</chapter>

<chapter id="Internals">
<title>Propiedades internas</title>

<sect1 id="x-authentication">
<title>Acreditación X</title>

<para>El programa que usted ejecute lo hará bajo el ID de root y habitualmente
no tendrá permiso para escribir en su pantalla X. KDE su evita este problema
añadiendo una cookie de acreditación para su pantalla en un archivo temporal
<filename>.Xauthority</filename>. Después de que este comando finalice, este
archivo es suprimido.</para>

<para>Si no utiliza cookies X, usted tendrá que resolver este problema por 
su cuenta. &kdesu; lo detectará y no añadirá una cookie pero usted debe 
asegurarse de que root tiene acceso a su pantalla.</para>

</sect1>

<sect1 id="interface-to-su">
<title>Interfaz a <command>su</command></title>

<para>&kdesu; utiliza el comando "<command>su</command>" del sistema para 
obtener privilegios. En esta sección se explican los detalles de como 
se lleva a cabo esta operación.</para>

<para>Debido a que ciertas implementaciones de <command>su</command> 
(<abbrev>p.ej.</abbrev> la de Redhat) no desean leer la contraseña de 
<literal>stdin</literal>, &kdesu; crea un par pty/tty y ejecuta 
"<command>su</command>" con sus filedescriptors estándar conectados a 
tty.</para>

<para>Para ejecutar el comando seleccionado por el usuario, en lugar de un 
intérprete interactivo, &kdesu; utiliza el argumento "<option>-c</option>" 
con <command>su</command>. Este argumento es entendido por todos los intérpretes
conocidos y debería por tanto funcionar. <command>Su</command> pasa este 
argumento "<option>-c</option>" al intérprete de destino del usuario, y 
el intérprete de comandos ejecuta el programa. Comando de ejemplo:
"<command>su <option>root -c <replaceable>el_programa</replaceable>
</option></command>".</para>

<para>En lugar de ejecutar el comando del usuario directamente con 
<command>su</command>, &kdesu; ejecuta un pequeño programa intermediario 
denominado <application>kdesu_stub</application>. Este intermediario 
(ejecutandose como usuario de destino),
solicita algo de información de &kdesu; 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 
<envar>PATH</envar> y el comando 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 comando.</para>

</sect1>

<sect1 id="password-checking">
<title>Comprobación de contraseñas</title>

<para>&kdesu; comprobará la contraseña introducida y generará un mensaje de 
error si no es correcta. La comprobación se realiza ejecutando un programa
de prueba: <filename>/bin/true</filename>. Si el resultado es positivo, se
asumirá que la contraseña es correcta.</para>

</sect1>

<sect1 id="sec-password-keeping">
<title>Registro de contraseñas</title>

<para>Para su comodidad, &kdesu; implementa una propiedad de "regisro de
contraseña". Si está interesado en la seguridad, debería leer el siguiente
parrafo.</para>

<para>Si permite que &kdesu; recuerde las contraseñas estará abriendo un 
(pequeño) agujero en la seguridad de su sistema. Obviamente, KDE su 
no permite más que al identificador de su usuario utilizar sus contraseñas,
pero si esto se hace descuidadamente, se rebajaría el nivel de seguridad 
al de un usuario normal (usted). Un hacker (intruso) que consiga acceso a su
cuenta, puede conseguir automáticamente el acceso a root. &kdesu; intenta 
impedir esto. El esquema de seguridad, es razonablemente seguro y se 
explica a continuación.</para>

<para>&kdesu; utiliza un demonio, llamado <application>kdesud</application>. 
El demonio escucha a un socket de UNIX en <filename>/tmp</filename> listo 
para ejecutar comandos. El modo del socket es 0600 de tal manera que sólo su 
identificador de usuario se pueda conectar a él. Si se activa el registro de
contraseñas, &kdesu; ejecuta comandos a través de este demonio. Escribe el
comando y la contraseña de root en el socket y el demonio ejecuta el 
comando utilizando "<command>su</command>", como ya se ha descrito más arriba.
Después de esta operación el comando y la contraseña no se descartan. Se 
registran 
durante un cierto tiempo. Este tiempo es el valor tiempo de expiración que
aparece en el módulo de control. Si llega otra petición para el mismo comando
durante este periodo de tiempo, el cliente no debe introducir la contraseña.
Para evitar que los hackers que puedan entrar en su cuenta roben la 
contraseña del demonio (por ejemplo añadiendo un depurador), el demonio se
instala como set-group-id nogroup. Esto debería impedir el robo de contraseñas
del proceso <application>kdesud</application> a todos los usuarios normales 
(incluyendole a usted). También, el demonio fija la 
variable de entorno <envar>DISPLAY</envar> al valor que tenía cuando se inició.
Lo único que un hacker puede hacer es ejecutar una aplicación en su 
pantalla.</para>

<para>Un posible problema de este diseño es que los programas que usted ejecuta 
probablemente no están escritos teniendo en cuenta la seguridad (como los
programas setuid root). Ello significa que pueden tener derrames de buffer 
u otros problemas y un hacker podría explotarlos.</para>

<para>El uso del registro de contraseñas es un compromiso entre seguridad y 
comodidad. Es recomendable que usted lo piense detenidamente y decida si 
desea usarlo o no.</para>

</sect1>
</chapter>

<chapter id="Author">
<title>Autor</title>

<para>&kdesu;</para>

<para>Copyright 2000 Geert Jansen</para>

<para>El autor de &kdesu; es Geert Jansen. Está basado de algún modo en la
versión 0.3 de &kdesu; de Pietro Iglio. Pietro y el autor acordaron que este
programa sería mantenido por el autor actual en el futuro.</para>

<para>El autor puede ser contactado por email en
<email>g.t.jansen@stud.tue.nl</email>. Por favor informe de cualquier error 
que encuentre de modo que pueda se pueda solucionar. Sientase libre de
contactar al autor para enviar sugerencias.</para>

&underFDL;
&underArtisticLicense;

</chapter>
</book>
<!--
Local Variables:
mode: sgml
sgml-omittag: nil
sgml-shorttag: t
End:
-->
