Base de Conocimiento
Manual de Administración de Usuarios
Administrando y Gestionando Usuarios en Linux#
En este capitulo enseñaremos a usar las herramientas pertinentes para llevar a cabo la perfecta administración y gestión de usuarios en el servidor
La importancia de tener bien definida la gestión de nuestros usuarios en nuestro sistema operativo Linux le da la capacidad a usted como administrador de llevar un buen control sobre los accesos de sus usuarios así como los recursos a los cuales estos acceden.
Así mismo, cada una de las cuentas creadas por el administrador, permitirá conceder o retirar permisos sobre determinados ficheros, directorios, procesos, aplicaciones o dispositivos lo cual incrementara en mayor medida la seguridad y estabilidad de su servidor, lo cual hará menos vulnerable a su infraestructura.
El proceso de administración y gestión de usuarios en linux sera llevado a cabo por el usuario root del sistema operativo. Root tendrá la función de dar de alta usuarios así como de asignarles sus respectivos permisos y limitantes.
Sobre la administracion de Grupos#
La administracion de grupos bajo linux otorga al administrador la posibilidad de integrar a un conjunto de usuarios con ciertos provilegios y limitantes dentro de un grupo, en dicho grupo podran existir uno a mas usuarios que esten integrados en otro grupo diferente al inicial, todos estos de igual manera con mas o menos privilegios o limitantes que los anteriores. Esto tal vez les recuerde algun curso de matematicas sobre teoria de conjuntos y subconjuntos lo cual es muy parecido a lo que acabamos de explicar.
Estos grupos seran administrados y gestionados por comandos que veremos a lo largo de este capitulo.
Sobre los usuarios y sus permisos en ficheros y directorios#
Todos y cada uno de los usuarios creados por el administrador del sistema (root) tendran que venir acompañados de sus dos respectivos identificadores, el UID (User Identifier) y el GID (Group Identifier) estos identificadores hacen referencia al tipo de permisos y grupo al cual pertenecen los usuarios, asi mismo sirven al administrador (root) para saber si algun usuario realizo algun cambio sobre alguno de los fichero o carpetas.
Sobre los ficheros de configuracion referentes a los usuarios y sus contraseñas#
Usualmente el sistema operativo hace uso de tres importantes ficheros durante el proceso de alta de algun usuario en el sistema por parte del administrador (root), estos ficheros son:
- /etc/passwd
- /etc/shadow
- /etc/group
Los cuales son editados por el sistema luego de haber sido creados los usuarios por el administrador(root).
/etc/passwd#
En este fichero se encuentran almacenados los datos sobre los comandos y directorios de cada usuario dado de alta en el sistema los cuales seran iniciados una vez que el usuario entre al mismo.
La forma en que se presenta este fichero tiene la siguiente estructura
Usuario.-Nombre de la cuenta con la que el usuario se logeara para acceder al sistema
Password.-Contraseña de la cuenta del usuario que usara para logearse en el sistema
UID.-Identificador del Usuario
GID.-Identificador que indica a cual grupo pertenece el usuario
Informacion Adicional.-Informacion detallada del usuario
Home del Usuario.- Directorio de trabajo del usuario
Shell.- Bash particular con la que el usuario trabajara
/etc/group#
En este fichero se encuentran almacenados los datos sobre los grupos creados en el sistema asi como los miembros que pertenecen a cada grupo
La forma en que se presenta este fichero tiene la siguiente estructura
Grupo.-Nombre del grupo
Password.- Contraseña del grupo
GID.-Identificador que indica a cual grupo pertenece el usuario
Miembros.- Usuarios pertenecientes al grupo
/etc/shadow#
En este fichero se encuentran almacenados los datos sobre las contraseñas de cada usuario del sistema.
La forma en que se presenta este fichero tiene la siguiente estructura
Usuario.-Nombre de la cuenta con la que el usuario se logeara para acceder al sistema
Password Cifrado.- Contraseña del usuario cifrada
Parametros del Password.-Informacion particular sobre el alta de la cuenta y caducidad de la cuenta
Administracion de cuentas de Usuario#
Dando de alta cuentas de usuario#
Para dar de alta cuentas de usuario en el sistema usaremos el comando useradd el cual debera ser aplicado segun la siguiente estructura
useradd [opciones] nombreDelUsuario
Las opciones que pueden utilizarse en conjunto con el comando useradd son las siguientes:
| Opciones | Descripcion | |
|---|---|---|
-d |--home | Carpeta de trabajo que sera asignado al usuario Ejemplos a) -d /home/usuario1 b) -d /home/cmartinez c) -d /home/icastillo | |
-s |--shell | Version del Shell que sera asigana al usuario, entre las opciones disponibles estan: a) -s /bin/bash → Interprete de comandos de Linux equivalente a MS-DOS b) -s /sbin/nologin → El usuario no podra logearse en el sistema. Ideal para usuarios con acceso a Samba o FTP pero sin acceso al interprete de comandos | |
-g |--gid | Grupo principal al cual puede ser asignado un usuario Ejemplos a) -g Desarrollo b) -g Ventas c) -g Soporte | |
-G |--groups | Grupo secundario al cual puede ser asignado un usuario Ejemplos a) -G desarrolloJava b) -G ventasMedicas c) -G soportePHP | |
-u |--uid | Identificador que sera asignado al usuario\NOTA: Por defecto Linux asignara UID's a partir del numero 500 Ejemplos a) -u 501 b) -u 503 c) -u 504 | |
-e |--expiredate | Se usa para especificar la fecha en la cual expira la cuenta. Debe especificarse en el siguiente formato Año-Mes-Dia. Ejemplos a) -e 20100506 b) -e 20081224 c) -e 20090214 |
Ejemplo 1: Dar de alta al usuario carlos el cual tendra las siguientes caracteristicas:
- Nombre de usuario → carlos
- Directorio de Trabajo → /home/carlos
- Shell asignado → BASH
- Identificador para este usuario → 512
- Grupo principal de trabajo → desarrollo
- Grupo secundario de trabajo → capacitacion
Respuesta al Ejemplo 1
NOTA.- El nombre del usuario tiene que ser exactamente igual al nombre especificado en el directorio de trabajo de otra forma no sera posible ejecutar correctamente el comando
Asi mismo , no sera necesario crear antes el directorio de trabajo /home/carlos, esto es debido a que el comando useradd lo creara por default
Ejemplo 2: Dar de alta al usuario ilemus el cual tendra las siguientes caracteristicas:
- Nombre de usuario → ilemus
- Directorio de Trabajo → /home/ilemus
- Shell asignado → BASH
- Identificador para este usuario → 515
- Grupo principal de trabajo → desarrollo
- Grupo secundario de trabajo → ventas
- Tiempo de vida de la cuenta → 5 años
Respuesta al Ejemplo 2
Asignando contraseñas a las cuentas de usuario#
Ahora que ya sabe como dar de alta usuarios le mostraremos la forma de asignarle una contraseña Para asignar contraseñas a las cuentas de usuario haremos uso del comando passwd el cual debera ser aplicado segun la siguiente estructura
passwd nombreDelUsuario
Ejemplo 3: Asignar contraseña al usuario
- ilemus
- carlos
[root@localhost ~]# passwd ilemusCambiando la contraseña del usuario ilemus. Nueva UNIX contraseña: xxxxxx Vuelva a escribir la nueva UNIX contraseña: xxxxxx passwd: todos los tokens de autenticación se actualizaron exitosamente. }}}
[root@localhost ~]# passwd carlosCambiando la contraseña del usuario ilemus. Nueva UNIX contraseña: xxxxxx Vuelva a escribir la nueva UNIX contraseña: xxxxxx passwd: todos los tokens de autenticación se actualizaron exitosamente. }}}
Eliminando cuentas de usuario#
Para eliminar cuentas de usuario en el sistema usaremos el comando userdel el cual debera ser aplicado segun la siguiente estructura
userdel [opciones] nombreDelUsuario
las opciones que pueden utilizarse en conjunto con el comando useradd son las siguientes:
| Opciones | Descripcion | |
|---|---|---|
-f |--force | Fuerza a remover el usuario del sistema aunque este este activo en el mismo | |
-r |--remove | Elimina la carpeta de trabajo del usuario asi como todo su contenido dentro de él |
Ejemplo 4: Dar de baja al usuario carlos asi como tambien eliminar su directorio de trabajo
Respuesta al Ejemplo 4
Administracion de Grupos#
Dando de alta grupos#
Para dar de alta grupos en el sistema usaremos el comando groupadd el cual debera ser aplicado segun la siguiente estructura
groupadd [opciones] nombreDelGrupo
Las opciones que pueden utilizarse en conjunto con el comando groupadd son las siguientes:
| Opciones | Descripcion | |
|---|---|---|
-g |--gid | Define un GID para un grupo | |
-r | | Define un grupo del sistema. Un grupo del sistema es aquel que tiene un numero de identidad (GID) de grupo por debajo del numero 500 | |
-f |--force | Forza al sistema a crear el grupo aunque este ya exista. |
Ejemplo 5: Dar de alta el grupo desarrollo asi como el grupo capacitacion dichos grupos tendran las siguientes caracteristicas:
- Nombre de los grupos → desarrollo y capacitacion
- Identificador para estos grupos → 520 y 530
Respuesta al Ejemplo 5
Modificando grupos#
Para modificar grupos dados de alta en el sistema usaremos el comando groupmod el cual debera ser aplicado segun la siguiente estructura
groupmod [opciones] nombreDelGrupo
Las opciones que pueden utilizarse en conjunto con el comando groupadd son las siguientes:
| Opciones | Descripcion | |
|---|---|---|
-g |--gid | Define un nuevo GID para un grupo | |
-n |--new-name | Permite cambiar el nombre del grupo por otro |
Ejemplo 6: Modificar el grupo “capacitacion” con las siguientes caracteristicas Renombrar el grupo por → marketing Cambiar su GID de 530 a→ 540
Respuesta al Ejemplo 6
Eliminando grupos#
Para eliminar grupos en el sistema usaremos el comando groupdel el cual debera ser aplicado segun la siguiente estructura
gruopdel nombreDelGrupo
Ejemplo 7: Eliminar el grupo “desarrollo”
Ahora que tiene el conocimiento sobre como administrar y gestionar tanto cuentas de usuario como grupos de trabajo pasaremos al siguiente tema el cual habla sobre los permisos que deben ser asignados tanto a carpetas como archivos
Administracion de Permisos#
Los comandos que usaremos para asignar permisos tanto a carpetas como a ficheros seran los sigueintes:
La forma es como deben ser usados estos comando sera de la siguiente manera:
chmod#
Para modificar permisos de escritura, lectura y/o ejecucion se debera seguir la siguiente estructura
chmod [UGO] archivo/directorio
Las letras U,G y O son interpretadas de la siguiente manera
U.-Permisos para el usuarioG.-Permisos para el grupo O.-Permisos para otros}}}
La forma en como son asignados los permisos para usuario, grupo y otros se forman de la siguiente manera
U= rwx G= rwx O= rwx
Las letras 'r' 'w' y 'x' tienen la siguiente funcion:
| Descripcion | ||
|---|---|---|
r |read | Lectura de un archivo | |
w |write | Escritura de un archivo | |
x |execute | Ejecucion de un archivo |
Las letras 'r' 'w' y 'x' tendran que ser substituidas por un numero 1 o un numero 0 dependiendo del tipo de permisos que se asignen
La funcion del numero '1' y el numero '0' es la siguiente:
| Descripcion | ||
|---|---|---|
| 1 | Permite leer, escribir o ejecutar un archivo | |
| 0 | Restringe leer, escribir o ejecutar un archivo |
Una vez subtituidas las letras por numeros tendremos como resultado un numero binario el cual debera ser tranformado a base 10 y finalmente debera ser asignado a la letra 'U' 'G' u 'O'.
Una forma mas rapida de asignar permisos tanto a archivos como a carpetas es mediante la aplicación del mismo comando pero con la siguiente nueva estructura.
chmod u=rwx,g=rwx,o=rwx [archivo/directorio]
En donde las letras 'u' , 'g' , 'o' , 'w' , 'r' y 'x' tienen la siguiente funcion:
| Descripcion | ||
|---|---|---|
u |usuario | Usuario | |
g |grupo | Grupo | |
o |otros | Otros | |
r |read | Lectura de un archivo | |
w |write | Escritura de un archivo | |
x |execute | Ejecucion de un archivo |
chown#
Para modificar el grupo y/o propietario de un archivo o directorio se debera seguir la siguiente estructura
chown [nuevoPropietario:nuevoGrupo] [archivo/directorio]
Ejemplo 9:
Paso 1
Dar de alta al usuario carlos el cual tendra las siguientes caracteristicas:
- Nombre de usuario → carlos
- Directorio de Trabajo → /home/carlos
- Shell asignado → BASH
- Identificador para este usuario → 512
- Grupo principal de trabajo → desarrollo
- Grupo secundario de trabajo → capacitacion
Paso 2
Logearse con la cuenta de “root” y una vez dentro crear un archivo con la ayuda del editor de textos VI el cual debera ser guardado con el nombre de “prueba1.txt”
Paso 3
Verificar los permisos del archivo “prueba 1”
[root@localhost ]# ls -l prueba1.txt
El anterior comando nos debera mostrar informacion parecida a la siguiente:
Paso 4
Hacer los siguientes cambios al archivo prueba1.txt Nuevo propietario → carlos Nuevo grupo → desarrollo Permisos para el propietario → Lectura,Escritura y Ejecucion = 7 Permisos para el grupo → Lectura y Ejecucion = 5 Permisos para otros → ninguno
Respuesta al Ejemplo 9
Para comprobar los cambios solo basta ejecutar nuevamente el comando ls -l
chgrp#
A diferencia de chown este comando solo sirve para modificar el grupo de un archivo o directorio , para hacer uso de este comando se debe seguir la siguiente estructura.
chown [nuevoGrupo] [archivo/directorio]
Ejemplo 10: En base al ejemplo 9 asignaremos al archivo prueba1.txt el grupo → capacitacion
Respuesta al Ejemplo 9
Para comprobar los cambios solo basta ejecutar nuevamente el comando ls -l
| | Tweet | Este obra está bajo una licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.5 México. | ![]() |
