Sunteți pe pagina 1din 4

Cuentas de usuario ADMINISTRACIN

Administrar cuentas de usuario en Linux

LLEVAR LA CUENTA DE LA MANADA

Los pasos para configurar cuentas nuevas bajo Linux estn automatizados y usan frecuentemente herramientas con interfaz grfica. Por debajo, una serie de mecanismos suministran al usuario el entorno que cumpla con sus necesidades. En el artculo de este mes veremos las tcnicas para configurar las cuentas.POR MARC ANDR SELIG

on cualquiera de las modernas distribuciones de Linux, slo necesitamos unos pocos clics para crear una nueva cuenta de usuario. La Figura 1 muestra un ejemplo en Suse. Las interfaces grficas de este tipo se apoyan en programas en lnea de coman-

dos como adduser o useradd para el trabajo duro. Es extremadamente importante para los administradores saber exactamente qu se est haciendo al crear una cuenta de usuario. Las caractersticas automatizadas pueden ajustarse a medida para

adecuarse a los requerimientos de nuestro sistema. Cuando creamos una cuenta, ciertas bases de datos necesitan los detalles del nuevo usuario. Estos usualmente necesitan un directorio de usuario y permisos de escritura a juego. Los administradores abandonan a sus usua-

WWW.LINUX-MAGAZINE.ES

Nmero 09

67

ADMINISTRACIN Cuentas de usuario

queando el fichero al mismo tiempo para evitar el acceso de otros usuarios de administracin, y renueva las bases de datos binarias del usuario despus de terminar las modificaciones.

Grupos
Los grupos de usuarios son una caracterstica central de la administracin de privilegios en cualquier sistema Unix. Los administradores pueden crear grupos de manera similar a crear usuarios, usando las herramientas addgroup o groupadd, por ejemplo. Los grupos se guardan en un fichero llamado /etc/group. Cada fichero creado en una mquina Unix se asigna automticamente a un usuario y a un grupo. Los administradores pueden asignar permisos de manera separada para el usuario y el grupo de cada archivo. La posibilidad de asignar mltiples usuarios a un grupo facilita a estos usuarios el acceso a archivos o directorios especficos. Algunos ejemplos tpicos de grupos son modem o dialout para el acceso al puerto del modem, audio para la tarjeta de sonido y cdrom para asignar permisos para la unidad de CD-ROM. Un sistema con bases de datos podra asignar a los usuarios autorizados un grupo llamado db, por ejemplo. Los usuarios pueden pertenecer a todos los grupos que sea necesario, pero cada usuario tendr un grupo primario que especifica la propiedad de grupo de cualquier archivo que el usuario cree. El grupo prima-

Figura 1: El men principal de SSPE es muy claro. La interfaz basada en texto plano permite la administracin remota de la herramienta.

rios a la hora de las configuraciones de programas, muchas de ellas estn incluso pre-fijadas. Por supuesto, es imposible tener en cuenta absolutamente todas las configuraciones al crear nuevos usuarios, especialmente si el usuario no accede al sistema hasta pasado un cierto tiempo.

Crear una Cuenta de Usuario


Al crear una nueva cuenta de usuario, el primer paso es guardar la informacin de ese usuario en la base de datos centralizada. Suponiendo que no tenemos un sistema distribuido como NIS, NIS+, NetInfo o LDAP, sino que simplemente administramos los usuarios desde un nico equipo, el fichero se llamar /etc/passwd. Este es un fichero de texto con una entrada para cada cuenta, incluyendo el nombre de login y el ID del usuario, el ID del grupo primario, el directorio de usuario y el shell por defecto. Podemos aadir incluso detalles como el nombre y apellidos del usuario o el nmero de telfono. Los sistemas Unix guardaban una contrasea encriptada que serva para autenticar al usuario de /etc/passwd. El problema con este mtodo es que /etc/passwd necesitaba ser ledo globalmente, es decir, sus permisos estaban

fijados a 0700. Y eso implicaba que cualquiera poda leer las contraseas encriptadas. Los procesadores actuales no tardan demasiado en romper contraseas dbiles [1] mediante fuerza bruta, por lo que cualquier usuario con acceso al sistema tiene la oportunidad de realizar una escalada de privilegios. Para mejorar la seguridad, muchos de los derivados de Unix guardan las contraseas en el archivo /etc/shadow. Este archivo es propiedad del administrador y del grupo shadow, y los privilegios de lectura se suelen restringir al administrador y posibles miembros del grupo shadow. Esto evita que otros usuarios accedan a las contraseas. Un registro tpico de /etc/passwd tiene el siguiente aspecto:
pepe:x:1000:1000:Jose Garcia U Selig,,,:/home/pepe:/bin/bash

Algunos sistemas Unix no usan el archivo de contraseas directamente, sino que generan una base de datos binaria a partir de ese archivo. A destacar la familia BSD, notable en este aspecto. Para evitar conflictos y condiciones de carrera, existe un vipw que permite al administrador editar el archivo de contraseas. Esta herramienta ejecuta el editor vi con /etc/passwd, blo-

68

Nmero 09

WWW.LINUX-MAGAZINE.ES

Cuentas de usuario ADMINISTRACIN

Figura 2: Crear una nueva cuenta de usuario implica una serie de tareas. Las herramientas como useradd descargan mucho trabajo para el administrador.

rio se lista en /etc/passwd y cualquier otra pertenencia se almacena en /etc/group. El comando id muestra las pertenencias a grupos de un usuario:
pepe@ishi:~$ id uid=500(pepe) gid=100(users) U groups=100(users),14(uucp), 16(dialout), U 17(audio),33(video) pepe@ishi:~$

Las distribuciones modernas de Linux tienen dos mtodos diferentes respecto a las asignaciones al grupo primario. Algunas establecen un grupo de usuarios global users para todas las personas usuarias del sistema. Estos pueden luego ejecutar chmod para especificar si cualquier fichero que creen debe tener acceso de lectura para los dems miembros del grupo (poniendo los permisos a 0640: lectura y escritura para el propietario, lectura para el grupo y sin permisos para el resto). En caso contrario se fija-

rn como 0600: sin permisos ni para el grupo ni para el resto). Otras distribuciones asignan cada usuario a un grupo de su propiedad. Esto mejora ligeramente la proteccin de datos y permite a los usuarios fijar pequeos equipos aadiendo cada usuario a sus grupos individuales. Habiendo dicho esto, tiene ms sentido configurar grupos especficos orientados a tareas que simplemente dejarlo a ver qu pasa. Hay un buen nmero de grupos de administracin para el control de acceso a programas o archivos especficos. Por ejemplo, el grupo wheel agrupa tradicionalmente a los usuarios autorizados a ejecutar el comando su o equivalentes. Las distribuciones de hoy en da no suelen tener un grupo wheel para simplificar las cosas, sino que simplemente cualquier usuario est autorizado a ejecutar su. Los grupos como tty, disk y lp refieren a componentes del sistema (acceso a terminales, discos duros e impresoras), mientras que los bin o sys permiten a los administradores especificar qu cuentas pueden ejecutar programas. Estos grupos no se asignan nunca a usuarios humanos. El grupo especial nobody (o nogroup) se asigna a usuarios sin privilegios. Sin embargo, hay un cierto peligro de que muten al grupo de todo el mundo ya que muchos paquetes de software suelen crear archivos con pertenencia a este grupo. Tiene ms sentido configurar un grupo especial nobody para cada paquete de software.

Listado 1: Cuanta de usuario pepe


01 02 03 04 05 06 07 08 09 10 11 $ su Password: # vipw [...] # passwd pepe # mkdir /home/pepe # cd /etc/skel && tar cf - . | (cd /home/pepe && tar xpf -) # chown -R pepe:users /home/pepe # chmod -R u+rwX,go-rwx /home/pepe # exit $

Directorios de Usuario
Cuando un administrador crea un nuevo usuario aadiendo simplemente el direc-

torio de usuario /home/user a /etc/passwd no est haciendo un gran avance. Por supuesto, el directorio ha de crearse. Adems del paso obvio de mkdir, el administrador tiene que acordarse de configurar los permisos de usuario y grupos adecuados, ejecutando chown (y posiblemente chgrp). Dependiendo de nuestra distribucin y preferencias, podemos fijar los permisos de los directorios de usuario a 0755, 0711 o 0700. En el primer caso se permite a todo el mundo el acceso de lectura al directorio. La segunda variante permite el acceso a ficheros y directorios situados bajo el directorio de usuario, suponiendo que tienen los permisos configurados y sus nombres son conocidos, para evitar listados de directorios. La tercera variante evita el acceso de otros usuarios. Como el directorio de usuario pertenece al nuevo usuario, ste puede modificar la configuracin por defecto ms tarde.

Listado 2:/etc/X11/xinit/xinitrc
01 #!/bin/sh 02 # $Id: xinitrc,v 1.2 2003/02/27 19:03:30 jharper Exp $ 03 04 userresources=$HOME/.Xresource s 05 usermodmap=$HOME/.Xmodmap 06 sysresources=/etc/X11/xinit/.X resources 07 sysmodmap=/etc/X11/xinit/.Xmod map 08 09 # merge in defaults and keymaps 10 11 if [ -f $sysresources ]; then 12 xrdb -merge $sysresources 13 fi 14 15 if [ -f $sysmodmap ]; then 16 xmodmap $sysmodmap 17 fi 18 19 if [ -f $userresources ]; then 20 21 22 23 24 25 26 27 28 29 30 31 32 33 xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi # start some nice programs xterm & # start the window manager exec fvwm2

WWW.LINUX-MAGAZINE.ES

Nmero 09

69

ADMINISTRACIN Cuentas de usuario

Pero los administradores no pueden simplemente sentarse y relajarse despus de haber creado un directorio de usuario. Se necesita fijar la configuracin por defecto de los programas ms comunes y deben configurarse las variables globales para el usuario. Muchos programas Unix usan los llamados dotfiles para la configuracin. Los dotfiles son archivos ocultos de configuracin (o directorios) situados en el directorio de usuario y que pertenecen al usuario que ejecuta el programa. Se les llama as dado que el nombre del fichero o directorio empieza siempre por un punto.

una cuenta de usuario. Ejecutar este listado de comandos cada vez que necesitemos crear un nuevo usuario lleva demasiado tiempo, por lo que herramientas como adduser y useradd nos ayudan a automatizar estos pasos. La Figura 2 nos muestra un esquema de los pasos implicados.

Configuracin Avanzada
Un gran problema con las cuentas preconfiguradas es que muchas de las configuraciones se desconocen de antemano. Aunque el idioma y la zona horaria son fciles de arreglar, y no suelen variar, las configuraciones de programas especficos son algo completamente distinto y pueden incluso variar en caso de actualizaciones. Para empeorar las cosas, los administradores no pueden presuponer que el usuario empezar a usar la cuenta inmediatamente y para comenzar a controlar la configuracin desde ese momento. En muchos casos tiene sentido preparar archivos de configuracin en una localizacin centralizada, suponiendo que el programa soporta este mtodo. Los tpicos gestores de ventanas de X11, o la configuracin de xinit son buen ejemplo de esto. Los administradores pueden simplemente mantener la estructura de configuracin central en /etc/X11/. En caso de una actualizacin, el administrador (o el gestor de paquetes) simplemente modifica estos directorios para propagar automticamente la

El Esqueleto
Un gestor de ventanas necesita saber qu software est instalado para poder proporcionar los mens adecuados. Los procesadores de textos y los programas de retoque de imgenes tienen que soportar las impresoras y adaptarse a otros detalles locales. Los navegadores tienen que saber bajo qu proxys estn trabajando, etc El directorio /etc/skel/ (viene de esqueleto) tiene una plantilla bsica para los nuevos directorios de usuario. Los administradores pueden guardar los dotfiles o asignar a nuevos usuarios en este directorio. Cuando se crea un nuevo directorio, este esqueleto simplemente se copia all. Con esto se completara la cuenta de usuario y su entorno. El Listado 1 muestra los comandos necesarios para crear

nueva configuracin a los usuarios. En caso de que los usuarios avanzados no estn conformes con la configuracin por defecto, los administradores dan por sentado que cambiarn la configuracin en sus directorios de usuario. El Listado 2 muestra un ejemplo de archivo /etc/X11/xinit/xinitrc, que inicializa el teclado y los perfiles centralizadamente (lneas de la 11 a la 17). Dondequiera que los usuarios hagan cambios individuales, el script aplica automticamente estos cambios (lneas de la 19 a la 25). Los administradores pueden usar un mtodo similar para configurar variables de entorno en los perfiles centrales del shell /etc/profile/ (para Sh y Bash) o /etc/csh.cshrc y /etc/csh.login (para Csh y Tcsh). Da igual el sitio donde el usuario defina sus propias versiones de estos archivos dentro de sus directorios de usuario (son archivos dotfile), que el shell ejecutar estos arhivos, dndoles mayor prioridad a sus configuraciones, al menos para las variables. Las configuraciones centrales como las de ulimits pueden fijarse para que tengan mayor prioridad que las variables locales. El Bash permite a los administradores definir algunas variables como readonly (slo lectura). Esto le da a los administradores un control preciso sobre las configuraciones. Si el mtodo de configuracin y administracin centralizado resulta impracticable, debido a aplicaciones que no lo soportan y no hay manera de salvar el escollo, siempre podremos recurrir al viejo truco: sustituir el archivo del programa con un script de arranque. El script tendr que verificar el directorio de usuario en busca de una versin del archivo de configuracin, y si no existe, copiar el archivo con la configuracin inicial desde la ubicacin central antes de ejecutar propiamente la aplicacin. Dependiendo de la cantidad de esfuerzo que estemos dispuestos a invertir en esto, podramos incluso conseguir en el script de arranque que cambie los ficheros de configuracin automticamente en caso de actualizacin. s

RECURSOS
[1] John the Ripper, una herramienta para crackear contraseas: http:// www.openwall.com/john/

70

Nmero 09

WWW.LINUX-MAGAZINE.ES

S-ar putea să vă placă și