Gestion de usuarios y grupos

De Hacklab La Paz - r00thouse

El sistema operativo GNU/Linux es un sitema multiusuario, es decir múltiples usuarios pueden acceder al sistema. Para que esto sea posible cada usuario cuenta con una cuenta de usaurio. La manera de gestionar los usuarios es gestionando estas cuentas de usuario.

Al mismo tiempo los usuarios son mejor gestionables dividiéndolos en grupos lo que se conoce como grupos de usuarios o grupos.

En este artículo se describirá brevemente la administración básica de usuarios y grupos en el sistema operativo GNU/Linux.

Usuarios

Es una cuenta que tiene acceso a la computadora, el nivel de control de esta dependerá del tipo de cuenta asignada al usuario. La cuenta root, es el usuario que tiene por defecto todos los permisos y control completo sobre el computador y está presente por defecto.

Existen también las cuentas de usuarios estándar y administradores, cuyo control del computador se diferencia principalmente en que un usuario estándar no puede hacer cambios significativos, en cambio un administrador si.

Grupos

Los grupos son una forma de clasificar cuentas de usuarios, existen grupo de administradores y de usuarios estándar, es posble asignar cuentas de usuario a distintos grupos y a la vez crear grupos según convenga. Un usuario puede ser miembro de muchos grupos.

Administrando usuarios y grupos

Existen diversas herramientas para hacerlo, desde herramientas de línea de comandos hasta interfaces gráficas de usuario. Sin embargo, las herramientas de línea de órdenes están presentes por defecto.


Comprobando usuarios

Algunos comandos de utilidad a continuación:

$ whoami

muestra en la pantalla el nombre del usuario logueado en la terminal acutal.

$ users

muestra los usuarios logueados actualmente.

groups

muestra los grupos a los que el usuario actual pertenece.

Convertirse en root

Pueden existir muchas cuentas en el sistema, pero podemos convertirnos en el usuario root o adquirir sus permisos, una forma de hacerlo esescribiendo en una terminal:

su

También funcionaría:

sudo su

A continuación escribiendo la contraseña de root.

Es mejor no usar la cuenta root a menos que sea muy necesario, en cambio es posible usar cualquier orden antecediendo la ordén sudo que luego de introducir la contraseña de superusuario nos dará los privilegios de root temporalmente, esto para evitar hacer daños al sistema no desados.

UID y GID

Cada usuario tien asignado un ID o identifiación de ahí viene UID (User ID), el archivo /etc/passwd contiene una lista mas detallada con la información de cada usuario, si abrimos este archivo podremos comprobar el UID del usuario actual buscando por el nombre del usuario, la línea de un usuario por ejemplo se ve así:

 runno:x:1000:1000:runno,,,:/home/runno:/bin/bash

Esta línea describe al usuario runno que tiene un UID=1000, en derivados de Debian, los usuarios creados manualmente empiezan a contarse desde 1000, si se añadiría otro usuario manualmente su UID sería 1001, si se añade otro sería 1002 y así sucecivamente, esto por que los UID de 0 a 99 están reservados para el uso del sistema. Si vemos el mismo archivo nos daremos cuenta que el UID del usuario root es 0. A partir del kernel 2.2 el límite de usuarios posibles es 65536.

Luego del UID se especifíca /home/runno que es la carpeta home del usuario runno, después también se especifíca la shell por defecto que este usuario usa y es bash ya que se muestra /bin/bash.

El GID es similar al UID sólo que especifíca el ID de un grupo, el archivo '/etc/group' específica a más detalle el ID de cada grupo y también los usuarios miembros.

Añadir y quitar Usuarios

el comando userradd es el que se usa por defecto para añadir un nuevo usuario al sistema tiene varias opciones que se pueden ver con useradd --help, en el ejemplo siguiente crearemos un usuario estándar.

# useradd nuevousuario1

Aparecerá un pequeño modo interactivo en donde sólo es necesario introducir la contraseña del nuevo usuario y luego se creará un usuario llammado nuevousuario1 y también se creará una carpeta home para este usuario en /home/, además por defecto este usará la shell bash, y tampoco tendrá fecha de expiración, pero todo ello se puede cambiar después.
El comando userdel es el contrario de useradd, y borra un usuario existente, este tiene tres opciones: -r: para borrar todos los archivos que pertenecen a este usuario incluyendo su mismo directorio home. -f: Si se combina con -r forzará el borrado de los archivos incluso si el usuario está actualmente logueado. -h: muestra ayuda. El siguiente ejemplo borrará al usuario veiymar incluyendo sus archivos propios.

# userdel veiymar -r

También puede usarse el comando deluser para borrar usuarios de esta manera:

sudo deluser lebinz

En el ejemplo de arriba hemos borrado el usuario 'lebinz'

Modificar cuentas existentes

Una cuenta de usuario puede midificarse de muchas maneras según convenga. Por ejemplo se puede añadir un tiempo de expiración auna cuenta de usuario, cambiar el tipo de cuenta, cambiar contraseñas, bloquear/desbloquear cuentas, añaidr y quitar suarios a grupos , etc.

usermod

El programa usermod permite modificar una cuenta de usuario, por ejemplo se puede cambiar el direcotrio home del usuario nombrado a otro lugar, cambiar la contraseña, bloquear la cuenta del usuario, entre otros. Como de costumbre las opciones de usermod se pueden ver con --help o con sudo man usermod.

# usermod -L -s /bin/dash nuevousuario1

La orden anterior bloquea la cuenta nuevousuario1 y además cambia su shell por defecto a dash.

# usermod -U /bin/dash nuevousuario1

Desbloquea la cuenta nuevousuario1 .

chage

Este comando es espcializado en cambiar el tiempo de expiración de una cuenta tiene varias opciones, en resumen se puede ajustar en cuanto tiempo le queda a una cuenta antes de expirar, cuando una cuenta expira esta es deshabilitada y puede ser habilitada de nuevo por un administrador.

# chage -E 2014/06/15 -W 5 jade

Establece la fecha de expiración del usuario jade al 15 de junio de 2014 pero también establece un aviso, que se mostrará al usuario 5 días antes de que su cuenta expire para que este usuario cambie su contraseña antes de que la cuenta expire.

Añadir, modificar y borrar Grupos

El comando groupadd añade un grupo al sistema, la idea de tener grupos es mantener el sistema ordenado incluso a nivel de cuentas de usuario donde por ejemplo:

# groupadd proyecto3

Que crea el grupo proyecto3.

El comando groupmod modifica las opciones del grupo al igual que usermod, por ejemplo podemos cambiar el nombre del grupo proyecto3 a proyecto_limpieza con:

# groupmod --new-name proyecto_limpieza proyecto3

Existe el comando gpasswd que entre otras cosas permite añadir y quitar usuarios de determinado grupo con las opciones -a y -d respectivamente, por ejemplo la siguiente línea añadira el usuario jade al grupo proyecto_limpieza

# gpasswd -a jade proyecto_limpieza

El siguiente ejemplo añade un usuario a un grupo de administradores que en este caso es sudo:

# gpasswd -a gensue sudo


Para borrar grupos se usa groupdel.

Links de interés

Continuar con el Curso

Continuar aquí