Está en la página 1de 9

SISTEMAS LINUX: CONFIGURACIÓN Y ADMINISTRACIÓN

GESTIÓN DE USUARIOS Y GRUPOS


Comandos de gestión

1. GESTIÓN DE CUENTAS DE USUARIOS


1.1. useradd: creación cuentas de usuarios
1.2. passwd: asignación de contraseñas
1.3. chage: modificación fechas expiración contraseñas
1.4. adduser: creación cuentas de usuario
1.5. usermod: modificación cuentas de usuario
1.6. userdel: eliminación cuentas de usuario
1.7. Desactivación cuentas de usuario
2. GESTIÓN DE GRUPOS
2.1. groupadd: Creación de nuevos grupos.
2.2. groupmod: Modificación de los grupos.
2.3. groupdel: Eliminación de los grupos.
2.4. Añadir usuarios a un grupo (usermod, adduser, gpasswd)

Nota: La gestión de usuarios y grupos presupone tener privilegios de root para poder utilizar
los comandos correspondientes.

1
UNIX-LINUX Gestión de usuarios y grupos.

1. GESTIÓN DE CUENTAS DE USUARIOS


Los comandos básicos que vamos a ver para la creación de usuarios son: useradd, passwd,
chage, adduser, usermod y userdel

1.1. useradd: creación cuentas de usuarios


Para crear una nueva cuenta de usuario utilizaremos el comando useradd.
Sintaxis general:

useradd [-opciones ...] usuario

Opciones:
-c Comentario Podemos incluir hasta 5 informaciones distintas separadas por comas. Estas
informaciones deberían corresponderse con los campos: Nombre
completo, Dirección de la oficina, Teléfono de la oficina, Teléfono de
casa. Si en dichas informaciones se incluyen espacios hay que poner
todo entre comillas. Si en algún campo no deseamos poner nada,
simplemente ponemos las comas sin nada.

-d directorioconexión De manera predeterminada, el directorio de conexión del usuario es


/home/usuario. Con –d podemos especificar un directorio distinto,
indicando siempre su trayectoria absoluta. En cualquier caso, dicho
directorio sólo se creará si especificamos el parámetro –m. Si no
especificamos –m, el directorio debe existir previamente.

-m Esta opción es el comando explícito para crear el directorio inicial del


usuario. Importante: si no lo ponemos no se crea el directorio de
conexión del usuario, así que debe ser una de las opciones obligatorias
al crear un usuario normal.

-e fechaexpiracion De forma predeterminada la cuenta nunca expira. Si deseamos que la


cuenta tenga una fecha de expiración tendremos que especificarla con
el siguiente formato: YYYYMMDD, por ejemplo: -e 20091028 para que
expire el 28 de octubre de 2009. (notar que no se dejan espacios).

-f diasdegracia Con esta opción podemos especificar el número de días que se podrá
seguir utilizando la cuenta una vez que esta haya expirado. Valores
posibles:
0 indica que la cuenta se desactiva de inmediato.
-1 la cuenta no se desactivará nunca.
nº siendo nº un valor positivo (1,2, 3, ...). Por ejemplo, -f 3 dejará
que una cuenta exista durante tres días después de que una cuenta
haya expirado.

-g grupoprincipal Grupo de conexión. Con esta opción especificamos el grupo


predeterminado con el que el usuario trabaja al iniciar sesión.
Podemos usar el nombre o el número del grupo (gid). Importante: si
especificamos esta opción el grupo debe existir previamente, esto
es, hay que crearlo antes de utilizar esta opción. Si no
2
UNIX-LINUX Gestión de usuarios y grupos.

especificamos esta opción, se creará automáticamente un grupo con el


mismo nombre y GID que la cuenta del usuario. Observación: El
grupo de conexión se refleja en el fichero /etc/passwd (no en
/etc/group)
-G grupo,grupo,... Miembro de otros grupos. Nos permite especificar los grupos adicionales
a los cuales pertenecerá el nuevo usuario. Importante: NO dejar
espacios antes ni después de las comas. Observación: en los grupos
del fichero /etc/group estarán únicamente los usuarios que se han
agregado a dichos grupos con esta opción (no con –g, grupo de
conexión)

-u uid [-o] De manera predeterminada, useradd encontrará la UID siguiente de la


que se disponga y la usará. Esta opción nos permite asignar un valor
UID determinado al usuario. El UID debe ser un valor único para el
usuario. No obstante, si por alguna razón, debemos utilizar UID no
únicos, tendremos que añadir la opción –o.

-s shelldeconexión El shell de conexión es el primer programa que se ejecuta cuando un


usuario entra en el sistema. Éste suele ser un entorno de líneas de
comandos. De manera predeterminada este es el Bourne Again Shell
(/bin/bash).

usuario ÚNICO PARÁMETRO OBLIGATORIO. Debemos especificar el


login del nuevo usuario.

1.2. passwd: asignación de contraseñas


Una vez creada la cuenta del usuario debemos asignarle una contraseña.

Las contraseñas pueden contener números, letras y signos de puntuación, distinguiendo entre
mayúsculas y minúsculas. No utilizar espacios ni teclas de función. Lo mejor es no incluir
nombres, palabras de diccionarios, fechas de nacimiento o direcciones.

En linux las contraseñas no están diseñadas para que puedan ser recuperadas. Si olvidamos la
contraseña, el superusuario “root” no la podrá recuperar pero sí podrá crearnos otra.

El comando passwd nos permite configurar algunos aspectos de la contraseña, tales como:
fijar una fecha de expiración de la misma, fijar un límite en el número de intentos de inicio de
sesión fallidos, etc. A continuación os detallo algunas de estas opciones:

Sintaxis general:

passwd [-opciones ...] usuario

Opciones de expiración:
-n diasmin Número mínimo de días que tienen que transcurrir entre un cambio de contraseña
y otro. Un valor 0 indica que el usuario puede cambiarla siempre que
quiera.
-x diasmax Número máximo de días que la contraseña será válida después de ser cambiada.
3
UNIX-LINUX Gestión de usuarios y grupos.

-w diassaviso Indicamos el número de días en los que se le irá indicando al usuario la


necesidad de cambiar su contraseña antes de que caduque. Aviso (Warning).
-i inactividad Indicamos el número de días de inactividad después de que la contraseña ha
expirado y antes de que sea bloqueada deberá contactar con el
administrador para poder usarla de nuevo. Un valor de 0 deshabilita esta
característica.
Opciones de mantenimiento:
-l (lock) Con esta opción root puede bloquear la cuenta del usuario especificado.
-u (unlock) Con esta opción root puede desbloquear la cuenta del usuario especificado.
-d (delete) Con esta opción root puede eliminar la contraseña del usuario especificado.
-S En mayúscula (en minúscula nos intentaría cambiar el shell). Esta opción nos informa
del estado de la cuenta. La primera parte nos indica si la cuenta está bloqueada (L), si no
tiene passwd o si la tiene y esta desbloqueada (P). A continuación nos informa de la
fecha del último cambio de contraseña. Seguidamente nos informa de los días mínimos,
máximos, de aviso y de inactividad establecidos para la contraseña.
-a (all) Nos informa del estado de todas las cuentas. Solo puede utilizarse junto con –S.
-e (expire) El usuario es forzado a cambiar su contraseña en el próximo inicio de sesión.

Ejemplo:
Creamos una nueva cuenta:

Le asignamos una contraseña: (igual que el login)

A continuación cambiamos los parámetros de expiración de la contraseña. La contraseña de lucas


expirará dentro de seis meses (180 días), durante 5 días antes de que expire se le avisará de que
debe cambiar la contraseña.

Mostramos la información

1.3. chage: modificación fechas expiración contraseñas


La herramienta chage modifica el número de días entre cambios de contraseña y la fecha del
último cambio de contraseña. Esta información es utilizada por el sistema para determinar

4
UNIX-LINUX Gestión de usuarios y grupos.

cuando un usuario debe cambiar su contraseña.


Para verificar cuándo ha cambiado por última vez su contraseña un usuario, y cuantos días
entre cambios de contraseña tiene configurada la cuenta, se puede utilizar chage con la
opción -l. Por ejemplo:

El usuario "lucas" ha cambiado por última vez su contraseña el día 26 de febrero de 2021, y la
misma expira el 25 de agosto.
Otra forma de obtener la misma información (aunque en un formato más sintético) es
utilizando la herramienta passwd con la opción -S:
Por razones de seguridad, es altamente recomendable habilitar la expiración (o
envejecimiento) de contraseñas para cuentas de usuario. De esta forma se fuerza a los
usuarios a cambiar su contraseña periódicamente.
Por ejemplo, para que el usuario "lucas" deba cambiar su contraseña cada 90 días,
ejecutaremos el comando chage con la opción -M:

Ahora se observa que la contraseña de "lucas" expirará el 27 de mayo de 2021.

1.4. adduser: creación cuentas de usuario


El comando adduser es un guion. Está muy bien para crear cuentas individuales.
Nota: igual que está el guión adduser para crear cuentas de usuario, tenemos también el guión
addgroup para crear grupos.
Ejemplo de uso: creación de la cuenta prueba1

5
UNIX-LINUX Gestión de usuarios y grupos.

Como vemos, sólo nos permite asignar la contraseña e introducir las informaciones
correspondientes al campo de Comentario. El resto de opciones los genera
automáticamente.
Los siguientes comandos nos permiten comprobar algunos aspectos de la creación automática:
¿crea un grupo de conexión con GID y nombre igual al UID del usuario? ¿Crea el directorio
de conexión?
Comando id nos indica el uid (identificador de usuario) gid (identificador de grupo)

1.5. usermod: modificación cuentas de usuario


Una vez creada una cuenta de usuario podemos cambiar prácticamente cualquier dato de la
misma utilizando el comando usermod:

Sintaxis general:

usermod [-opciones ...] usuario


Opciones:

Prácticamente son las mismas que las vistas en el comando useradd. A continuación
detallamos las diferencias o aspectos más significativos.
6
UNIX-LINUX Gestión de usuarios y grupos.

-c comentario Nos permite modificar los datos personales del usuario. Su principal
inconveniente es que no nos permite modificar únicamente los datos
de un campo determinada sino que asignará el nuevo contenido
sustituyendo todos los datos anteriores. Para poder modificar un
campo concreto podemos utilizar el comando chfn con la opción
adecuada:
-f 1er campo, en principio el nombre completo (full-name)
-o 2do campo, en principio la ubicación de la oficina (office)
-p 3er campo, en principio el teléfono de la oficina (phone)
-h 4o campo, en principio el teléfono de casa (home-phone)
-m 5º campo, en principio el campo otros, más informacion (more).

-d nuevodir [-m] Podemos cambiar la ubicación y/o el nombre del directorio de conexión
indicando su nueva trayectoria absoluta (Importante, hay que incluir
al final de la trayectoria el login del usuario). Si cambiamos su
ubicación, para que el contenido del directorio actual se mueva al
nuevo directorio, debemos especificar el parámetro –m (en este caso
de MOVE no de MAKE). Por otro lado, si le cambiamos el nombre al
directorio, lo lógico es que también deseemos cambiar el login del
usuario para que se corresponda con el nuevo nombre de su directorio
de conexión, para ello deberemos utilizar la opción –l

-a –G grupo,grupo IMPORTANTE: Nos permite añadir al usuario en otros grupos. Si no


utilizamos la opción –a hará una asignación, esto es, el usuario dejará
de ser miembros de los grupos que no se especifiquen explícitamente.
Con la opción –a añadimos al usuario a los grupos especificados sin
afectar a los otros grupos a los que pudiese pertenecer.
-l nuevologin Nos permite cambiar el login de conexión del usuario.

1.6. userdel: eliminación cuentas de usuario


Para eliminar una cuenta y su directorio de conexión podemos utilizar el comando userdel.

Sintaxis general:

userdel [-rf] usuario

Opciones:

Si no especificamos ninguna opción, borraría la cuenta del fichero /etc/passwd, pero su


directorio de conexión y todos sus ficheros continuarán existiendo en el sistema. En este caso,
lo único que cambiaria es que, en la propiedad de los mismos, en lugar de aparecer el login
del usuario aparecerá el uid que se le había asignado. Ojo, porque si creamos un nuevo
usuario y le asignamos el mismo uid, será el nuevo propietario de todos esos ficheros y
directorios. Si no queremos que ocurra esto, deberíamos reasignar la propiedad de todas las
cosas del usuario anterior o bien, eliminarlas, y la mejor manera de hacerlo es mediante el
comando find:

find / -user uidcorrespondiente -exec chown nuevopropietario {} \;


find / -user uidcorrespondiente -exec rm –r {} \;
7
UNIX-LINUX Gestión de usuarios y grupos.

-r[f] Especificando la opción –r se eliminará también el directorio de conexión del


usuario. Podemos incluir también la opción f, para forzar la eliminación de los
ficheros de dicho directorio incluso si no son propiedad del usuario de la cuenta
eliminada.

1.7. Desactivación cuentas de usuario


Es posible que deseemos o necesitemos desactivar temporalmente una cuenta sin
eliminarla, de forma que el usuario implicado no pueda iniciar sesión eventualmente.

Para bloquear una cuenta de usuario tenemos dos formas: passwd –l usuario
usermod -L usuario
Para desbloquear la cuenta también tenemos dos formas: passwd –u usuario
usermod -U usuario

2. GESTIÓN DE GRUPOS.

Los comandos básicos para la gestión de grupos son: groupadd, gpasswd, groupmod y
groupdel.

2.1. groupadd: Creación de nuevos grupos.

Sintaxis general:

groupadd [-g gid [-o]] nuevogrupo

Opciones:

Si no especificamos ninguna opción, se crea el nuevo grupo con el siguiente número de


identificación disponible (gid).

-g gid [-o] Con estas opciones podemos determinar explícitamente el gid asignado al nuevo
grupo. Por defecto cada grupo debe tener un gid único, no obstante, si por
alguna razón necesitamos que dos o más grupos tengan el mismo gid, debemos
forzar su asignación con la opción –o (letra o).

2.2 groupmod: Modificación de los grupos.

Sintaxis general:

groupmod [-g gid [-o]] [-n nuevonombre] grupo

Opciones:

-g gid [-o] Podemos cambiar el gid del grupo especificado e incluso forzar a que sea uno ya
existente.
8
UNIX-LINUX Gestión de usuarios y grupos.

-n Esta opción nos permite cambiar el nombre del grupo por nuevo nombre
especificado. Por ejemplo, un grupo que actualmente se llama contables y lo
queremos llamar contabilidad: sudo groupmod –n contabilidad
contables

2.3 groupdel: Eliminación de los grupos.

Sintaxis general:

groupdel grupo

No tenemos ninguna opción relevante a la hora de eliminar un grupo.

IMPORTANTE: Saber que para poder eliminar un grupo, este no debe ser el grupo principal
de ningún usuario (ver la siguiente salida de ejemplo):

2.4 Añadir usuarios a un grupo (usermod / adduser / gpasswd).


Para gestionar los miembros de un grupo tenemos las siguientes comandos: usermod,
adduser (no useradd) y gpasswd.
usermod –G nuevosgrupos usuario En este caso se eliminará el usuario de los
grupos secundarios a los que pertenezca y se
le asignará como miembro únicamente a los
especificados en el comando.
usermod -a –G nuevosgrupos usuario En este caso se añadirá el usuario a los grupos
especificados y se respetará la pertenencia a
los otros grupos de los que ya era miembro.
adduser usuario grupo Se añade el usuario al grupo existente.
gpasswd [opciones] usuario grupo Agrega o elimina el usuario al grupo.
-a agrega usuarios
-d elimina usuarios
-A asigna un administrador de grupo
-M define los miembros con derechos de
administración

Aclaraciones:
 En cualquiera de los casos NO se puede especificar más de un usuario.
 nuevosgrupos puede ser una lista de grupos separados por comas sin espacio y los grupos
se pueden especificar por su nombre o por su gid.

También podría gustarte