miércoles, 21 de marzo de 2012

Linux - Usuario y grupos

Los sistemas operativos actuales son multiusuarios y multitareas, producto de esto es que poseen administración de los mismos, como por ejemplo sistema de identificación (login), programas por usuario, ficheros por usuarios, etc.

Los sistemas Linux organizan toda la información en usuarios y grupos, además de tratar de aumentar la seguridad, esto quiere decir que la contraseña es cifrada, esto quiere decir que cuando ingresamos al sistema, la contraseña ingresada es cifrada y es comparada con la guardada en el sistema, y si es correcta, la identificación es true (positiva) y permite el acceso, de lo contrario, lo niega.

En Linux podemos escoger 2 tipos de cifrados, el 3DES y MD5. 3DES viene de los inicios de Unix pero posee un gran inconveniente, el cual es que solo acepta hasta 8 letras, si se escriben más se ignoran. Al contrario en MD5 podemos escribir una contraseña del largo que queramos.

La diferencia entre un usuario y un grupo es que un usuario es un individuo en particular que entra al sistema, en cambio el grupo es un conjunto de usuarios que acceden al sistema con características parecidas, por ejemplo el grupo administrador tiene ciertos privilegios que el grupo usuarios no posee. Todo usuario debe estar al menos en un grupo y puede estar en n grupos.

Toda la información de usuarios y grupos se guarda en los siguientes archivos:
  • /etc/passwd: información (nombre, directorio home, . . . ) del usuario.
  • /etc/group: información sobre los grupos de usuarios.
  • /etc/shadow: contraseñas cifradas de los usuarios y configuración para su validez, cambio, etc.
Utilizar el archivo de shadow es opcional. En un principio, las contraseñas cifradas de los usuarios se guardaban en el mismo fichero de passwd, pero, por razones de seguridad (muchos mecanismos deben poder leer este fichero, con lo cual era muy fácil hacerse con él e intentar “crackear” las contraseñas) se optó por cambiar este mecanismo para hacer que el fichero de shadow sólo fuera accesible para algunos usuarios con privilegios especiales en el sistema.

Esta opción es configurable en el proceso de instalación del sistema y suele ser recomendable utilizarla. Todos estos ficheros están organizados por líneas, donde cada una de ellas identifica a un usuario o grupo (dependiendo del fichero). En cada línea hay diversos campos separados por el carácter “:”. En tareas de administración, es importante saber qué son estos campos, por lo que vamos a explorarlos con un poco más de detalle:

passwd

  1. Login: el nombre del usuario. No puede haber dos nombres iguales, aunque sí alguno que coincida con un grupo del sistema.
  2. Contraseña cifrada: si no se utiliza el fichero de shadow, las contraseñas cifradas se almacenan en este campo. Si utilizamos el fichero de shadow, todos los usuarios existentes en este fichero deben existir también en el de shadow y en este campo se pone el carácter “x”.
  3. User ID: número de identificación del usuario. Es el número con el cual el sistema identifica al usuario. El 0 es el único que está reservado para el root.
  4. Group ID: el número de grupo al cual pertenece el usuario. Como un usuario puede pertenecer a más de un grupo, este grupo se denomina primario.
  5. Comentarios: campo reservado para introducir los comentarios que queramos sobre el usuario. Se suele utilizar para poner el nombre completo o algún tipo de identificación personal.
  6. Directorio home: el directorio home del usuario es donde éste podrá guardar todos sus ficheros. Suelen ponerse todos en alguna carpeta del sistema (generalmente /home/) y organizados por grupos.
  7. Intérprete de comandos: un intérprete de comandos (shell ) es un programa que se encarga de leer todo lo que escribimos en el teclado y ejecutar los programas o comandos que le indiquemos. Hay decenas de ellos, aunque el más utilizado es, sin duda, el bash (GNU Bourne-Again SHell). Si en este campo escribimos /bin/false no permitiremos que el usuario ejecute ningún comando en el sistema, aunque esté dado de alta en el mismo.
group
  1. Nombre del grupo.
  2. Contraseña cifrada: la contraseña de un grupo se utiliza para permitir que los usuarios de un determinado grupo se puedan cambiar a otro o para ejecutar algunos programas con permisos de otro grupo (siempre que se disponga de la contraseña).
  3. Group ID: número de identificación del grupo. Es el número con el cual el sistema identifica internamente a los grupos. El 0 es el único que está reservado para el grupo del root (los administradores).
  4. Lista de usuarios: los nombres de los usuarios que pertenecen al grupo, separados por comas. Aunque todos los usuarios deben pertenecer a un determinado grupo (especificado en el cuarto campo del fichero de passwd), este campo se puede utilizar para que usuarios de otros grupos también dispongan de los mismos permisos que tiene el que se está referenciando.
shadow
  1. Login: debe ser el mismo nombre que se utiliza en el fichero de passwd.
  2. Contraseña cifrada.
  3. Días que han pasado, desde el 1 de enero de 1970, hasta que la contraseña ha sido cambiada por última vez.
  4. Días que deben pasar hasta que la contraseña pueda ser cambiada.
  5. Días que han de pasar hasta que la contraseña deba ser cambiada.
  6. Días antes de caducar la contraseña en el que se avisará al usuario de que debe cambiarla.
  7. Días que pueden pasar después de que la contraseña caduque, antes de deshabilitar la cuenta del usuario (si no se cambia la contraseña).
  8. Días, desde el 1 de enero de 1970, desde que la cuenta está deshabilitada.
  9. Campo reservado.
Cuando un usuario entra en el sistema, se le sitúa en su directorio home y se ejecuta el intérprete de comandos (shell) configurado. De este modo ya puede empezar a trabajar. Sólo el root del sistema (o los usuarios de su grupo) tienen permiso para manipular la información de los usuarios y grupos, darlos de alta, de baja, etc. Existen muchos comandos para manipular todo esto. Cada uno de ellos tiene, además, varios parámetros diferentes para gestionar todos los campos que hemos visto anteriormente de forma amena. A continuación mostramos algunos de estos comandos:

  • adduser: nos sirve para añadir un nuevo usuario al sistema. La forma como éste se añade (si no le especificamos nada) se puede configurar en el fichero /etc/adduser.conf. Se le pueden pasar multitud de opciones diferentes para especificar el directorio home, el shell que hay que utilizar, etc.
  • useradd: crea un nuevo usuario o cambia la configuración por defecto de los mismos. Este comando y el anterior nos pueden servir para realizar las mismas acciones.
  • usermod: con este comando podemos modificar la mayoría de los campos que se encuentran en el fichero de passwd y shadow, como el directorio home, el shell, la expiración de la contraseña, etc.
  • chfn: cambia la información personal del usuario, contenida en el campo de comentarios del fichero de passwd.
  • chsh: cambia el shell del usuario.
  • deluser: elimina un usuario del sistema, borrando o guardando todos sus ficheros según los parámetros que le pasemos, haciendo copia de seguridad de los mismos o no, etc. La configuración que se utilizará por defecto con este comando está especificada en el fichero /etc/deluser.conf.
  • userdel: comando con las mismas posibilidades que el anterior.
  • passwd: nos sirve para cambiar la contraseña de un usuario, la información de expiración de las mismas o para bloquear o desbloquear una determinada cuenta.
  • addgroup: permite añadir un grupo al sistema.
  • groupadd: lo mismo que el comando anterior, pero con diferentes parámetros.
  • groupmod: nos permite modificar la información (nombre y GID)
  • de un determinado grupo.
  • delgroup: elimina un determinado grupo. Si algún usuario todavía lo tiene como primario, no se podrá eliminar.
  • groupdel: igual que en el caso anterior.
  • gpasswd: nos sirve para cambiar la contraseña del grupo.

Este material a sido en algunas partes basado en su fuente y en otras a sido escrito textual.

Fuente: Sistema operativo GNU Linux Básico

0 comentarios:

Publicar un comentario