Una sesión iniciada desde una consola virtual o desde una conexión remota (via
telnet,
rsh o
ssh) es atendida inicialmente por el programa
getty (ver
. El mensaje que presenta
getty se configura en el archivo
/etc/issue y puede contener algunas secuencias especiales como:
\d que corresponde a la fecha,
\s al nombre del sistema operativo,
\l al número de la consola virtual (línea tty),
\m al tipo de procesador (e.g i486),
\n al nombre de la máquina,
\u cantidad de usuarios conectados. Por ejemplo, si el archivo
/etc/issue es:
Debian \s 2.2 en un \m. \n \u \l
getty mostrará un mensaje como: Debian Linux 2.2 en un i586. oxigeno 3 tty1
Cuando un usuario teclea su login,
getty pasa el control al programa
login. El programa
login por intermedio de la librería PAM espera la clave del usuario y la válida, cuando el usuario da la clave correcta verifica que el acceso para ese usuario a la hora del ingreso sea posible [11] y entonces inicializa algunas variables de ambiente, muestra algunos mensajes (por defecto la fecha de la última conexión y el contendio del archivo
/etc/motd [12] ) e inicia un intérprete de comandos (el que está configurado para el usuario en
/etc/passwd). Las acciones que
login realiza pueden configurarse en los archivos
/etc/login.def y
/etc/pam.d/login, las consolas desde las cuales puede ingresar el usuario root se configuran en
/etc/securetty, otras restricciones de seguridad pueden configurarse en los archivos del directorio
/etc/security [13].
Algunas generalidades sobre X-Window y la visión del usuario final se presentaron en el capítulo anterior (ver
), en esta sección presentamos como puede iniciarse un servidor X-Window y algunos aspectos de su configuración.
Un servidor X configurado maneja el modo gráfico de la tarjeta de video, teclado y un apuntador (ratón, tarjeta graficadora) para interactuar con el usuario y atender programas que lo emplean como clientes X-Window. Un cliente X-Window normalmente estará corriendo en la misma máquina donde está el servidor, aunque puede estar en otra máquina ver
Servicios de la Intranet. Para iniciar un servidor X se emplea el programa
X (cuya ruta completa normalmente es
/usr/X11R6/bin/X y que es un enlace al ejecutable del servidor que haya configurado para su hardware). Cada servidor X tiene una identificación como
natura.micolegio.edu.co:0.0 compuesta por el nombre de la máquina, un número de vista (una vista se refiere a una colección de monitores con un teclado y apuntador común) y un número de pantalla (en caso de que un computador tenga más de un monitor). En un mismo computador pueden iniciarse varios servidores X, cada uno con un númeo de vista diferente. Por ejemplo para iniciar como vista 0 un servidor X en la consola virtual 9 (pasa a ella con
Ctrl-Alt-F9, ver
Sistema de usuarios y manejo de clave):
/usr/X11R6/bin/X :0 vt9
Simultáneamente podría iniciarse como vista 1 en la consola virtual 3 otro con:
Aplicación encargada de manejar el modo gráfico, teclado y apuntador.
/usr/X11R6/bin/X :1 vt3
Por defecto si no se especifica una consola virtual por usar, X buscara y empleará la primera libre.
Se configura en
/etc/X11/xdm/xdm-config y
/etc/X11/xdm/xdm.options, este administrador de vistas puede administrar uno o más servidores en una o varias máquinas (configurados en
/usr/lib/X11/xdm/XServer), y permite usar terminales X con el protocolo XDMCP.
Administrador de vistas de X-Window.
En cada servidor que maneja ejecuta el script
/usr/lib/X11/xdm/XSetup y después permite el inicio de sesiones presentando el widget Xlogin que pide login y clave a cada usuario y que usa los los recursos de X-Window definidos en
/usr/lib/X11/xdm/Xresources (en particular la imagen presentada).
Cuando un usuario se autentica se ejecutan los scripts:
/usr/lib/X11/xdm/Xstartup como root (que por defecto sólo agrega la autenticación a la bitácora
utmp), después
/usr/lib/X11/xdm/Xsession como usuario. Este último ejecuta
/etc/X11/Xsession el cual ejecuta todos los scripts del directorio
/etc/X11/xsession.d que por defecto mezclan recursos de X-Window (tanto del sistema como de usuario) y ejecutan el script
~/.xsession el cual debe ser configurado por el usuario (ver
). Algunas variables que afectan la ejecución de los scripts de
/etc/X11/Xsession.d se configuran en
/etc/X11/Xsession.options, puede consultarse ayuda sobre estas variables con
man Xsession.options.
Cuando la ejecución de
~/.xsession concluye, xdm cierra la sesión con el script
/usg/lib/X11/xdm/Xreset.
xinit es un programa para iniciar desde la línea de comandos una sesión de X-Window teniendo en cuenta la configuración del usuario. Para esto inicia el servidor X configurado en
~/.xserverrc o en
/etc/X11/xinit/xserverrc (que normalmente es
/usr/X11R6/bin/X) y después ejecuta el archivo de configuración
~/.xinitrc o en su defecto
~/.xsession o a falta de los anteriores
/usr/lib/X11/xinit/xinitrc. La sintaxis de
~/.xinitrc es la misma de
~/.xsession sólo que el primero hereda las variables de ambiente del interprete de comandos (la sintaxis de
~/.xsession puede consultarse en ver
).
startx tiene exactamente el mismo propósito (de hecho ejecuta
xinit).
Comando que permite iniciar una sesión de X-Window (no es xinit).
Comando que permite inicar una sesión de X-Window (no es startx).
Estos comandos son especialmente útiles durante la configuración de X-Window, bien cuando no se ha logrado configurar para los dispositivos de su computador (y en ese caso
xdm no puede iniciar), o bien para probar cambios más rapidamente.
Eventualmente mientras
xdm esté operando usted puede querer hacer cambios a la configuración de X-Window, termine en ese caso
xdm (con
/etc/init.d/xdm stop o buscando y matando el proceso de
xdm), términe el servidor X que esté corriendo, haga los cambios necesarios y después ejecute
startx.
El administrador de vistas gdm es similar a xdm aunque ofrece mejoras en la presentación.
Administrador de vistas de Gnome.
Se configura en el archivo
gdm.conf y en scripts cuyo nombre sea el número de vista (e.g.
:0) o
Default en los directorios:
/etc/gdm/Init
Cuando gdm inicia.
/ete/gdm/PreSession
Cada vez que un usuario abre una sesión.
/etc/gdm/PostSession
Cada vez que un usuario cierra una sesión.
En el directorio
/etc/gdm/Sessions hay scripts que serán ejecutados de acuerdo a la sesión que el usuario en el menú tipo de sesión durante la autenticación.
El script que inicia la sesión Gnome, por defecto carga algunas variables de ambiente de
/etc/login.defs, mezcla recursos del sistema
/etc/X11/Xresources y del usuario (
~/.Xresources, activa configuración de teclado especializada del sistema y del usuario (
/etc/X11/Xmodmap y
~/.Xmodmap), ejecuta el archivo de configuración de Gnome del usuario
~/.gnomerc e inicia el administrador de sesiones GNOME:
gnome-session.
La mayoría de intérpretes de comandos, incluyendo bash, leen información de configuración primero del archivo
/etc/profile y después de archivos de configuración del usuario (ver
).
Sin embargo si emplea un administrador de vistas como xdm, gdm o kdm estos programas por defecto no leerán ese archivo, así que para establecer variables antes de que un administrador de escritorio o un manejador de ventanas inicie debe emplearse un archivo de configuración propio del administrador de vistas. En el caso de gdm el valor de la variable
PATH puede establecerse en
/etc/X11/gdm/gdm.conf (línea DefaultPath) y otras variables pueden establecerse en el archivo que controla el tipo de sesión (con gdm el usuario puede escoger el tipo de sesión al que desea entrar e.g Xsession, Debian, Gnome). Los archivos que controlan las sesiones son scripts localizados en el directorio
/etc/X11/gdm/Sessions --son scripts normalmente cortos que puede revisar y editar para configurar el inicio de sesiones gráficas.
La solución más general y rápida para establecer variables de ambiente es configurarlas en el archivo
/etc/security/pam_env.conf que es leido por PAM --que a su vez es usado tanto por
login como por administradores de displays como xdm y gdm. Si desea configurar
PATH tenga en cuenta modificar
/etc/profile y el archivo de configuración de su administrador de displays para que no la sobreescriban.
- Otra presentación del sistema de usuarios está disponible por ejemplo en la sección 4.6 de "Linux Installation and Getting Started" http://www.linuxdoc.org/LDP/gs/node6.html#secmanageusers
- Páginas del manual del sistema de cada una de las herramientas mencionadas en esta sección (en la primera guía se presentan direcciones en Internet donde puede consultar las páginas man (ver ).
- Puede consultar las políticas sobre numeración de grupos y usuarios en la sección 3.2 de "Debian Policy Manual". En un sistema Debian están disponibles en el directorio /usr/doc/debian-policy, en Internet el documento está en: http://www.debian.org/doc/debian-policy/
- Puede consultar más documentación sobre el sistema de claves en info libc el manual de libc o en Internet en http://www.gnu.org/manual/glibc-2.2.3/html_chapter/libc_29.html#SEC602.
- Si instala en su sistema el paquete libpam-doc (ver ), puede consultar más sobre PAM, su configuración y los módulos disponibles en el directorio /usr/share/doc/libpam-doc.
- Puede consultar información sobre X-Window y el administrador de vistas x en las páginas man: X, xdm, xdm.options.
- Una buena referencia de X-Window (incluyendo xdm y XDMCP) es: X-Window System Administrator's Guide, 1992. Linda Mui y Eric Pearce. O'Reilly & Associates, Inc.
- En Internet puede consultar sobre XDMCP en: http://www.xs4all.nl/~zweije/xauth-9.html
- Puede consultar más sobre GDM en "GNOME Display Manager Reference Manual", disponible en su computador en file:/usr/share/gnome/help/gdm/C/gdm.html o en Internet en http://www.oswg.org/oswg-nightly/oswg/en_US.ISO_8859-1/articles/gdm-reference/gdm-reference.html
1.
2.
3.
Para transformar una clave con el algoritmo DES puede emplear el siguiente script escrito en lenguaje Perl: 4.
5. [[http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_colegio-1.1-html/x5589.htm#admus.configura.3 Nuestra plataforma de referencia (ver
Plataforma de referencia) sugiere 3 grupos básicos: profesores, estudiantes y administración. Considere ventajas y desventajas de esta política (o si lo prefiere de otra ideada por usted de acuerdo a la infomación que se maneja en la red). ¿Qué usuarios deberían tener más de un grupo? ¿qué grupos podrían tener clave, quienes administrarían tales grupos y quienes serían los usuarios?]] 6.
7.
8.
9.
10.
11.
1. Los números UID y GID del usuario root son fijos, investigue en su sistema cuales son.
UID=0 y GID=0. Son menores a 100 lo que indica que deben ser fijos en cualquier computador con Debian.
2. En el directorio
tarea1 se quiere que todos los miembros del grupo estudiantes puedan escribir, pero que un miembro de ese grupo no pueda borrar o renombrar archivos de otros, ¿cómo puede lograrse? si además se quiere que no puedan ver o modificar el contenido de archivos de otros miembros del mismo grupo que se requiere?
chgrp estudiantes tarea1;
chmod o+t tarea1 Para la segunda parte se requiere que cada archivo no conceda permiso de lectura ni escritura al grupo ni a otros.
3. Para transformar una clave con el algoritmo DES puede emplear el siguiente script escrito en lenguaje Perl:
#!/usr/bin/perl
$sal=join
, ('.', '/', 0..9, 'A'..'Z','a'..'z')[rand 64, rand 64];
print crypt($ARGV[0],$sal);
print "\n";
Si el nombre del script es enc.pl y le da permiso de ejecución, para transformar la clave "vida" bastaría ejecutar enc.pl vida.
Emplee este script para transformar una clave, después edite /etc/passwd o /etc/shadow agregue la nueva clave transformada a una cuenta de prueba y finalmente compruebe que la nueva clave funciona entrando a la cuenta de prueba. Nota: Si desea experimentar con MD5 en lugar de DES debe cambiar la "sal" [14], remplazando la línea con la función crypt por print crypt($ARGV[0],"\$1\$$sal");
"enc.pl vida" (con MD5) da por ejemplo "$1$wv$mOwf63L.QvbJ.f7U362Os1" que puede ponerse bien en el campo para la clave de /etc/passwd o bien si las claves shadow están activas, dejar 'x' en /etc/passwd y remplazar la clave en /etc/shadow.
4. Cree un usuario en el grupo users y agréguelo a grupos que le permitan acceder a la impresora local, a dispositivos de audio y a la unidad de disquette. Después pase a la cuenta del nuevo usuario y compruebe que pueda usar disquettes. Finalmente elimine el usuario creado.
adduser ingroup users gloria
adduser gloria lpr
adduser gloria audio
adduser gloria floppy
su - gloria
mdir
exit
deluser remove-home gloria
5. Nuestra plataforma de referencia (ver Plataforma de referencia) sugiere 3 grupos básicos: profesores, estudiantes y administración. Considere ventajas y desventajas de esta política (o si lo prefiere de otra ideada por usted de acuerdo a la infomación que se maneja en la red). ¿Qué usuarios deberían tener más de un grupo? ¿qué grupos podrían tener clave, quienes administrarían tales grupos y quienes serían los usuarios?
Los grupos básicos no tendrian clave: profesores, estudiantes y administación (podrían crearse grupos para otros miembros de la comunidad como exalumnos o padres). Los estudiantes pueden estar sólo en el grupo de estudiantes, los profesores pueden tener como segundo grupo estudiantes, los usuarios de la parte administrativa podrían tener como grupo principal administracion y como grupos secundarios profesores y estudiantes. En principio la información que cree un usuario no debe ser visible a su grupo. Podrían haber grupos con clave para grupos lideradors por un profesor, administrador o estudiante que requieran manejar información separada (con un poco de instrucción los lideres podrían ser los administradores de grupo).
6. Cree los grupos que decidió en el punto anterior y usuarios de prueba (de forma que al menos un usuario de prueba esté en dos grupos).
addgroup gid 1100 estudiantes;
addgroup gid 1101 profesores;
addgroup gid 1102 admin;
adduser ingroup estudiantes esperanza;
adduser ingroup profesores johannes;
adduser ingroup tomas;
adduser estudiantes johanes;
adduser estudiantes tomas;
adduser profesores tomas
7. ¿Qué cambios puede realizar en /etc/adduser.conf para facilitar la implementación de la política descrita en los ejercicios anteriores?
Suponiendo que los grupos son estudiantes (GID=1100), profesores (GID=1101), cuerpo administrativo (GID=1102) adduser.conf puede ser como el que viene por defecto con los siguientes cambios:
USERGROUPS=no
USERS_GID=1100
Así por defecto todo usuario nuevo sería estudiante (para agregar profesores y administradores se usaría la opción ingroup de adduser). Entre las opciones por defecto de ese archivo que puede ser mejor conservar están: bash como intérprete de comandos por defecto (que ha sido documentado en estas guías), como directorio para usuarios /home (que se ha supuesto en los primeros capítulos de estas guías), los números de usuarios que siguen las políticas de Debian.
8. Piense una máscara de permisos apropiada para todos los usuarios. Describa como la aplica empleando umask y los cambios que debe realizar para establecer tal mascara por defecto para todos los usuarios.
Como se desea que por defecto los usuarios de unos grupos no puedan ver información de usuarios del mismo grupo: umask u=rw,g=,o=. Debe agregarse tal orden en /etc/profile y en los archivos de sesiones de gdm en el directorio /etc/gdm/Session.
9. Haga los cambios apropiados en su sistema, para que todo directorio creado para nuevos usuarios tenga un archivo ayuda.txt donde los usuarios podrían escribir sus propias notas para emplear bien el sistema, y un mecanismo que le recuerde a los usuarios la existencia de tal archivo. Inicialmente ese archivo podía tener un mensaje de bienvenida y/o instrucciones para comenzar a usar bien el sistema.
Crear el archivo en etc/skel (como parte del contenido puede recordarse a los usuarios actualizar la información personal con chfn). En /etc/skel/.bashrc puede agregarse algo como:
echo "Hay ayuda que puede completar en el archivo ayuda.txt"
10. Haga una lista de chequeo de detalles que deba tener en cuenta para prevenir que alguien entre a cuentas que no le pertenecen (especialmente como evitar que alguién pueda entrar a la cuenta root).
Evitar entrada a la cuenta root desde el prompt de arranque. Evitar en lo posible emplear los bits SUID y GUID con usuario o grupo root. Emplear claves shadow con MD5 (en Debian se usa por defecto PAM que es muy apropiado). Educar a los usuarios en este tema, buscando que eligan buenas claves y ayuden a cuidar y construir la red (emplear para la cuenta root una muy buena clave conocida sólo por el administrador). Emplear cracklib para evitar uso de claves simples.
11. Opcional: Configure gdm para que en vez de presentar el logo típico presente el logo de su institución educativa.
Editar en /etc/gdm/gdm.conf la línea:
logo=/usr/share/pixmaps/gnome-logo-large.png
Notas
|| [1] || Al emplear la opción - de su se inicializa el ambiente tal como el programa login lo haría, el valor de la variable PATH será tomado de /etc/login.defs, de ENV_PATH si se pasa a un usuario normal o de ENV_SUPATH si se trata del usuario root ||
|| [2] || En /etc/shells se listan los intérpretes de comandos disponibles. Algunos programas que opean en red sólo aceptan conexiones de usuarios cuyo intérprete de comandos esté listado en ese archivo. ||
|| [3] || Cuando un usuario no ha cambiado su clave dentro del máximo de días especificado, en la siguiente oportunidad que entre a una sesión el sistema solicitará una nueva clave --que debe ser diferente a la anterior. ||
|| [4] || Hay varios programas similares a adduser, addgroup, deluser y delgroup se trata de useradd, groupadd, userdel y groupdel. Recomendamos emplear los primeros porque son más flexibles (se configuran en los archivos /etc/adduser.conf y /etc/deluser.conf) y porque permiten seguir las políticas de numeración de grupos y usuarios de Debian ||
|| [5] || Si no se especifica un número de usuario o grupo a adduser o addgroup, estos asignarán uno disponible de acuerdo a la política de Debian: en el rango 1000 a 29999 si es un usuario normal o en el rango 100 a 999 si es una cuenta requerida por algún programa (que se indica con la opción system, además al usar system con adduser el intérprete de comandos será /bin/false). Las identificaciones entre 0 y 100 son comunes a cualquier sistema Debian y no deben modificarse. ||
|| [6] || Con DES el tamaño máximo de una clave es 8 caracteres, el algoritmo MD5 es más seguro y permite claves de mayor longitud. ||
|| [7] || De acuerdo a la página man de passwd, GECOS es sigla de General Electric Comprehensive Operating System. ||
|| [8] || Para convertir un archivo de claves shadow a passwd y viceversa se usan pwunconv y pwconv respectivamente. Puede desactivarse el uso de claves shadow con shadowconfig off y activarse con shadowconfig on ||
|| [9] || sg es un comando similar a newgrp que además permite especificar un comando por ejecutar con la opción -c comando ||
|| [10] || Un comando casi equivalente a addgroup es groupadd, sin embargo addgroup tiene en cuenta las políticas de Debian y la información de /etc/adduser.conf. ||
|| [11] || Por defecto todos los usuarios pueden entrar a cualquier hora, puede modificarse esto editando /etc/security/time.conf. ||
|| [12] || motd abrevia message of day (en español mensaje del día). ||
|| [13] || access.conf login access control table, group.conf para dar acceso a ciertos usuarios a ciertos grupos a los cuales no pertenece, limits.conf para establecer límites en el uso de algunos recursos del sistema (como procesos, memoria, archivos abiertos simultaneamente, tiempo de CPU, número de logins, prioridad de procesos), pam_env.conf donde pueden configurarse variables de ambiente, time.conf donde se configura horarios en el que ciertos usuarios pueden ingresar al sistema ||