Administración de usuarios en Linux
Introducción
Linux es un sistema operativo multiusuario, por
lo tanto el mantenimiento de los usuarios del
sistema es una tarea que se realiza con
frecuencia.
En esta unidad aprenderemos a configurar, y
mantener las cuentas de los usuarios sus
directorios de trabajo y asignar permisos de
lectura, escritura y ejecución al sistema de
archivos.
Objetivos
Crear cuentas de usuarios en el S.O. Linux.
Conocer los recursos empleados por un usuario
del sistema.
Darle mantenimiento a las cuentas de usuario.
Asignar permisos a los usuario del sistema.
Tema 1:
Cuentas de Usuario
Cuenta de Usuario
Una cuenta de usuario, representa a una
persona o grupo de personas, a la cual se le
asigna un conjunto de permisos sobre un
sistema en particular.
Una cuenta de usuario consta de:
Nombre de usuario (Login)
Nombre real
Contraseña
Login : jdiaz
Permisos Nombre : Juan Diaz
Shell Contraseña : ********
Permisos : ........
Home Directory
otros
Uso de la cuenta de usuario
Login : jdiaz
Nombre : Juan Diaz
Contraseña : ********
Permisos : ........
Linux
Tipos de validación
La comprobación de la validez de una cuenta
de usuario puede ser realizada en el mismo
servidor (Host):
Logon Base de Datos de
Login : jdiaz usuarios Locales
Password : ****** Respuesta
LOGON Linux /etc/passwd
Cuentas de usuario por Defecto
Al configurarse Linux, se crean
automáticamente algunas cuentas de usuario,
estas son:
root
bin root
daemon
adm, etc.
bin
Cuentas de Usuarios
Gestión de usuarios
Como es fácil de suponer, una de las tareas
importantes de administración de un sistema
multiusuario es la gestión de usuarios. La
gestión de usuarios incluye los aspectos propios
que cabría imaginar en un sistema informático
en red:
Altas y bajas de usuarios
Mantenimiento de usuario
Privilegios de los usuarios
Cuentas de Usuarios
Cada cuenta de usuario tiene un único identificador
(UID: User ID).
Los números menores que 500 son reservados para
cuentas del sistema:
Root -> UID=0
Superusuario, utilizado por el administrador del sistema.
No tiene restricciones.
bin -> UID=1
El propietario de muchos de los programas ejecutables.
daemon -> UID=2
El propietario de muchos de los demonios del sistema.
Cuentas de Usuarios
Una cuenta consiste en toda la información que
requiere un usuario para poder pertenecer al
sistema Linux.
Login name
Contraseña (password)
Identificación del usuario (UID)
Identificación del grupo (GID)
Home Directrories
Mail (Correo electrónico)
Archivos de Inicio
Cuentas de Usuarios: /etc/passwd
La información de las cuentas se encuentra en un archivo:
/etc/passwd
Es un archivo tipo texto
Permiso de lectura para todos los usuarios.
Solo el superusuario (root) puede escribir en él.
Cada línea contiene la información de un usuario:
jmeza : x :543: 50 : Julio Meza: /home/jmeza:/bin/bash
login password UID GID comentario directorio shell
No usado hogar
Cuentas de Usuarios: /etc/shadow
Las contraseñas de los usuarios se encuentran
en el archivo:
/etc/shadow
Es un archivo tipo texto
Solo el superusuario (root) puede escribir en él.
Cada línea contiene la información de un usuario:
jmeza:$1$PK4M$9feuvlruyQU7:last:min:max:warm:inact:expire:nouse
login password envejecimiento
Grupos de usuarios
Cada usuario puede pertenecer a uno o a varios
grupos.
La relación de grupos válidos se encuentran
guardados en el archivo:
/etc/group.
Este archivo contiene una entrada para cada grupo
disponible.
contab : x : 50 : jmeza,pgarcia,msoto
grupo password GID Miembros del grupo
Tema 2:
Creación de cuentas de usuarios
Creación de Usuarios
Los pasos necesarios para crear una cuenta de
usuario son:
Editar el archivo /etc/passwd y agregar la línea correspondiente
al usuario a crear.
Editar el archivo /etc/group y agregar al grupo correspondiente.
Crear un directorio hogar para el usuario: “/home/user”
Copiar los archivos de inicialización (startup) en el directorio
hogar creado.
Asignar los permisos necesarios sobre los directorios y archivos.
Asignar un password inicial para el usuario.
Comando useradd
El comando useradd nos permite crear usuarios así como
cambiar algunos de los valores por defecto.
Para mostrar los valores por defecto use la opción “-D”.
Estos valores se encuentran en el archivo: “/etc/default/useradd”.
# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
El directorio SKEL es donde se almacenan la plantilla de archivos y directorios
que se copiarán en el directorio hogar del usuario.
Creando usuarios con valores por defecto
El comando useradd le permite crear usuarios
rápidamente, sin necesidad de especificar
mayores opciones, para cual tomará los valores
por defecto.
Ejemplo:
# useradd -c "Mario Rojas" mrojas
Creando usuarios con valores por defecto
Este comando realiza las siguientes actividades:
Una entrada en el archivo /etc/passwd será añadida:
mrojas:x:536:536:Mario Rojas:/home/mrojas:/bin/bash
Una entrada en el archivo /etc/shadow también será añadida:
El directorio /home/mrojas será creado y el contenido del
mrojas:!!:12297:0:99999:7:::
directorio /etc/skel será copiado ahí.
Debido a que no se especifico UID, se usará el siguiente UID
disponible.
La cuenta será creada pero el usuario no podrá acceder hasta que se
le asigne un password.
Configuración del entorno del usuario
Existen tres archivos en el directorio de un usuario que le
permiten configurar el entorno de su cuenta
automáticamente cuando entra en el sistema, cuando
arranca un subshell o ejecutar comandos cuando sale del
sistema.
Los nombres de estos archivos son :
.bash_profile
.bashrc
.bash_logout.
Modificando cuentas de usuario
Una vez que el usuario ha sido creado usted puede
realizar cambios manualmente o usando alguna de
las herramientas disponibles.
Linux provee del comando usermod para modificar
la información referente a una cuenta de usuario.
Este comando tiene opciones similares que el
comando useradd.
Eliminado cuentas de usuario
La mayoría de sistemas proveen de scripts para
eliminar usuarios, tales como userdel.
Ejemplo:
# userdel jaguilar
Para eliminar también el directorio hogar, use la
opción -r
# usedel -r jaguilar
Los valores de “envejecimiento”
El comando “chage” puede modificar
los valores de envejecimiento.
chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W
warn ] [ -I inactive ] [ -E expire ] [ -d
last_day ] user
Administrando Grupos
Para crear un grupo se usa el comando groupadd:
#groupadd contab
Para modificar un grupo se use el comando groupmod
#groupmod [-g gid [-o]] [-n name] group
Para eliminar un grupo se usa el comando groupdel
#groupdel contab
Para añadir un usuario a un grupo use el comando
#usermod -G contab jaguilar
Programas de Consistencia
El programa “pwck” verifica la consistencia de
los archivos /etc/passwd y /etc/shadow.
El programa “grpck” verifica la consistencia del
archivo /etc/group.
Tema 3:
Asignando permisos en Directorios y
Archivos
Permisos
Los permisos determinan quién puede tener acceso a los
archivos y directorios.
El conjunto de permisos es llamado “modo del archivo”.
Para visualizar los permisos del archivo utilice el comando
“ls –l”.
El primer carácter de cada línea identifica el tipo de archivo.
Los siguientes nueve caracteres de cada línea indican el conjunto de
permisos actuales del archivo.
# ls -l carta
-rw-r--r-- 1 lmendoza group 1050 Feb 27 carta
Categorías de acceso
Cada archivo tiene tres categorías de acceso:
Dueño o propietario del archivo (dueño).
Grupo al que pertenece el usuario (grupo) y,
Otros usuarios que tienen acceso al sistema (otros).
- rw- r- - r- -
Tipo Permisos Permisos Permisos
de del del para
archivo dueño grupo otros
Tipos de Permisos
A cada categoría de acceso le corresponden tres
tipos diferentes de permisos:
r : permiso de lectura
w : permiso de escritura
x : permiso de ejecución
- : permiso denegado
Efectos de los permisos
sobre archivos y directorios
Permiso Archivo Directorio
Ver los archivos en el
r Abrir el archivo
directorio
Modificar el Crear o eliminar archivos
w archivo en el directorio
x Ejecutar un archivo
Buscar y acceder al
directorio
Cambio de permiso
Se puede cambiar de permiso de 2 maneras:
Método simbólico.
Método octal.
Cambio de permiso: Método Simbólico
chmod <quien> <acción> <acceso> archivo
quien: u - usuario
g - grupo
o - otros
acción: + (otorga el permiso)
- (elimina el permiso)
acceso: r - lectura
w - escritura
x - ejecución
Cambio de permiso: Método Simbólico
$ ls -l texto1
-rw-r--r-- 1 jmendoza group 2133 Mar 12 texto1
$ chmod u+x texto1
$ ls -l texto1
-rwxr--r-- 1 jmendoza group 2133 Mar 12 texto1
$ chmod go+w texto1
$ ls -l texto1
-rwxrw-rw- 1 jmendoza group 2133 Mar 12 texto1
$ chmod g-w, o+x-r texto1
$ ls -l texto1
-rwxr---wx 1 jmendoza group 2133 Mar 12 texto1
Cambio de permiso: Método Octal
chmod <número octal> archivo
A cada permiso se le asigna un número
r=4 w=2 x=1
Ej.:
- rw- r-- --- equivale a 640
6 4 0
Cambio de permiso: Método Octal
$ ls -l carta
- rw- r-- r-- 1 jmendoza group 2133 Mar 12 carta
6 4 4
$ chmod 751 carta
$ ls -l carta
- rwx r-x --x 1 jmendoza group 2133 Mar 12 carta
7 5 1
Efectos del “umask” en archivos y directorios
umask, es una comando que define los
permisos por defecto para la creación de
archivos y directorios.
El valor por defecto es: “022”.
Archivos : complemento a 666
022
------
644 rw-r--r--
Directorios: complemento a 777
022
------
755 rwxr-xr-x
Cambiando de Dueño y Grupo
El root o el propietario del archivo puede
cambiar la propiedad del archivo, es decir
darle el archivo a otro usuario, o modificar el
grupo a que pertenece.
Para ello se utiliza los comandos “chown” y
“chgrp” respectivamente.
# ls -l carta
-rw-r--r-- 1 lmendoza group 1050 Feb 27 carta
# chown acaceres carta
# chgrp sistemas carta
# ls -l carta
-rw-r--r-- 1 acaceres sistemas 1050 Feb 27 carta
Tema 4:
Scripts del Sistema
Script del Sistema
Existen una serie de scripts, que se
ejecutan en el sistema y que afectan a los
usuarios que se conectan. Estos son:
Script de arranque: que se ejecutan en el
proceso de carga del sistema:
Script de Inicio Globales: que afectan a todos
los usuarios.
Script de Inicio Individuales: que afectan a un
usuario específico.
Script de Arranque
Son “shells-script” que se encuentran en el directorio
/etc/rc.d
Son ejecutados por el proceso init siguiendo las
instrucciones del fichero /etc/inittab
Se ejecutan con los máximos privilegios (privilegios de
root).
No es necesario que entre ningún usuario al sistema
para ejecutarse y se ejecutan una única vez al arrancar
el sistema.
Script de inicio Globales de Usuario.
Estos script se utilizan para configurar el entorno
global de los usuarios.
Estos archivos son el /etc/profile y el /etc/bashrc.
El archivo /etc/profile contiene variables de
entorno del sistema y programas de inicio.
El archivo /etc/bashrc contiene alias del sistema y
funciones.
Script de Inicio Individual de Usuario
Existen tres archivos en el directorio de un
usuario que le permiten configurar el entorno
individual de una cuenta. Estos archivos son
copiados del directorio /etc/skel, cuando el
usuario es creado.
Los nombres de estos archivos son:
.bash_profile
.bashrc
.bash_logout.
Script de Inicio Individual de Usuario
.bash_profile
Es el más importante de los tres. Es leído y los
comandos incluidos en él, ejecutados, cada vez
que el usuario entra en el sistema.
.bashrc
Es leído cuando el usuario arranca un subshell,
escribiendo por ejemplo bash en la línea de
comandos. Contiene alias personales y
funciones.
Script de Inicio Individual de Usuario
bash_logout
Es el fichero leído por bash, cuando salimos del
sistema. Podemos definir, por ejemplo que se borren
los ficheros temporales creados en nuestra última
sesión o registrar el tiempo que hemos estado
utilizando el sistema. Si .bash_logout no existe, ningún
comando será ejecutado a nuestra salida.
/etc/issue
El archivo /etc/issue es un archivo de texto
plano que permite personalizar la pantalla de
entrada al sistema. Se puede usar algunas
secuencias de “Escape” para insertar
información sobre el sistema.
/etc/motd
El archivo /etc/motd, messages of to day (mensaje
del día) es un archivo de texto que se muestra a
todos los usuarios que inicien sesión ese día.
Tradicionalmente, es usado por los
Administradores de Sistemas como una especie de
Boletín para comunicación con los usuarios.
Secuencia de Inicio
/etc/issue Mensaje antes del login
/etc/motd Mensaje después del login
/etc/profile
/etc/bashrc
/etc/usuario/.bashrc
/etc/usuario/.bash_profile
Resumen de la unidad
Las cuentas de usuario almacenan la
información de los ________ del sistema
y pueden ser utilizadas por aplicaciones
para acceder a recursos o por usuarios
comunes que se loguean al sistema.
El acceso al sistema de archivos es
controlado por ________ que serán
asignados a los usuarios del sistema, esto
mejora la seguridad del sistema.