jueves, marzo 15, 2007

Crear usuarios en linux

Introducción.
GNU/Linux® es un sistema operativo con muchas características y una de estas es el estar diseñado para ser utilizado por múltiples usuarios. Aún cuando se tenga una PC con un único usuario, es importante recordar que no es conveniente realizar el trabajo diario desde la cuenta de root, misma que solo debe utilizarse para la administración del sistema.

Una cuenta de usuario contiene las restricciones necesarias para impedir que se ejecuten mandatos que puedan dañar el sistema -programas troyanos como el Bliss-, se alteren accidentalmente la configuración del sistema, los servicios que trabajan en el trasfondo, los permisos y ubicación de los archivos y directorios de sistema, etc.

Procedimientos.
Generalmente el paso que procede a una instalación de GNU/Linux® es la creación de cuantas de usuario. Existen distintos métodos, todos son sencillos y permiten crear una cuenta con su propio directorio de trabajo y los archivos necesarios.

Actualmente se existen recursos como el programa instalador de Red Hat™ Linux® y programas que funcionan desde un entorno gráfico, como es Linuxconf y Webmin, y recursos que funcionan en modo de texto o desde una ventana terminal, como son los mandatos tradicionales, useradd y passwd, y algunos otros programas, como YaST y la versión correspondiente de Linuxconf o Webmin.

Creando una cuenta en el modo de texto: useradd y passwd
Este procedimiento puede realizarse de forma segura tanto fuera de X Window® como desde una ventana terminal en el entorno gráfico del que se disponga. Fue el método comúnmente utilizado antes de la aparición de programas como YaST y Linuxconf. Sin embargo aún resulta útil para la administración de servidores, cuando no se tiene instalado X Window®, no se tienen instalados YaST o Linuxconf -o las versiones de estos que se han instalado no trabajan correctamente-, o bien se tienen limitaciones o problemas para utilizar un entorno gráfico.

Lo primero: la orden useradd.
El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd del siguiente modo:

useradd nombre_del_usuario


Ejemplo:

useradd fulano

Lo segundo: la orden passwd.
Después de crear la nueva cuenta con useradd o que sigue a continuación es especificar una contraseña para el usuario. Determine una que le resulte fácil de recordar, que mezcle números, mayúsculas y minúsculas y que, preferentemente, no contenga palabras que se encontrarían fácilmente en el diccionario. Existen otras recomendaciones más, por lo que es conveniente leer, antes de continuar, los comentarios finales acerca de la seguridad incluidos en este mismo artículo.

Aunque el sistema siempre tratará de prevenirlo cuando se escoja una mala contraseña, el sistema no le impedirá que lo haga. Especificar una nueva contraseña para un usuario, o bien cambiar la existente, se puede realizar utilizando el mandato passwd del siguiente modo:

passwd nombre_del_usuario

Ejemplo:

passwd fulano

El sistema solicitará entonces que proceda a teclear la nueva contraseña para el usuario y que repita ésta para confirmar. No verá el echo, por seguridad, el sistema no mostrará los caracteres tecleados, por lo que debe hacerlo con cuidado. Si se considera que tal vez se cometieron errores de tecleado, puede presionarse las veces que sean necesarias la tecla o . De cualquier forma el sistema le informará si coincide o no lo tecleado. Si todo salió bien recibirá como respuesta del sistema code 0. Si en cambio recibe code 1, significa que deberá repetir el procedimiento, ya que ocurrió un error.

Este procedimiento también puede utilizarse para cambiar una contraseña existente.

Opciones avanzadas.
En muchos casos pueden no ser necesarios, pero si se esta administrando un servidor o estación de trabajo, o bien se es un usuario un poco más experimentado, y se quiere crear una cuenta con mayores o menores restricciones, atributos y/o permisos, pueden utilizarse las siguientes opciones de useradd:

-c comment
Se utiliza para especificar el archivo de comentario de campo para la nueva cuenta.
-d home dir
Se utiliza para establecer el directorio de trabajo del usuario. Es conveniente, a fin de tener un sistema bien organizado, que este se localice dentro del directorio /home.
-e expire date
Se utiliza para establecerla fecha de expiración de una cuenta de usuario. Esta debe ingresarse en el siguiente formato: AAAA-MM-DD.
-g initial group
Se utiliza para establecer el grupo inicial al que pertenecerá el usuario. De forma predeterminada se establece como único grupo 1. Nota: el grupo asignado debe de existir.
-G group,[...]
Se utiliza para establecer grupos adicionales a los que pertenecerá el usuario. Estos deben separarse utilizando una coma y sin espacios. Esto es muy conveniente cuando se desea que el usuario tenga acceso a determinados recursos del sistema, como acceso a la unidad de disquetes, administración de cuentas PPP y POP. Nota: los grupos asignado deben de existir.
-m
Se utiliza para especificar que el directorio de trabajo del usuario debe ser creado si acaso este no existiese, y se copiaran dentro de este los archivos especificados en /etc/skel.
-s shell
Se utiliza para establecer el Shell que podrá utilizar el usuario. De forma predeterminada, en Red Hat™ Linux® y Fedora™ Core, se establece bash como Shell predefinido.
-u uid
Se utiliza para establecer el UID, es decir, la ID del usuario. Este debe ser único. De forma predeterminada se establece como UID el número mínimo mayor a 99 y mayor que el de otro usuario existente. Cuando se crea una cuenta de usuario por primera vez, como ocurre en Red Hat™ Linux® y Fedora™ Core generalmente se asignará 500 como UID del usuario. Los UID entre 0 y 99 son reservados para las cuentas de los servicios del sistema.
Ejemplo:

useradd -u 500 -d /home/fulano -G floppy,pppusers,popusers fulano

Lo anterior creará una cuenta de usuario llamada fulano, que se encuentra incluido en los grupos floppy, pppusers y popusers, que tendrá un UID=500, utilizará Bash como intérprete de mandatos y tendrá un directorio de trabajo en /home/fulano.

Existen más opciones y comentarios adicionales para el mandato useradd, estas se encuentran especificadas en los manuales -Man pages-. Para acceder a esta información, utilice el mandato man useradd desde una ventana terminal.

Eliminar una cuenta de usuario.
En ocasiones un administrador necesitará eliminar una o más cuentas de usuario. Este es un procedimiento principalmente utilizado en servidores y estaciones de trabajo a los cuales acceden múltiples usuarios. Para tal fin nos valdremos del mandato userdel. La sintaxis básica de userdel es la siguiente:

userdel nombre_del_usuario

Ejemplo:

userdel fulano

Si se desea eliminar también todos los archivos y sub-directorios contenidos dentro del directorio de trabajo del usuario a eliminar, se debe agregar la opción -r:

userdel -r nombre_del_usuario

Ejemplo:

userdel -r fulano

Manejo de Grupos.
Alta de grupos.
groupadd grupo-que-sea

Alta de grupos de sistema.
Un grupo de sistema es aquel que tiene un número de identidad de grupo (GID) por debajo del 500. Regularmente se asigna automáticamente el número de identidad de grupo más bajo disponible.

groupadd -r grupo-que-sea

Baja de grupos
groupdel grupo-que-sea

Asignación de usuario existentes a grupos existentes.
gpasswd -a usuario-que-sea grupo-que-sea

Comentarios finales acerca de la seguridad.
Cuando, en la mayoría de los casos, un hacker o cracker consigue infiltrarse en un sistema GNU/Linux® o Unix® no es porque estos tengan un hueco de seguridad, sino porque el intruso pudo "hackear" alguna de las contraseñas de las cuentas existentes. Si usted específico durante el proceso de instalación de Linux® una mala contraseña de root, algo muy común entre usuarios novicios, es altamente recomendado cambiarla.

Evite especificar contraseñas fáciles de adivinar. Con esto nos referimos particularmente a utilizar contraseñas que utilicen palabras incluidas en cualquier diccionario de cualquier idioma, datos relacionados con el usuario o empresa como son registro federal de causantes (R.F.C.), fechas de nacimiento, números telefónicos, seguro social, números de cuentas de académicos o alumnos y nombres de mascotas, la palabra Linux®, nombres de personajes de ciencia ficción, etc.

Evite escribir las contraseñas sobre medios físicos, prefiera siempre limitarse a memorizar éstas.

Si necesita almacenar contraseñas en un archivo, hágalo utilizando ciframiento.

Si se le dificulta memorizar contraseñas complejas, utilice entonces contraseñas fáciles de recordar, pero cámbielas periódicamente.

Jamás proporcione una contraseña a personas o instituciones que se la soliciten. Evite proporcionarla en especial a personas que se identifiquen como miembros de algún servicio de soporte o ventas. Este último caso lo menciona con énfasis la página de manual del mandato passwd.

Consideraremos como una buena contraseña aquella se compone de una combinación de números y letras mayúsculas y minúsculas y que contiene al menos 8 caracteres. También es posible utilizar pares de palabras con puntuación insertada y frases o secuencias de palabras, o bien acrónimos de estas.

Observar estas recomendaciones, principalmente en sistemas con acceso a redes locales y/o públicas, como Internet, hará que el sistema sea más seguro.

No hay comentarios.: