Rh199 8.2 Student Guide 1
Rh199 8.2 Student Guide 1
The contents of this course and all its modules and related materials, including handouts to audience members, are
Copyright © 2020 Red Hat, Inc.
No part of this publication may be stored in a retrieval system, transmitted or reproduced in any way, including, but
not limited to, photocopy, photograph, magnetic, electronic or other record, without the prior written permission of
Red Hat, Inc.
This instructional program, including all material provided herein, is supplied without any guarantees from Red Hat,
Inc. Red Hat, Inc. assumes no liability for damages or legal action arising from the use or misuse of contents or details
contained herein.
If you believe Red Hat training materials are being used, copied, or otherwise improperly distributed, please send
email to training@redhat.com or phone toll-free (USA) +1 (866) 626-2994 or +1 (919) 754-3700.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, JBoss, Hibernate, Fedora, the Infinity logo, and RHCE are
trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS® is a registered trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or
other countries.
The OpenStack® word mark and the Square O Design, together or apart, are trademarks or registered trademarks
of OpenStack Foundation in the United States and other countries, and are used with the OpenStack Foundation's
permission. Red Hat, Inc. is not affiliated with, endorsed by, or sponsored by the OpenStack Foundation or the
OpenStack community.
Colaboradores: Artur Glogowski, Fernando Lozano, Latha Murthy, Samik Sanyal, Chetan Tiwary,
Achyut Madhusudan, Rudolf Kastl, Rob Locke, Heider Souza, Michael Phillips
Convenciones del documento ix
Introducción xi
RHCSA Rapid Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Orientación sobre el entorno del aula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Internacionalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
1. Acceder a sistemas y obtener soporte 1
Acceso a la línea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Cuestionario: Acceso a la línea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Configuración de autenticación basada en claves SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Ejercicio Guiado: Configuración de autenticación basada en claves SSH . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Obtención de ayuda en el portal de clientes de Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Ejercicio Guiado: Obtención de ayuda en el portal de clientes de Red Hat . . . . . . . . . . . . . . . . . . . . . . . 33
Detección y resolución de problemas con Red Hat Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Cuestionario: Detección y resolución de problemas con Red Hat Insights . . . . . . . . . . . . . . . . . . . . . . . . 44
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2. Navegar por sistemas de archivos 47
Descripción de conceptos de la jerarquía del sistema de archivos Linux . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Cuestionario: Descripción de conceptos de la jerarquía del sistema de archivos Linux . . . . . . . . . 51
Administración de archivos con las herramientas de línea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Ejercicio Guiado: Administración de archivos con las herramientas de línea de
comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Creación de enlaces entre archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Ejercicio Guiado: Creación de enlaces entre archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3. Administración de usuarios y grupos locales 73
Descripción de conceptos de usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Cuestionario: Descripción de conceptos de usuarios y grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Obtención de acceso de superusuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Ejercicio Guiado: Obtención de acceso de superusuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Administración de cuentas de usuarios locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Ejercicio Guiado: Administración de cuentas de usuarios locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Administración de cuentas de grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Ejercicio Guiado: Administración de cuentas de grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Administración de contraseñas de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Ejercicio Guiado: Administración de contraseñas de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Trabajo de laboratorio: Administración de usuarios y grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4. Control de acceso a los archivos 121
Administración de permisos del sistema de archivos desde la línea de comandos . . . . . . . . . . . . . 122
Ejercicio Guiado: Administración de permisos del sistema de archivos desde la línea de
comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Administración de permisos predeterminados y acceso a archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Ejercicio Guiado: Administración de permisos predeterminados y acceso a archivos . . . . . . . . . 135
Trabajo de laboratorio: Control de acceso a los archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5. Administración de seguridad de SELinux 149
Cambio del modo de cumplimiento de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Ejercicio Guiado: Cambio del modo de cumplimiento de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Control de contextos de archivo de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Ejercicio Guiado: Control de contextos de archivo de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Ajuste de la política de SELinux con booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Ejercicio Guiado: Ajuste de la política de SELinux con booleanos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
RH199-RHEL8.2-es-1-20200928 v
Investigación y resolución de problemas de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Ejercicio Guiado: Investigación y resolución de problemas de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Trabajo de laboratorio: Administración de seguridad de SELinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
vi RH199-RHEL8.2-es-1-20200928
Ejercicio Guiado: Configuración de redes desde la línea de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Edición de archivos de configuración de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Ejercicio Guiado: Edición de archivos de configuración de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Configuración de nombres de host y resolución de nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Ejercicio Guiado: Configuración de nombres de host y resolución de nombre . . . . . . . . . . . . . . . . . 393
Trabajo de laboratorio: Administración de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
11. Análisis y almacenamiento de registros 405
Descripción de la arquitectura de registro del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Cuestionario: Descripción de la arquitectura de registro del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Revisión de archivos Syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Ejercicio Guiado: Revisión de archivos Syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Revisión de las entradas del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Ejercicio Guiado: Revisión de las entradas del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . 425
Resguardo del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Ejercicio Guiado: Resguardo del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Mantenimiento de la hora correcta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Ejercicio Guiado: Mantenimiento de la hora correcta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Trabajo de laboratorio: Análisis y almacenamiento de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
12. Implementación de funciones avanzadas de almacenamiento 451
Crear volúmenes lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Ejercicio Guiado: Crear volúmenes lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Ampliación de volúmenes lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Ejercicio Guiado: Ampliación de volúmenes lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Gestión de almacenamiento en capas con Stratis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Ejercicio Guiado: Gestión de almacenamiento en capas con Stratis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Compresión y desduplicación de almacenamiento con VDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Ejercicio Guiado: Compresión y desduplicación de almacenamiento con VDO . . . . . . . . . . . . . . . 488
Trabajo de laboratorio: Implementación de funciones avanzadas de almacenamiento . . . . . . 492
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
13. Programación de tareas futuras 503
Programación de trabajos del sistema recurrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Ejercicio Guiado: Programación de trabajos del sistema recurrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Administración de archivos temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Ejercicio Guiado: Administración de archivos temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Cuestionario: Programación de tareas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
14. Acceso al almacenamiento conectado a la red 523
Montaje de almacenamiento conectado a la red con NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Ejercicio Guiado: Administración de almacenamiento conectado a la red con NFS . . . . . . . . . . . 527
Montaje automático de almacenamiento conectado a la red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Ejercicio Guiado: Montaje automático de almacenamiento conectado a la red . . . . . . . . . . . . . . . . 535
Trabajo de laboratorio: Acceso al almacenamiento conectado a la red . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
15. Administración de la seguridad de redes 549
Administración de firewalls del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Ejercicio Guiado: Administración de firewalls del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Trabajo de laboratorio: Administración de la seguridad de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
16. Ejecución de contenedores 573
Introducción a los contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
RH199-RHEL8.2-es-1-20200928 vii
Cuestionario: Introducción a los contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Ejecución de un contenedor básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Ejercicio Guiado: Ejecución de un contenedor básico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Búsqueda y administración de imágenes de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Ejercicio Guiado: Búsqueda y administración de imágenes de contenedores . . . . . . . . . . . . . . . . . . 596
Realización de una administración avanzada de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Ejercicio Guiado: Realización de una administración avanzada de contenedores . . . . . . . . . . . . . 607
Conexión de almacenamiento persistente a un contenedor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Ejercicio Guiado: Conexión de almacenamiento persistente a un contenedor . . . . . . . . . . . . . . . . . . 615
Administración de contenedores como servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Ejercicio Guiado: Administración de contenedores como servicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Trabajo de laboratorio: Ejecución de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
17. Revisión completa 639
Revisión completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Trabajo de laboratorio: Corrección de problemas de arranque y mantenimiento de
servidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Trabajo de laboratorio: Configuración y administración de sistemas de archivos y
almacenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Trabajo de laboratorio: Configuración y administración de seguridad del servidor . . . . . . . . . . . 659
Trabajo de laboratorio: Ejecución de contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
viii RH199-RHEL8.2-es-1-20200928
Convenciones del documento
Referencias
En "Referencias", se describe el lugar donde se puede encontrar documentación
externa relevante para un tema.
nota
Las "Notas" son consejos, atajos o enfoques alternativos para una tarea
determinada. Omitir una nota no debería tener consecuencias negativas, pero
quizás se pase por alto algún truco que puede simplificar una tarea.
Importante
En las cajas (boxes) "Importante", se detallan cosas que se olvidan con facilidad:
cambios de configuración que solo se aplican a la sesión actual o servicios que se
deben reiniciar para poder aplicar una actualización. Ignorar una caja (box) con la
etiqueta "Importante" no provocará pérdida de datos, pero puede causar irritación y
frustración.
Advertencia
No se deben ignorar las "Advertencias". Es muy probable que omitir las advertencias
provoque pérdida de datos.
RH199-RHEL8.2-es-1-20200928 ix
x RH199-RHEL8.2-es-1-20200928
Introducción
Este es un curso acelerado. Como curso guiado por un instructor, este curso
cubre el contenido de capacitación en 5 días que, en general, se cubre en 10
días en Red Hat System Administration I y Red Hat System Administration II.
Para ello, algunos conceptos básicos cubiertos por estos cursos no se ven
aquí o solo se ven como una breve revisión.
RH199-RHEL8.2-es-1-20200928 xi
Introducción
En este curso, la computadora principal usada para las actividades prácticas de aprendizaje es
workstation. Los estudiantes también usarán otras dos máquinas para las actividades: servera
y serverb. Estos tres sistemas se encuentran en el dominio DNS lab.example.com.
Todas las computadoras de los estudiantes tienen una cuenta de usuario estándar (student) con
la contraseña student. La contraseña root de todos los sistemas de los estudiantes es redhat.
xii RH199-RHEL8.2-es-1-20200928
Introducción
La función principal de bastion es que actúa como enrutador entre la red que conecta las
máquinas de los estudiantes y la red del aula. Si bastion está apagada, otras máquinas de
estudiantes solo podrán acceder a sistemas en la red de estudiantes individuales.
Los sistemas classroom, bastion y utility deben estar todos en ejecución para que el
entorno del aula funcione correctamente.
nota
Al iniciar sesión en servera o serverb, es posible que vea un mensaje sobre la
activación de cockpit. El mensaje puede ser ignorado.
[student@serverb ~]$
Estados de la máquina
Estado de la Descripción
máquina virtual
RH199-RHEL8.2-es-1-20200928 xiii
Introducción
Estado de la Descripción
máquina virtual
WAITING_TO_START La máquina virtual está esperando que inicien las demás máquinas
(EN ESPERA PARA virtuales.
INICIARSE)
Según el estado de una máquina, se dispone de una selección de las siguientes acciones.
Acciones de aula/máquina
PROVISION LAB Crea el aula de ROL. Crea todas las máquinas virtuales necesarias para
(APROVISIONAR el aula y las inicia. Puede tardar algunos minutos en completarse.
TRABAJO DE
LABORATORIO)
DELETE LAB Elimina el aula de ROL. Destruye todas las máquinas virtuales del aula.
(ELIMINAR Precaución: Se perderán los trabajos generados en los discos.
TRABAJO DE
LABORATORIO)
xiv RH199-RHEL8.2-es-1-20200928
Introducción
Al inicio de un ejercicio, si se le indica que restablezca el nodo de una máquina virtual, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer) solo para la máquina virtual específica.
Al inicio de un ejercicio, si se le indica que restablezca todas las máquinas virtuales, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer)
Si desea que el entorno del aula vuelva a su estado original al inicio del curso, puede hacer
clic en DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) para eliminar el entorno del
aula completo. Después de eliminar el trabajo de laboratorio, puede hacer clic en PROVISION
LAB (APROVISIONAR TRABAJO DE LABORATORIO) para aprovisionar un nuevo conjunto de
sistemas del aula.
Advertencia
La operación DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) no puede
deshacerse. Se perderán todos los trabajos que haya completado en el entorno del
aula hasta el momento.
Para ajustar el temporizador, haga clic en MODIFY (MODIFICAR) para que aparezca el cuadro
de diálogo New Autostop Time (Nuevo tiempo de detención automática). Defina la cantidad
de horas hasta que el aula deba detenerse automáticamente. Tenga en cuenta que hay un tiempo
máximo de diez horas. Haga clic en ADJUST TIME (AJUSTAR TIEMPO) para aplicar este cambio
en los ajustes del temporizador.
RH199-RHEL8.2-es-1-20200928 xv
Introducción
Internacionalización
Configuración de idioma
En el entorno de escritorio GNOME, posiblemente el usuario deba definir el idioma de su
preferencia y el método de entrada la primera vez que inicie sesión. Si no es así, la manera más
simple para un usuario individual de definir el idioma de su preferencia y el método de entrada es
usando la aplicación Region & Language (Región e idioma).
Puede iniciar esta aplicación de dos maneras. Puede ejecutar el comando gnome-control-
center region desde una ventana de terminal, o en la barra superior, desde el menú del
sistema en la esquina derecha, seleccionar el botón de configuración (que tiene un ícono de un
destornillador y una llave cruzados) desde la parte inferior izquierda del menú.
En la ventana que se abre, seleccione Region & Language (Región e idioma). El usuario puede
hacer clic en la caja (box) Language (Idioma) y seleccionar el idioma de su preferencia en la
lista que aparece. Esto también actualiza la configuración de Formats (Formatos) mediante
la adopción del valor predeterminado para ese idioma. La próxima vez que inicie sesión, se
efectuarán los cambios.
Estas configuraciones afectan el entorno de escritorio GNOME y todas las aplicaciones, como
gnome-terminal, que se inician dentro de este. Sin embargo, de forma predeterminada, no se
aplican a la cuenta si el acceso a ella es mediante un inicio de sesión ssh desde un sistema remoto
o un inicio de sesión basado en texto en una consola virtual (como tty5).
nota
Puede hacer que su entorno de shell use la misma configuración de LANG que su
entorno gráfico, incluso cuando inicia sesión a través de una consola virtual basada
en texto o mediante ssh. Una manera de hacer esto es colocar un código similar
al siguiente en su archivo ~/.bashrc. Este código de ejemplo definirá el idioma
empleado en un inicio de sesión en interfaz de texto de modo que coincida con el
idioma actualmente definido en el entorno de escritorio GNOME del usuario.
Es posible que algunos idiomas, como el japonés, coreano, chino y otros con un
conjunto de caracteres no latinos, no se vean correctamente en consolas virtuales
basadas en texto.
xvi RH199-RHEL8.2-es-1-20200928
Introducción
Se pueden crear comandos individuales para usar otro idioma mediante la configuración de la
variable LANG en la línea de comandos:
La aplicación Region & Language (Región e idioma) también se puede usar para habilitar métodos
de entrada alternativos. En la ventana de la aplicación Region & Language (Región e idioma), la
caja (box) Input Sources (Fuentes de entrada) muestra los métodos de entrada disponibles en
este momento. De forma predeterminada, es posible que English (US) (Inglés [EE. UU.]) sea
el único método disponible. Resalte English (US) (Inglés [EE. UU.]) y haga clic en el icono de
keyboard (teclado) para ver la distribución actual del teclado.
Para agregar otro método de entrada, haga clic en el botón +, en la parte inferior izquierda de
la ventana Input Sources. Se abrirá la ventana Add an Input Source (Agregar una fuente de
entrada). Seleccione su idioma y, luego, el método de entrada o la distribución del teclado de su
preferencia.
Cuando haya más de un método de entrada configurado, el usuario puede alternar entre ellos
rápidamente escribiendo Super+Space (en ocasiones denominado Windows+Space). También
aparecerá un indicador de estado en la barra superior de GNOME con dos funciones: por un lado,
indica el método de entrada activo; por el otro lado, funciona como un menú que puede usarse
para cambiar de un método de entrada a otro o para seleccionar funciones avanzadas de métodos
de entrada más complejos.
Algunos de los métodos están marcados con engranajes, que indican que tienen opciones de
configuración y capacidades avanzadas. Por ejemplo, el método de entrada japonés Japanese
(Kana Kanji) (japonés [Kana Kanji]) permite al usuario editar previamente texto en latín y usar las
teclas de Down Arrow (flecha hacia abajo) y Up Arrow (flecha hacia arriba) para seleccionar los
caracteres correctos que se usarán.
El indicador también puede ser de utilidad para los hablantes de inglés de Estados Unidos. Por
ejemplo, en English (United States) (Inglés [Estados Unidos]) está la distribución de teclado
English (international AltGr dead keys) (Inglés [internacional, teclas inactivas AltGr]), que
trata AltGr (o la tecla Alt derecha) en un teclado de 104/105 teclas de una PC como una tecla
modificadora "Bloq Mayús secundaria" y tecla de activación de teclas inactivas para escribir
caracteres adicionales. Hay otras distribuciones alternativas disponibles, como Dvorak.
RH199-RHEL8.2-es-1-20200928 xvii
Introducción
nota
Cualquier carácter Unicode puede ingresarse en el entorno de escritorio GNOME
si conoce el código Unicode del carácter. Escriba Ctrl+Shift+U, seguido por
el código. Después de ingresar Ctrl+Shift+U, aparecerá una u subrayada que
indicará que el sistema espera la entrada del código Unicode.
Por ejemplo, la letra del alfabeto griego en minúscula lambda tiene el código U
+03BB y puede ingresarse escribiendo Ctrl+Shift+U, luego 03BB y, por último,
Enter.
Desde la línea de comandos, el usuario root puede cambiar los ajustes de configuración regional
de todo el sistema con el comando localectl. Si localectl se ejecuta sin argumentos,
muestra los ajustes actuales de configuración regional de todo el sistema.
En GNOME, un usuario administrativo puede cambiar esta configuración en Region & Language
(Región e idioma) haciendo clic en el botón Login Screen (Pantalla de inicio de sesión) ubicado
en la esquina superior derecha de la ventana. Al cambiar la opción de Language (Idioma) de la
pantalla de inicio de sesión gráfico, también ajustará el valor de idioma predeterminado de todo el
sistema en el archivo de configuración /etc/locale.conf.
Importante
Las consolas virtuales basadas en texto, como tty4, pueden mostrar una cantidad
más limitada de fuentes que los terminales en una consola virtual que ejecuta un
entorno gráfico, o pseudoterminales para sesiones ssh. Por ejemplo, los caracteres
del japonés, coreano y chino posiblemente no se visualicen como se espera en una
consola virtual basada en texto. Por este motivo, debe considerar el uso de inglés u
otro idioma con un conjunto de caracteres latinos para los valores predeterminados
para todo el sistema.
De manera similar, las consolas virtuales basadas en texto soportan una cantidad
limitada de métodos de entrada; y esto se administra de manera separada desde
el entorno gráfico de escritorio. Las opciones de entrada globales disponibles se
pueden configurar a través de localectl tanto para las consolas virtuales de texto
como para el entorno gráfico. Para obtener más información, consulte las páginas
del manual localectl(1) y vconsole.conf(5).
xviii RH199-RHEL8.2-es-1-20200928
Introducción
Paquetes de idiomas
Paquetes de RPM especiales llamados langpacks instalan paquetes de idiomas que agregan
soporte para idiomas específicos. Estos paquetes de idiomas usan dependencias para instalar
automáticamente paquetes de RPM adicionales que contienen localizaciones, diccionarios y
traducciones para otros paquetes de software en su sistema.
Use yum list langpacks-* para enumerar los paquetes de idiomas que están instalados y
que pueden instalarse:
Para agregar soporte de idioma, instale el paquete langpacks correcto. Por ejemplo, el siguiente
comando agrega soporte para francés:
Use yum repoquery --whatsupplements para determinar qué paquetes de RPM pueden ser
instalados por un paquete de idiomas:
RH199-RHEL8.2-es-1-20200928 xix
Introducción
Importante
Los paquetes langpacks usan dependencias débiles de RPM para instalar paquetes
complementarios solo cuando el paquete principal (core) que lo necesita también
está instalado.
Referencias
Páginas del manual: locale(7), localectl(1), locale.conf(5),
vconsole.conf(5), unicode(7) y utf-8(7).
Las conversiones entre los nombres de las distribuciones X11 del entorno de
escritorio gráfico y sus nombres en localectl se pueden encontrar en el archivo /
usr/share/X11/xkb/rules/base.lst.
Códigos de idioma
Asamés as as_IN.utf8
Bengalí bn bn_IN.utf8
Francés fr fr_FR.utf8
Alemán de de_DE.utf8
Guyaratí gu gu_IN.utf8
xx RH199-RHEL8.2-es-1-20200928
Introducción
Hindi hi hi_IN.utf8
Italiano it it_IT.utf8
Japonés ja ja_JP.utf8
Canarés kn kn_IN.utf8
Coreano ko ko_KR.utf8
Malayalam ml ml_IN.utf8
Maratí mr mr_IN.utf8
Odia or or_IN.utf8
Punyabí pa pa_IN.utf8
Ruso ru ru_RU.utf8
Español es es_ES.utf8
Tamil ta ta_IN.utf8
Telugú te te_IN.utf8
RH199-RHEL8.2-es-1-20200928 xxi
xxii RH199-RHEL8.2-es-1-20200928
capítulo 1
RH199-RHEL8.2-es-1-20200928 1
capítulo 1 | Acceder a sistemas y obtener soporte
Objetivos
Tras finalizar esta sección, deberá ser capaz de iniciar sesión en un sistema Linux y ejecutar
comandos simples a través de la shell.
La shell predeterminada para usuarios de Red Hat Enterprise Linux es GNU Bourne-Again Shell
(bash). Bash es una versión mejorada de una de las shells más exitosas que se usa en los sistemas
tipo UNIX: la shell Bourne (sh).
Si una shell se usa de manera interactiva, muestra una cadena cuando espera un comando del
usuario. Esto recibe el nombre de prompt de shell. Cuando un usuario normal inicia una shell, el
prompt predeterminado finaliza con un carácter $, como se muestra a continuación.
[user@host ~]$
[root@host ~]#
El uso de bash para ejecutar comandos puede ser eficaz. La shell bash proporciona un
lenguaje de secuencia de comandos capaz de admitir la automatización de tareas. La shell tiene
capacidades adicionales que pueden simplificar operaciones o posibilitar aquellas que son difíciles
de realizar con herramientas gráficas.
nota
La shell bash es similar en concepto al intérprete de la línea de comandos
disponible en versiones recientes de Microsoft Windows, cmd.exe, pero bash
posee un lenguaje de secuencia de comandos más sofisticado. También es
similar a Windows PowerShell en Windows 7 y Windows Server 2008 R2. A los
administradores de Apple Mac que usan la utilidad Terminal les agradará saber que
bash es la shell predeterminada en MacOS.
2 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
El comando es el nombre del programa que se ejecuta. Puede estar seguido de una o más
opciones que ajustan el comportamiento del comando o lo que hará. Las opciones generalmente
comienzan con uno o dos guiones (-a o --all, por ejemplo) para que se distingan de los
argumentos. Los comandos pueden estar seguidos por uno o más argumentos, que generalmente
indican un destino sobre el cual el comando debe operar.
Por ejemplo, el comando usermod -L user01 tiene un comando (usermod), una opción (-L)
y un argumento (user01). El efecto de este comando es bloquear la contraseña de la cuenta del
usuario user01.
La computadora puede tener un teclado y una pantalla de hardware para la entrada y salida
directamente conectados a ella. Esta es la consola física de la máquina Linux. La consola
física admite varias consolas virtuales que pueden ejecutar terminales independientes. Cada
consola virtual admite un inicio de sesión independiente. Puede cambiar entre ellas presionando
Ctrl+Alt y una tecla de función (F1 a F6) al mismo tiempo. La mayoría de estas consolas
virtuales ejecutan un terminal con un prompt de inicio de sesión de texto y, si ingresa su nombre de
usuario y contraseña correctamente, iniciará sesión y obtendrá un prompt de shell.
La computadora puede proporcionar un prompt de inicio de sesión gráfico en una de las consolas
virtuales. Puede usar esto para iniciar sesión en un entorno gráfico. El entorno gráfico también
se ejecuta en una consola virtual. Para obtener un prompt de shell, debe iniciar un programa de
terminal en el entorno gráfico. El prompt de shell se proporciona en una ventana de aplicación de
su programa de terminal gráfico.
nota
Muchos administradores de sistemas eligen no ejecutar un entorno gráfico en sus
servidores. Esto permite que los servicios del servidor usen los recursos que de otra
forma usaría el entorno gráfico.
En Red Hat Enterprise Linux 8, si el entorno gráfico está disponible, la pantalla de inicio de sesión
se ejecutará en la primera consola virtual, llamada tty1. Hay cinco prompts de inicio de sesión de
texto adicionales disponibles en las consolas virtuales dos a seis.
Si inicia sesión con la pantalla de inicio de sesión gráfica, su entorno gráfico se iniciará en
la primera consola virtual que no se encuentre en uso en una sesión de inicio de sesión.
Normalmente, la sesión gráfica reemplazará al prompt de inicio de sesión en la segunda consola
virtual (tty2). Sin embargo, si esa consola está en uso en una sesión de inicio de sesión de texto
activa (no solo en un prompt de inicio de sesión), en su lugar, se usa la siguiente consola virtual
libre.
La pantalla de inicio de sesión gráfico se sigue ejecutando en la primera consola virtual (tty1). Si
ya ha iniciado sesión en una sesión gráfica e inicia sesión con otro usuario en la pantalla de inicio
de sesión gráfica, o si usa el ítem de menú Switch User (Cambiar usuario) para cambiar de
RH199-RHEL8.2-es-1-20200928 3
capítulo 1 | Acceder a sistemas y obtener soporte
usuario en el entorno gráfico sin cerrar sesión, se iniciará otro entorno gráfico para ese usuario en
la siguiente consola virtual libre.
Cuando cierra sesión en un entorno gráfico, la sesión se cerrará y la consola física volverá
automáticamente a la pantalla de inicio de sesión gráfica de la primera consola virtual.
nota
En Red Hat Enterprise Linux 6 y 7, la pantalla de inicio de sesión gráfica se ejecuta
en la primera consola virtual; sin embargo, al iniciar sesión, el entorno gráfico inicial
reemplaza a la pantalla de inicio de sesión de la primera consola virtual en lugar de
iniciarse en una nueva consola virtual.
En Red Hat Enterprise Linux 5 y versiones anteriores, las seis primeras consolas
virtuales proporcionaban siempre prompts de inicio de sesión de texto. Si el entorno
gráfico está en ejecución, se ejecuta en la consola virtual siete (a la que se accede a
través deCtrl+Alt+F7).
La consola serial normalmente se usaría para reparar el servidor si su propia tarjeta de red tuviera
una configuración incorrecta y el inicio de sesión a través de su propia conexión de red fuera
imposible. Sin embargo, la mayoría de las veces se accede a los servidores sin periféricos por otros
medios a través de la red.
En Linux, la forma más común de obtener un prompt de shell en un sistema remoto es usar Secure
Shell (SSH). La mayoría de los sistemas Linux (incluidos los que usan Red Hat Enterprise Linux) y
macOS proporcionan el programa de línea de comandos OpenSSH ssh para este propósito.
En este ejemplo, un usuario con un prompt de shell en la máquina host usa ssh para iniciar sesión
en el sistema Linux remoto remotehost como el usuario remoteuser:
El comando ssh cifra la conexión para proteger la comunicación contra el espionaje o el robo de
contraseñas y contenido.
Algunos sistemas (como las nuevas instancias en la nube) no permiten que los usuarios usen una
contraseña para iniciar sesión con ssh a fin de mejorar la seguridad. Una forma alternativa de
4 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
autenticarse en una máquina remota sin ingresar una contraseña es a través de la autenticación de
clave pública.
Con este método de autenticación, los usuarios tienen un archivo de identidad especial que
contiene una clave privada, equivalente a una contraseña, que mantienen en secreto. Su cuenta
en el servidor está configurada con una clave pública, que no tiene que ser secreta. Al iniciar
sesión, los usuarios pueden configurar ssh para proporcionar la clave privada y, si su clave pública
coincidente está instalada en esa cuenta en ese servidor remoto, iniciarán sesión sin necesitar una
contraseña.
En el siguiente ejemplo, un usuario con un prompt de shell en la máquina host inicia sesión en
remotehost como remoteuser con ssh, mediante autenticación de clave pública. La opción -i
se usa para especificar el archivo de clave privada del usuario, que es mylab.pem. La clave pública
coincidente ya está configurada como una clave autorizada en la cuenta remoteuser.
Para que esto funcione, el archivo de clave privada debe ser legible solo para el propietario del
archivo. En el ejemplo anterior, donde la clave privada está en el archivo mylab.pem, el comando
chmod 600 mylab.pem podría usarse para garantizar esto. La forma de configurar los permisos
de archivo se describe en más detalle en un capítulo posterior.
Los usuarios también pueden tener configuradas claves privadas que se prueban
automáticamente, pero ese asunto está fuera del alcance de esta sección. En las referencias que
aparecen al final de esta sección, hay más información acerca de este tema.
RH199-RHEL8.2-es-1-20200928 5
capítulo 1 | Acceder a sistemas y obtener soporte
nota
La primera vez que inicie sesión en una nueva máquina, ssh le mostrará una
advertencia de que no puede establecer la autenticidad del host:
Cada vez que se conecta a un host remoto con ssh, el host remoto envía a ssh su
clave de host para autenticarse y para ayudar a configurar la comunicación cifrada.
El comando ssh compara eso con una lista de claves de host guardadas para
asegurarse de que no haya cambiado. Si la clave del host ha cambiado, esto podría
indicar que alguien está tratando de fingir ser ese host para capturar la conexión, lo
que también se conoce como ataque de intermediario. En SSH, las claves de host
protegen contra los ataques de intermediario; estas claves de host son únicas para
cada servidor, y deben cambiarse periódicamente y siempre que se sospeche una
violación a la seguridad.
Recibirá esta advertencia si su máquina local no tiene una clave de host guardada
para el host remoto. Si introduce yes, la clave de host que envió el host remoto se
aceptará y se guardará para referencia futura. El inicio de sesión continuará, y usted
no deberá volver a ver este mensaje cuando se conecte a este host. Si introduce no,
se rechazará la clave de host y se cerrará la conexión.
Si la máquina local tiene una clave de host guardada y no coincide con la que
realmente envió el host remoto, la conexión se cerrará automáticamente con una
advertencia.
Cerrar sesión
Cuando haya terminado de usar la shell y desee salir, puede elegir una de las varias formas de
finalizar la sesión. Puede introducir el comando exit para finalizar la sesión de shell actual. Como
alternativa, puede terminar una sesión presionando Ctrl+D.
6 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Referencias
Páginas del manual intro(1), bash(1), console(4), pts(4), ssh(1) y ssh-
keygen(1)
nota
Al final de la siguiente sección, se incluyen instrucciones sobre cómo leer las páginas
man y otros documentos de ayuda en línea.
RH199-RHEL8.2-es-1-20200928 7
capítulo 1 | Acceder a sistemas y obtener soporte
Cuestionario
1. ¿Qué término describe al intérprete que ejecuta los comandos escritos como
secuencias?
a. Comando
b. Consola
c. Shell
d. Terminal
2. ¿Qué término describe la indicación visual que muestra que una shell interactiva espera
que el usuario escriba un comando?
a. Argumento
b. Comando
c. Opción
d. Prompt
8 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
6. ¿Qué término describe el hardware de pantalla y el teclado que se usan para interactuar
con un sistema?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
7. ¿Qué término describe a una de las varias consolas lógicas, de las cuales cada una
puede respaldar una sesión de inicio de sesión independiente?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
8. ¿Qué término describe a una interfaz que proporciona una pantalla de salida y un
teclado de entrada en una sesión de shell?
a. Consola
b. Consola virtual
c. Shell
d. Terminal
RH199-RHEL8.2-es-1-20200928 9
capítulo 1 | Acceder a sistemas y obtener soporte
Solución
1. ¿Qué término describe al intérprete que ejecuta los comandos escritos como
secuencias?
a. Comando
b. Consola
c. Shell
d. Terminal
2. ¿Qué término describe la indicación visual que muestra que una shell interactiva espera
que el usuario escriba un comando?
a. Argumento
b. Comando
c. Opción
d. Prompt
10 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
6. ¿Qué término describe el hardware de pantalla y el teclado que se usan para interactuar
con un sistema?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
7. ¿Qué término describe a una de las varias consolas lógicas, de las cuales cada una
puede respaldar una sesión de inicio de sesión independiente?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
8. ¿Qué término describe a una interfaz que proporciona una pantalla de salida y un
teclado de entrada en una sesión de shell?
a. Consola
b. Consola virtual
c. Shell
d. Terminal
RH199-RHEL8.2-es-1-20200928 11
capítulo 1 | Acceder a sistemas y obtener soporte
Objetivos
Tras finalizar esta sección, deberá ser capaz de configurar una cuenta de usuario para emplear
la autenticación basada en claves e iniciar sesión en sistemas remotos de forma segura y sin una
contraseña.
Para hacer esto, genera un par coincidente de archivos de claves criptográficas. Una es una clave
privada, la otra una clave pública coincidente. El archivo de clave privada se usa como credencial
de autenticación y, al igual que una contraseña, debe ser secreta y segura. La clave pública se
copia en los sistemas con los que el usuario desea conectarse y se usa para verificar la clave
privada. No es necesario que la clave pública sea secreta.
Coloque una copia de la clave pública en su cuenta en el servidor. Cuando intenta iniciar sesión,
el servidor SSH puede usar la clave pública para emitir un desafío que solo puede ser respondido
correctamente usando la clave privada. Como resultado, su cliente ssh puede autenticar
automáticamente su inicio de sesión en el servidor con su copia única de la clave privada. Esto le
permite acceder a los sistemas de manera segura sin que sea necesario ingresar siempre en forma
interactiva una contraseña.
12 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
|.+% O . + B . |
|=*oO . . + * |
|++. . +. |
+----[SHA256]-----+
Puede ejecutar un programa de ayuda llamado ssh-agent que puede almacenar temporalmente
en la memoria caché la contraseña de la clave privada al inicio de la sesión para obtener una
verdadera autenticación sin contraseña. Hablaremos de esto más adelante en esta sección.
La opción -f con el comando ssh-keygen determina los archivos donde se guardan las
claves. En el ejemplo anterior, las claves privada y pública se guardan en los archivos /home/
user/.ssh/key-with-pass /home/user/.ssh/key-with-pass.pub, respectivamente.
Advertencia
Durante la generación de pares de claves SSH adicionales, a menos que especifique
un nombre de archivo único, se le solicitará permiso para sobrescribir los archivos
id_rsa y id_rsa.pub existentes. Si sobrescribe los archivos id_rsa y
id_rsa.pub existentes, entonces debe reemplazar la clave pública anterior con la
nueva en todos los servidores SSH que tienen su clave pública anterior.
RH199-RHEL8.2-es-1-20200928 13
capítulo 1 | Acceder a sistemas y obtener soporte
Una vez que se hayan generado las claves SSH, se guardarán de modo predeterminado en el
directorio .ssh/ del directorio principal del usuario. Los modos de permisos deben ser 600 en la
clave privada y 644 en la clave pública.
Una vez que la clave pública se transfiere de forma satisfactoria a un sistema remoto, puede
realizar la autenticación en el sistema remoto por medio de la clave privada correspondiente
mientras inicia sesión en el sistema remoto a través de SSH. Si omite la ruta al archivo de la
clave privada mientras ejecuta el comando ssh, se usa el archivo /home/user/.ssh/id_rsa
predeterminado.
14 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Si inicia sesión en una consola de texto, inicie sesión con ssh, o usa sudo o su, probablemente
deberá iniciar ssh-agent manualmente para esa sesión. Puedes hacer esto con el siguiente
comando:
nota
Cuando ejecuta ssh-agent, este imprime algunos comandos de shell. Debe
ejecutar estos comandos para configurar las variables de entorno usadas por
programas como ssh-add para que se comuniquen con estos. El comando eval
$(ssh-agent) inicia ssh-agent y ejecuta esos comandos para establecer
automáticamente esas variables de entorno para esa sesión de shell. También
muestra el PID del proceso ssh-agent.
Una vez que ssh-agent se está ejecutando, debe decirle la frase de contraseña para su clave
privada o sus claves. Puede hacerlo con el comando ssh-add.
Los siguientes comandos ssh-add agregan las claves privadas desde los archivos /
home/user/.ssh/id_rsa (de manera predeterminada) y /home/user/.ssh/key-with-
pass, respectivamente.
Después de agregar las claves privadas satisfactoriamente al proceso sh-agent, puede invocar
una conexión SSH por medio del comando ssh. Si está usando un archivo de clave privada que
no es el archivo /home/user/.ssh/id_rsa predeterminado, debe usar la opción -i con el
comando ssh para especificar la ruta al archivo de la clave privada.
En el siguiente ejemplo del comando ssh, se usa el archivo de clave privada predeterminado para
realizar la autenticación en un servidor SSH.
En el siguiente ejemplo del comando ssh, se usa el archivo de clave privada /home/user/.ssh/
key-with-pass (no predeterminado) para realizar la autenticación en un servidor SSH. La
clave privada en el siguiente ejemplo ya se ha descifrado y agregado a su proceso ssh-agent
principal, por lo que el comando ssh no le solicita que descifre la clave privada mediante el
ingreso interactivo de su frase de contraseña.
RH199-RHEL8.2-es-1-20200928 15
capítulo 1 | Acceder a sistemas y obtener soporte
Cuando sales de la sesión que comenzó ssh-agent, el proceso se cerrará y las frases de
contraseña de sus claves privadas se borrarán de la memoria.
Referencias
Páginas de manual ssh-keygen(1), ssh-copy-id(1), ssh-agent(1),ssh-add(1)
16 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Realizar la autenticación mediante claves SSH sin frase de contraseña y mediante claves
SSH protegidas con frase de contraseña.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Use el comando su para cambiar al usuario operator1 en serverb. Use redhat como la
contraseña de operator1.
3. Use el comando ssh-keygen para generar claves SSH. No ingrese una frase de
contraseña.
RH199-RHEL8.2-es-1-20200928 17
capítulo 1 | Acceder a sistemas y obtener soporte
4. Use el comando ssh-copy-id para enviar la clave pública del par de claves SSH a
operator1 en servera. Use redhat como la contraseña de operator1 en servera.
5. Ejecute el comando hostname en servera de forma remota usando SSH sin acceder a la
shell interactiva remota.
Tenga en cuenta que el comando ssh anterior no le solicitó una contraseña porque usó
la clave privada sin frase de contraseña correspondiente a la clave pública exportada para
realizar la autenticación como operator1 en servera. Este enfoque no es seguro, ya
que cualquier persona que tenga acceso al archivo de clave privada puede iniciar sesión
en servera como operator1. La alternativa segura es proteger la clave privada con una
frase de contraseña, lo cual se describe en el siguiente paso.
18 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
6. Use el comando ssh-keygen para generar otro conjunto de claves SSH protegidas
con frase de contraseña. Guarde la clave como /home/operator1/.ssh/key2. Use
redhatpass como la frase de contraseña de la clave privada.
Advertencia
Si no especifica el archivo donde se guarda la clave, se usa el archivo
predeterminado (/home/user/.ssh/id_rsa). Ya ha usado el nombre de
archivo predeterminado al generar claves SSH en el paso anterior, por lo que es
fundamental que especifique un archivo no predeterminado. De lo contrario, las
claves SSH existentes se sobrescribirán.
7. Use el comando ssh-copy-id para enviar la clave pública del par de claves protegidas con
frase de contraseña a operator1 en servera.
RH199-RHEL8.2-es-1-20200928 19
capítulo 1 | Acceder a sistemas y obtener soporte
8. Ejecute el comando hostname en servera de forma remota con SSH sin acceder a
la shell interactiva remota. Use /home/operator1/.ssh/key2 como el archivo de
identidad. Ingrese la frase de contraseña redhatpass que definió para la clave privada en
el paso anterior.
Tenga en cuenta que el comando ssh anterior le solicitó la frase de contraseña que
usó para proteger la clave privada del par de claves SSH. Esta frase de contraseña
protege la clave privada. Si un atacante obtiene acceso a la clave privada, no podrá usarla
para acceder a otros sistemas porque la clave privada está protegida con una frase de
contraseña. El comando ssh usa una frase de contraseña diferente a la frase de contraseña
para operator1 en servera, lo que exige que los usuarios conozcan ambas.
Puede usar ssh-agent, como en el siguiente paso, para evitar escribir de forma interactiva
la frase de contraseña al iniciar sesión con SSH. El uso de ssh-agent resulta más
conveniente y más seguro en situaciones donde los administradores inician sesión en
sistemas remotos con regularidad.
9. Ejecute ssh-agent en la shell Bash y agregue la clave privada protegida con frase de
contraseña (/home/operator1/.ssh/key2) del par de claves SSH a la sesión de shell.
El comando eval anterior inició ssh-agent y configuró esta sesión de shell para usarla.
Así, usó ssh-add para proporcionar la clave privada desbloqueada para ssh-agent.
10. Ejecute el comando hostname en servera de forma remota sin acceder a la shell
interactiva remota. Use /home/operator1/.ssh/key2 como el archivo de identidad.
Tenga en cuenta que el comando ssh anterior no le solicitó que ingrese la frase de
contraseña de forma interactiva.
11. Abra otro terminal en workstation y abra una sesión de SSH en serverb como
student.
12. En serverb, use el comando su para cambiar a operator1 e invocar una conexión SSH
en servera. Use /home/operator1/.ssh/key2 como el archivo de identidad para
realizar la autenticación por medio de claves SSH.
20 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
12.1. Use el comando su para cambiar a operator1. Use redhat como la contraseña de
operator1.
13. Salga de todas las shells que está usando en el segundo terminal.
13.2. Salga de las shells operator1 y student en serverb para volver a la shell del
usuario student en workstation.
14.1. Desde el primer terminal, salga de la shell del usuario operator1 en serverb.
El comando exit hizo que saliera de la shell del usuario operator1, finalizando la
sesión de la shell donde ssh-agent estaba activo, y volviera a la shell del usuario
student en serverb.
RH199-RHEL8.2-es-1-20200928 21
capítulo 1 | Acceder a sistemas y obtener soporte
14.2. Salga de la shell del usuario student en serverb para volver a la shell del usuario
student en workstation.
Finalizar
En workstation, ejecute lab ssh-configure finish para terminar este ejercicio.
22 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de describir los recursos clave disponibles en el
portal de clientes de Red Hat y usarlos para encontrar información en la documentación y la base
de conocimientos de Red Hat.
Hay algunas secciones del sitio de acceso público y otras áreas están solo disponibles para
clientes con suscripciones activas. Obtenga ayuda para acceder al portal de clientes en https://
access.redhat.com/help/.
El recorrido es una herramienta muy útil para descubrir todo lo que el portal tiene para ofrecer y la
manera de aprovechar al máximo su suscripción de Red Hat. Una vez que haya iniciado sesión en
el portal de clientes de Red Hat, haga clic en Tour the Customer Portal (Recorrido del portal de
clientes).
RH199-RHEL8.2-es-1-20200928 23
capítulo 1 | Acceder a sistemas y obtener soporte
Subscriptions (Suscripciones) abre una página nueva donde puede administrar los sistemas
registrados y el uso de suscripciones y derechos. Enumera información sobre las erratas que se
aplican y le permite crear claves de activación que puede usar al registrar sistemas para garantizar
que obtengan los derechos de las suscripciones correctas. Tenga en cuenta que si usted es parte
de una organización, el administrador de su organización puede limitar su acceso a esta página.
Downloads (Descargas) abre una página nueva que le permite acceder a las descargas de
productos y solicitar derechos de evaluación correspondientes a los productos para los que no
tiene derechos.
Support Cases (Casos de soporte) abre una página nueva que brinda acceso para crear, rastrear
y administrar los casos de soporte a través del sistema de administración de casos, suponiendo
que su organización ha autorizado ese nivel de acceso.
Su nombre es el título de User Menu (Menú del usuario), que le permite administrar su cuenta,
las cuentas para las que es administrador de la organización, su perfil personal y las opciones de
notificaciones por correo electrónico de contenido nuevo que está disponible.
El icono de globo terráqueo abre el menú Select Your Language (Elija su idioma) a fin de
especificar sus preferencias de idioma para el portal de clientes.
Menús de temas
Debajo de la barra de navegación superior en la página principal del portal de clientes, hay menús
que puede usar para navegar a las cuatro categorías principales de recursos disponibles en el sitio.
Products & Services (Productos y servicios) proporciona acceso a Product Hubs (Centros de
productos), páginas que proporcionan acceso a evaluaciones, resúmenes, guías de inicio y otra
información de soporte específica para el producto. También puede acceder a la documentación
para productos de Red Hat, vínculos directos a la base de conocimientos de artículos de soporte, e
información sobre políticas de soporte y cómo ponerse en contacto con el soporte de Red Hat.
24 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
RH199-RHEL8.2-es-1-20200928 25
capítulo 1 | Acceder a sistemas y obtener soporte
nota
Debe completar todo el recorrido en Iniciación con Red Hat [https://
access.redhat.com/start], incluidas las secciones sobre cómo personalizar su
experiencia en el portal de clientes y explorar los beneficios de su suscripción de
Red Hat, para obtener toda la información sobre el portal de clientes. Necesitará al
menos una suscripción activa en su cuenta del portal de clientes para acceder a esta
página.
26 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Type the number of the solution to view or 'e' to return to the previous menu.
1 [ 253273:VER] How to register and subscribe a system to the Red Hat Customer
Portal using Red Hat Subscription-Manager
2 [ 265523:VER] Enabling or disabling a repository using Red Hat Subscription
Management
3 [ 100423:VER] Why does subscription-manager list return: "No Installed
Products found" ?
...output omitted...
Select a Solution: 1
Seleccione el artículo número 1 como se indica arriba y se le solicitará que seleccione la sección del
documento para leer. Finalmente, use la tecla Q para salir de la sección en la que se encuentra o
úsela repetidamente para salir del comando redhat-support-tool.
Select a Solution: 1
Type the number of the section to view or 'e' to return to the previous menu.
1 Title
2 Issue
3 Environment
4 Resolution
5 Display all sections
End of options.
Section: 1
Title
===============================================================================
How to register and subscribe a system to the Red Hat Customer Portal using Red
Hat Subscription-Manager
URL: https://access.redhat.com/solutions/253273
Created On: None
Modified On: 2017-11-29T15:33:51Z
(END) q
Section:
Section: q
Select a Solution: q
RH199-RHEL8.2-es-1-20200928 27
capítulo 1 | Acceder a sistemas y obtener soporte
Title
===============================================================================
How to register and subscribe a system to the Red Hat Customer Portal using Red
Hat Subscription-Manager
URL: https://access.redhat.com/solutions/253273
Created On: None
Modified On: 2017-11-29T15:33:51Z
Issue
===============================================================================
* How to register a new `Red Hat Enterprise Linux` system to the Customer Portal
using `Red Hat Subscription-Manager`
...output omitted...
Defina el problema. Indique el problema y los síntomas con claridad. Sea lo más específico posible.
Detalle los pasos que reproducirían el problema.
Reúna información básica. ¿Qué producto y versión se ven afectados? Esté preparado para brindar
información de diagnóstico relevante, que puede incluir la salida de sosreport, que se abordará
posteriormente en esta sección. En el caso de problemas del kernel, dicha información podría
incluir un vuelco de errores de kdump del sistema o una fotografía digital del seguimiento de kernel
mostrado en el monitor de un sistema bloqueado.
Determine el nivel de gravedad. Red Hat usa niveles de gravedad para clasificar problemas.
Los informes de problemas de gravedad Urgent (Urgente) y High (Alta) deben seguirse
28 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
mediante una llamada telefónica al centro de asistencia local pertinente (consulte https://
access.redhat.com/site/support/contact/technicalSupport).
Gravedad Descripción
Los detalles del caso, como producto, versión, resumen, descripción, gravedad y grupo de
caso, pueden asignarse con opciones de comandos o si se deja la solicitud de la herramienta de
información necesaria. En el siguiente ejemplo, se abre un caso nuevo. Se especifican las opciones
--product y --version.
RH199-RHEL8.2-es-1-20200928 29
capítulo 1 | Acceder a sistemas y obtener soporte
Please attach a SoS report to support case 01034421. Create a SoS report as
the root user and execute the following command to attach the SoS report
directly to the case:
redhat-support-tool addattachment -c 01034421 path to sosreport
Si no existe un informe de SoS actual, un administrador puede generar y adjuntar uno más tarde.
Use el comando redhat-support-tool addattachment para adjuntar el informe.
30 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Type the number of the case to view or 'e' to return to the previous menu.
1 [Waiting on Red Hat] System fails to run without power
No more cases to display
Select a Case: 1
Type the number of the section to view or 'e' to return to the previous menu.
1 Case Details
2 Modify Case
3 Description
4 Recommendations
5 Get Attachment
6 Add Attachment
7 Add Comment
End of options.
Option: q
Select a Case: q
La herramienta Red Hat Support Tool cuenta con capacidades avanzadas de análisis y diagnóstico
de aplicaciones. Mediante el uso de archivos core (principales) de volcado de memoria tras fallas
del kernel, redhat-support-tool puede crear y extraer un seguimiento de pila. Un seguimiento
de pila es un informe de los marcos de pila (stack) activos en el punto de un volcado de memoria
tras falla y proporciona diagnósticos en las instalaciones. Una de las opciones de redhat-
support-tool es abrir un caso de soporte.
La herramienta también proporciona análisis de archivo de registro. Mediante el uso del comando
analyze de la herramienta, los archivos de registro de muchos tipos, como de sistema operativo,
JBoss, Python, Tomcat y oVirt, pueden analizarse para reconocer síntomas de problemas.
Los archivos de registro se pueden ver y diagnosticar individualmente. Proporcionar análisis
preprocesado, en oposición a datos sin procesar, como archivos de registro o vuelcos de errores,
permite que se abran los casos de asistencia y que se pongan a disposición de ingenieros más
rápidamente.
RH199-RHEL8.2-es-1-20200928 31
capítulo 1 | Acceder a sistemas y obtener soporte
Referencias
Página del manual: sosreport(1)
32 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Ejercicio Guiado
Resultados
Deberá ser capaz de generar un informe de diagnóstico con la consola web que podría
enviarse al portal de clientes de Red Hat como parte de un caso de soporte.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
student.
2. Use el comando systemctl para confirmar que el servicio cockpit se está ejecutando.
Introduzca student como contraseña cuando se le solicite.
RH199-RHEL8.2-es-1-20200928 33
capítulo 1 | Acceder a sistemas y obtener soporte
4.3. Inicie sesión como el usuario root con redhat como contraseña. Ya ha iniciado
sesión como usuario privilegiado, lo cual es necesario para crear un informe de
diagnóstico.
5. Cuando el informe esté listo, haga clic en Download report (Descargar informe). Guarde
el archivo.
5.1. Haga clic en el botón Download report (Descargar informe) y, luego, en el botón
Save File (Guardar archivo).
Finalizar
En workstation, ejecute el script lab support-portal finish para terminar este ejercicio.
34 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Objetivos
Después de completar esta sección, deberá ser capaz de usar Red Hat Insights para analizar los
servidores en busca de problemas, corregirlos o resolverlos, y confirmar que la solución funcionó.
Red Hat actualiza regularmente la base de conocimientos usada por Insights, en conformidad con
los riesgos de soporte comunes, las vulnerabilidades de seguridad, las configuraciones erróneas
conocidas y otros problemas identificados por Red Hat. Las acciones para mitigar o remediar
estos problemas son validadas y verificadas por Red Hat. Este soporte permite identificar, priorizar
y resolver proactivamente los problemas antes de que se conviertan en un problema mayor.
Para cada problema detectado, Insights proporciona estimaciones del riesgo presentado y
recomendaciones sobre cómo mitigar o remediar el problema. Estas recomendaciones pueden
proporcionar materiales, como guías de reproducción Ansible o instrucciones detalladas y legibles
por humanos para ayudarle a resolver el problema.
Insights adapta las recomendaciones a cada sistema registrado en el servicio. Cada sistema cliente
se instala con un agente que recopila metadatos sobre la configuración de tiempo de ejecución
del sistema. Estos datos son un subconjunto de lo que podría proporcionar a Red Hat Support con
el comando sosreport para resolver un ticket de soporte. Puede limitar u ocultar los datos que
envían sus clientes. Esto impide el funcionamiento de algunas de las reglas analíticas, en función
de lo que usted limite.
RH199-RHEL8.2-es-1-20200928 35
capítulo 1 | Acceder a sistemas y obtener soporte
Cuando la información recibe los datos, los analiza y muestra el resultado en la consola web de
Insights en https://cloud.redhat.com/insights.
Importante
El paquete insights-client reemplaza el paquete redhat-access-insights que se inicia
con Red Hat Enterprise Linux 7.5.
Si su sistema está registrado para obtener derechos de software a través del servicio de
administración de suscripciones del portal de clientes, puede activar Insights con un comando. Use
el comando insights-client --register para registrar el sistema.
36 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
nota
Este paso no es necesario en sistemas Red Hat Enterprise Linux 8.
• Confirme que el sistema esté visible en Inventory (Inventario) en la consola web de Insights en
https://cloud.redhat.com/insights.
RH199-RHEL8.2-es-1-20200928 37
capítulo 1 | Acceder a sistemas y obtener soporte
Para cada problema, Insights proporciona información adicional para ayudarlo a comprender
el problema, priorizar las tareas para resolverlo, determinar qué mitigación o corrección está
disponible y automatizar su resolución con la guía de reproducción Ansible. Insights también
proporciona enlaces a artículos de la base de conocimiento en el Portal de clientes.
38 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Riesgo total
Indica el impacto del problema en su sistema.
Riesgo de cambio
Indica el impacto de la acción de corrección en su sistema. Por ejemplo, es posible que deba
reiniciar el sistema.
RH199-RHEL8.2-es-1-20200928 39
capítulo 1 | Acceder a sistemas y obtener soporte
Para cada CVE, Insights proporciona información adicional y enumera los sistemas expuestos.
Puede hacer clic en Remediate (Corregir) para crear una guía de reproducción Ansible para la
corrección.
40 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
RH199-RHEL8.2-es-1-20200928 41
capítulo 1 | Acceder a sistemas y obtener soporte
En la captura de pantalla anterior, Insights compara el mismo sistema en dos momentos diferentes.
42 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Referencias
páginas de manual insights-client(8) y insights-client.conf(5)
Para obtener más información sobre la exclusión de datos recopilados por Insights,
consulte los capítulos Ocultamiento de datos de cliente de Red Hat Insights y
Redacción de datos de cliente de Red Hat Insights en la Guía de configuración de
clientes para Red Hat Insights en
https://access.redhat.com/documentation/en-us/red_hat_insights/2020-04/html-
single/client_configuration_guide_for_red_hat_insights/index
Hay información disponible sobre los datos recopilados por Red Hat Insights en
Información del sistema recopilada por Red Hat Insights
https://access.redhat.com/articles/1598863
RH199-RHEL8.2-es-1-20200928 43
capítulo 1 | Acceder a sistemas y obtener soporte
Cuestionario
1. ¿En qué orden ocurren los siguientes eventos cuando se administra un sistema de
Red Hat Enterprise Linux con Red Hat Insights?
1. Red Hat Insights analiza los metadatos del sistema para determinar qué problemas y
recomendaciones se aplican.
2. El cliente de Insights carga los metadatos del sistema al servicio de Red Hat Insights.
3. El administrador ve las acciones recomendadas en el portal de clientes de Red Hat
Insights.
4. El cliente de Insights recopila metadatos del sistema en el sistema Red Hat Enterprise
Linux.
a. 1, 2, 3, 4
b. 4, 2, 1, 3
c. 4, 2, 3, 1
d. 4, 1, 2, 3
3. ¿Desde qué página de la consola de Red Hat Insights puede generar una guía de
reproducción Ansible para actualizar los paquetes RPM en un sistema?
a. Advisor (Asesor) → Recommendations (Recomendaciones)
b. Vulnerability (Vulnerabilidad) → Systems (Sistemas)
c. Patch (Parche) → Systems (Sistemas)
d. Remediations (Remediaciones)
44 RH199-RHEL8.2-es-1-20200928
capítulo 1 | Acceder a sistemas y obtener soporte
Solución
1. ¿En qué orden ocurren los siguientes eventos cuando se administra un sistema de
Red Hat Enterprise Linux con Red Hat Insights?
1. Red Hat Insights analiza los metadatos del sistema para determinar qué problemas y
recomendaciones se aplican.
2. El cliente de Insights carga los metadatos del sistema al servicio de Red Hat Insights.
3. El administrador ve las acciones recomendadas en el portal de clientes de Red Hat
Insights.
4. El cliente de Insights recopila metadatos del sistema en el sistema Red Hat Enterprise
Linux.
a. 1, 2, 3, 4
b. 4, 2, 1, 3
c. 4, 2, 3, 1
d. 4, 1, 2, 3
3. ¿Desde qué página de la consola de Red Hat Insights puede generar una guía de
reproducción Ansible para actualizar los paquetes RPM en un sistema?
a. Advisor (Asesor) → Recommendations (Recomendaciones)
b. Vulnerability (Vulnerabilidad) → Systems (Sistemas)
c. Patch (Parche) → Systems (Sistemas)
d. Remediations (Remediaciones)
RH199-RHEL8.2-es-1-20200928 45
capítulo 1 | Acceder a sistemas y obtener soporte
Resumen
En este capítulo, aprendió lo siguiente:
• La shell Bash es un intérprete de comandos que solicita a los usuarios interactivos que
especifiquen los comandos de Linux.
• Muchos comandos tienen una opción --help que muestra un mensaje o una pantalla de uso.
• El comando ssh-keygen genera un par de claves SSH para la autenticación. El comando ssh-
copy-id exporta la clave pública a sistemas remotos.
• Red Hat Insights es una herramienta de análisis predictivo de SaaS que ayuda a identificar y
corregir las amenazas a la seguridad, el rendimiento, la disponibilidad y la estabilidad de los
sistemas.
46 RH199-RHEL8.2-es-1-20200928
capítulo 2
RH199-RHEL8.2-es-1-20200928 47
capítulo 2 | Navegar por sistemas de archivos
Objetivos
Tras finalizar esta sección, deberá ser capaz de describir la manera en que Linux organiza los
archivos y los propósitos de diversos directorios en la jerarquía del sistema de archivos.
Figura 2.1: Directorios importantes del sistema de archivos de Red Hat Enterprise Linux 8
El directorio / es el directorio raíz (root) que está en la parte superior de la jerarquía del sistema
de archivos. El carácter / también se usa también como un separador de directorio en los nombres
de archivo. Por ejemplo, si etc es un subdirectorio del directorio /, podemos llamar a ese
directorio /etc. De la misma manera, si el directorio /etc contiene un archivo con el nombre
issue, podemos referirnos a ese archivo como /etc/issue.
Los subdirectorios de / se usan con fines estandarizados para organizar archivos por tipo y
objetivo. Esto facilita la posibilidad de encontrar archivos. Por ejemplo, en el directorio raíz, el
subdirectorio /boot se usa para guardar archivos que se necesitan para arrancar el sistema.
48 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
nota
Los siguientes términos ayudan a describir el contenido del directorio del sistema de
archivos:
La siguiente tabla enumera algunos de los directorios más importantes del sistema por nombre y
objetivo.
Ubicación Propósito
/var Datos variables específicos de este sistema que deberían conservarse entre
los arranques. Los archivos que cambian en forma dinámica (por ejemplo,
bases de datos, directorios caché, archivos de registro, documentos en cola
de impresión y contenido de sitio web) pueden encontrarse en /var.
/run Datos de tiempo de ejecución para procesos que se iniciaron desde el último
arranque. Esto incluye archivos de ID de proceso y archivos de bloqueo,
entre otros elementos. El contenido de este directorio se vuelve a crear en
el arranque nuevo. Este directorio consolida /var/run y /var/lock de
versiones anteriores de Red Hat Enterprise Linux.
/home Los directorios de inicio son aquellos donde los usuarios habituales guardan
sus datos personales y los archivos de configuración.
RH199-RHEL8.2-es-1-20200928 49
capítulo 2 | Navegar por sistemas de archivos
Ubicación Propósito
/tmp Es un espacio con capacidad de escritura por parte de cualquier usuario del
sistema para archivos temporales. Los archivos a los que no se haya accedido,
y que no se hayan cambiado ni modificado durante 10 días se eliminan de este
directorio automáticamente. Existe otro directorio temporal, /var/tmp, en el
que los archivos que no tuvieron acceso, cambios ni modificaciones durante
más de 30 días se eliminan automáticamente.
/dev Contiene archivos de dispositivo especiales que el sistema usa para acceder al
hardware.
Importante
En Red Hat Enterprise Linux 7 y versiones posteriores, cuatro directorios antiguos
en / tienen contenido idéntico al de sus equivalentes que están en /usr:
• /bin y /usr/bin
• /sbin y /usr/sbin
• /lib y /usr/lib
• /lib64 y /usr/lib64
En versiones anteriores de Red Hat Enterprise Linux, estos eran directorios distintos
que contenían diferentes conjuntos de archivos.
Referencias
Página del manual: hier(7)
50 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Cuestionario
2. ¿Qué directorio está en la parte superior de la jerarquía del sistema de archivos del
sistema?
a. /etc
b. /
c. /home/root
d. /root
5. ¿Qué directorio contiene datos dinámicos, como para bases de datos y sitios web?
a. /etc
b. /run
c. /usr
d. /var
RH199-RHEL8.2-es-1-20200928 51
capítulo 2 | Navegar por sistemas de archivos
52 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Solución
2. ¿Qué directorio está en la parte superior de la jerarquía del sistema de archivos del
sistema?
a. /etc
b. /
c. /home/root
d. /root
5. ¿Qué directorio contiene datos dinámicos, como para bases de datos y sitios web?
a. /etc
b. /run
c. /usr
d. /var
RH199-RHEL8.2-es-1-20200928 53
capítulo 2 | Navegar por sistemas de archivos
54 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Objetivos
Tras finalizar esta sección, debería ser capaz de crear, copiar, mover y eliminar archivos y
directorios.
La siguiente tabla resume algunos de los comandos de administración de archivos más comunes.
El resto de esta sección analizará con más detalle las formas de usar estos comandos.
Creación de directorios
El comando mkdir crea uno o más directorios o subdirectorios. Toma como argumentos una lista
de rutas a los directorios que desea crear.
En el siguiente ejemplo, simule que está intentando crear un directorio en el directorio Videos
llamado Watched, pero que accidentalmente omite la letra "s" en Videos en su comando mkdir.
RH199-RHEL8.2-es-1-20200928 55
capítulo 2 | Navegar por sistemas de archivos
El comando mkdir generó un error porque Videos se escribió mal y el directorio Video no existe.
Si hubiera usado el comando mkdir con la opción -p, el directorio Video se crearía, lo cual no era
su intención original, y el subdirectorio Watched se crearía en ese directorio incorrecto.
Después de escribir correctamente el nombre del directorio principal Videos, la creación del
subdirectorio Watched se ejecutará de forma correcta.
Videos/Watched:
Use el comando mkdir -p y rutas relativas delimitadas por espacios para cada nombre de
subdirectorio a fin de crear varios directorios principales con subdirectorios.
Documents/ProjectX:
Documents/ProjectY:
Documents/Thesis:
Chapter1 Chapter2 Chapter3
Documents/Thesis/Chapter1:
Documents/Thesis/Chapter2:
Documents/Thesis/Chapter3:
Videos:
blockbuster1.ogg blockbuster2.ogg Watched
Videos/Watched:
56 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
El último comando mkdir creó tres subdirectorios de ChapterN con un comando. La opción -p
creó el directorio principal faltante Thesis.
Copia de archivos
El comando cp copia un archivo y crea un archivo nuevo en el directorio actual o en el directorio
especificado. También puede copiar varios archivos en un directorio.
Advertencia
Si el archivo de destino ya existe, el comando cp sobrescribe el archivo.
Cuando se copian varios archivos con un comando, el último argumento debe ser un directorio.
Los archivos copiados conservan su nombre original en el directorio nuevo. Si existe un archivo
con el mismo nombre en el directorio de destino, el archivo existente se sobrescribe. De manera
predeterminada, cp no copia directorios; los omite.
Thesis:
Chapter1 Chapter2 Chapter3
En el primer comando cp, el directorio Thesis no se pudo copiar, pero sí lo hicieron los archivos
thesis_chapter1.odf y thesis_chapter2.odf.
Si desea copiar un archivo en el directorio de trabajo actual, puede usar el directorio especial .:
Use el comando de copiar con la opción -r —recursive— (recurrente) para copiar el directorio
Thesis y su contenido al directorio ProjectX.
RH199-RHEL8.2-es-1-20200928 57
capítulo 2 | Navegar por sistemas de archivos
ProjectX/Thesis:
Chapter1 Chapter2 Chapter3
ProjectX/Thesis/Chapter1:
ProjectX/Thesis/Chapter2:
thesis_chapter2.odf
ProjectX/Thesis/Chapter3:
Importante
No existe una función de deshacer la eliminación de línea de comandos ni tampoco
una papelera de reciclaje desde donde se puedan restaurar los archivos que se
borraron.
58 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Si intenta usar el comando rm para eliminar un directorio sin usar la opción -r, el comando fallará.
Thesis/Chapter1:
thesis_chapter1.odf
Thesis/Chapter2:
thesis_chapter2.odf
Thesis/Chapter3:
[user@host Documents]$ rm -r Thesis/Chapter1
[user@host Documents]$ ls -l Thesis
total 8
drwxrwxr-x. 2 user user 4096 Feb 11 12:47 Chapter2
drwxrwxr-x. 2 user user 4096 Feb 11 12:48 Chapter3
RH199-RHEL8.2-es-1-20200928 59
capítulo 2 | Navegar por sistemas de archivos
Advertencia
Si especifica tanto la opción -i como la -f, la opción -f tiene prioridad, y no se le
pedirá confirmación antes de que rm borre los archivos.
En el siguiente ejemplo, el comando rmdir solo elimina el directorio que está vacío. Al igual
que en el ejemplo anterior, debe usar el comando rm -r para eliminar un directorio que tiene
contenido.
nota
El comando rm sin opciones no puede eliminar un directorio vacío. Debes usar el
comando rmdir, rm -d (que equivale a rmdir), o rm -r.
Referencias
Páginas del manual cp(1), mkdir(1), mv(1), rm(1) y rmdir(1)
60 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Ejercicio Guiado
Resultados
Deberá ser capaz de crear, organizar, copiar, y eliminar archivos y directorios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. En el directorio de inicio del usuario student, use el comando mkdir para crear tres
subdirectorios: Music, Pictures y Videos.
3. Aún en el directorio de inicio del usuario student, use el comando touch para crear
conjuntos de archivos de práctica vacíos para usar durante este trabajo de laboratorio.
RH199-RHEL8.2-es-1-20200928 61
capítulo 2 | Navegar por sistemas de archivos
[student@servera ~]$ ls -l
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film1.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film2.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film3.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film4.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film5.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film6.avi
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Music
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Pictures
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap1.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap2.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap3.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap4.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap5.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap6.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song1.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song2.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song3.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song4.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song5.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song6.mp3
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Videos
4. Aún en el directorio de inicio del usuario student, mueva los archivos de canciones al
subdirectorio Music, los archivos de instantáneas al subdirectorio Pictures y los archivos
de películas al subdirectorio Videos.
Cuando distribuya archivos desde una ubicación hacia muchas ubicaciones, primero
cambie el directorio que contiene los archivos de origen. Use la sintaxis de ruta más simple,
absoluta o relativa, para llegar al destino de cada tarea de administración de archivos.
Pictures:
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap1.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap2.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap3.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap4.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap5.jpg
62 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Videos:
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film1.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film2.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film3.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film4.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film5.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film6.avi
5. Aún en el directorio de inicio del usuario student, cree tres subdirectorios para organizar
los archivos en proyectos. Nombre a los subdirectorios friends, family y work. Use un
solo comando para crear los tres subdirectorios al mismo tiempo.
Usará estos directorios para reorganizar los archivos en proyectos.
6. Copie una selección de los nuevos archivos a los directorios del proyecto family y
friends. Use todos los comandos que necesite. No tiene que usar un solo comando como
en el ejemplo. Para cada proyecto, primero pase al directorio del proyecto y, a continuación,
copie los archivos de origen en este directorio. Tenga en cuenta que está haciendo copias;
por lo tanto, los archivos originales permanecerán en sus ubicaciones originales una vez que
los archivos se hayan copiado a los directorios del proyecto.
• Copie los archivos (de todo tipo) que tengan los números 1 y 2 al subdirectorio friends.
• Copie los archivos (de todo tipo) que tengan los números 3 y 4 al subdirectorio family.
Cuando copie archivos de varias ubicaciones a una sola ubicación, Red Hat recomienda que
pase al directorio de destino antes de copiar los archivos. Use la sintaxis de ruta más simple,
absoluta o relativa, para llegar al origen de cada tarea de administración de archivos.
RH199-RHEL8.2-es-1-20200928 63
capítulo 2 | Navegar por sistemas de archivos
8. Las tareas del proyecto ya están terminadas, por lo que es hora de limpiar los proyectos.
Pase al directorio de inicio del usuario student. Intente eliminar los directorios del
proyecto family y friends con un solo comando rmdir.
[student@servera work]$ cd
[student@servera ~]$ rmdir family friends
rmdir: failed to remove 'family': Directory not empty
rmdir: failed to remove 'friends': Directory not empty
El uso del comando rmdir debería fallar porque ambos subdirectorios contienen archivos.
64 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
10. Elimine todos los archivos del proyecto de trabajo, pero no elimine el directorio de trabajo.
11. Por último, desde el directorio de inicio del usuario student, use el comando rmdir para
eliminar el directorio work. El comando deberá ser capaz de completar la acción sin errores
ahora que está vacío.
[student@servera work]$ cd
[student@servera ~]$ rmdir work
[student@servera ~]$ ls -l
total 0
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Music
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Pictures
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Videos
Finalizar
En workstation, ejecute el script lab files-manage finish para terminar este ejercicio.
Este script elimina todos los archivos y directorios creados durante el ejercicio.
RH199-RHEL8.2-es-1-20200928 65
capítulo 2 | Navegar por sistemas de archivos
Objetivos
Tras finalizar esta sección, deberá ser capaz de hacer que varios nombres de archivo hagan
referencia al mismo archivo con enlaces duros y simbólicos (o "blandos").
Puede comprobar si un archivo tiene varios enlaces duros con el comando ls -l. Uno de los
datos que aparecen es el recuento de enlaces de cada archivo, es decir, la cantidad de enlaces
duros que tiene el archivo.
Puede usar el comando ln para crear un nuevo enlace duro (otro nombre) que apunte a un archivo
existente. El comando necesita al menos dos argumentos, una ruta al archivo existente y la ruta al
enlace duro que desea crear.
Si desea verificar si dos archivos tienen los mismos enlaces duros, una posibilidad es usar la opción
-i con el comando ls para enumerar el número de inodo de los archivos. Si los archivos están
66 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
en el mismo sistema de archivos (que se explicará más adelante) y sus números de inodo son los
mismos, los archivos son enlaces duros que apuntan a los mismos datos.
Importante
Todos los enlaces duros que hacen referencia al mismo archivo tendrán el mismo
recuento de enlaces, permiso de acceso, pertenencia a usuarios y grupos, marcas
de tiempo y contenido de archivo. Si se modifica algún dato en un enlace duro,
todos los demás enlaces duros que apuntan al mismo archivo también mostrarán el
dato nuevo. Esto se debe a que cada enlace duro apunta a los mismos datos en el
dispositivo de almacenamiento.
Incluso si se elimina el archivo original, el contenido del archivo continúa estando disponible
siempre y cuando exista un enlace duro como mínimo. Los datos solo se eliminan del
almacenamiento cuando se elimina el último enlace duro.
En segundo lugar, los enlaces duros solo se pueden usar si ambos archivos están en el mismo
sistema de archivos. La jerarquía del sistema de archivos puede estar formada por varios
dispositivos de almacenamiento. Dependiendo de la configuración de su sistema, cuando pase a
un nuevo directorio, ese directorio y su contenido pueden almacenarse en un sistema de archivos
diferente.
Puede usar el comando df para enumerar los directorios que están en diferentes sistemas de
archivos. Por ejemplo, es posible que visualice un resultado como el siguiente:
[user@host ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 886788 0 886788 0% /dev
tmpfs 902108 0 902108 0% /dev/shm
tmpfs 902108 8696 893412 1% /run
tmpfs 902108 0 902108 0% /sys/fs/cgroup
/dev/mapper/rhel_rhel8--root 10258432 1630460 8627972 16% /
/dev/sda1 1038336 167128 871208 17% /boot
tmpfs 180420 0 180420 0% /run/user/1000
[user@host ~]$
RH199-RHEL8.2-es-1-20200928 67
capítulo 2 | Navegar por sistemas de archivos
Los archivos que están en dos directorios diferentes con el indicador "Montado en" y sus
subdirectorios están en sistemas de archivos distintos. (La coincidencia más específica es la
correcta). Por lo tanto, el sistema en este ejemplo. Puede crear un enlace duro entre /var/tmp/
link1 y /home/user/file porque ambos son subdirectorios de /, pero no de ningún otro
directorio de la lista. Pero no puede crear un enlace duro entre /boot/test/badlink y /home/
user/file porque el primer archivo está en un subdirectorio de /boot (en la lista "Montado en")
y el segundo archivo no está allí.
Los enlaces blandos tienen algunas ventajas en comparación con los enlaces duros:
En el siguiente ejemplo, el comando ln -s se usa para crear un nuevo enlace blando para
el archivo existente /home/user/newfile-link2.txt que se llamará /tmp/newfile-
symlink.txt.
Cuando se elimina el archivo regular original, el enlace blando seguirá apuntando al archivo, pero
el destino desaparece. Un enlace blando que apunta a un archivo que falta recibe el nombre de
"enlace blando colgante".
68 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
Importante
Un efecto secundario del enlace blando colgante en el ejemplo anterior es que
si usted crea más adelante un nuevo archivo con el mismo nombre que el archivo
eliminado (/home/user/newfile-link2.txt), el enlace blando ya no estará
"colgando" y apuntará al archivo nuevo.
Los enlaces duros no funcionan de esta forma. Si borra un enlace duro y, luego, usa
herramientas normales (en lugar de ln) para crear un nuevo archivo con el mismo
nombre, el nuevo archivo no se vinculará al archivo anterior.
Aquí presentamos una forma de comparar enlaces duros y enlaces blandos que
puede ayudarlo a comprender cómo funcionan:
Un enlace blando puede apuntar a un directorio. El enlace blando funciona como un directorio.
Si cambia al enlace blando con cd, hará que el directorio de trabajo actual se convierta en el
directorio vinculado. Algunas herramientas pueden hacer un seguimiento del hecho de que usted
siguió un enlace blando para llegar allí. Por ejemplo, de manera predeterminada, cd actualizará
su directorio de trabajo actual por medio del nombre del enlace blando, y no del nombre del
directorio real. (Existe la opción, -P, que permite actualizarlo con el nombre del directorio real).
Referencias
Página del manual: ln(1)
RH199-RHEL8.2-es-1-20200928 69
capítulo 2 | Navegar por sistemas de archivos
Ejercicio Guiado
Resultados
Deberá ser capaz de crear enlaces duros y enlaces blandos entre archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
70 RH199-RHEL8.2-es-1-20200928
capítulo 2 | Navegar por sistemas de archivos
4. Salga de servera.
Finalizar
En workstation, ejecute el script lab files-make finish para terminar este ejercicio. Este
script elimina todos los archivos y directorios creados en servera durante el ejercicio.
RH199-RHEL8.2-es-1-20200928 71
capítulo 2 | Navegar por sistemas de archivos
Resumen
En este capítulo, aprendió lo siguiente:
• Las rutas absolutas comienzan con / y especifican la ubicación de un archivo en la jerarquía del
sistema de archivos.
• Las rutas relativas no comienzan con / y especifican la ubicación de un archivo en relación con el
directorio de trabajo actual.
• Se usan cinco comandos clave para administrar archivos: mkdir, rmdir, cp, mv y rm.
• Los enlaces duros y los enlaces blandos son formas diferentes de hacer que varios nombres de
archivo apunten a los mismos datos.
72 RH199-RHEL8.2-es-1-20200928
capítulo 3
Administración de usuarios y
grupos locales
Meta Crear, administrar y eliminar usuarios y grupos
locales y administrar políticas de contraseña
locales.
RH199-RHEL8.2-es-1-20200928 73
capítulo 3 | Administración de usuarios y grupos locales
Objetivos
Después de completar esta sección, debe poder describir el propósito de los usuarios y grupos en
un sistema Linux.
¿Qué es un usuario?
Una cuenta de usuario se usa para proporcionar límites de seguridad entre diferentes personas y
programas que pueden ejecutar comandos.
Los usuarios tienen nombres de usuario para identificarlos como usuarios humanos y facilitar
el trabajo con ellos. Internamente, el sistema distingue las cuentas de usuario por el número de
identificación único que se les asigna, el ID de usuario o UID. Si las personas usan una cuenta de
usuario, generalmente se le asignará una contraseña secreta que el usuario usará para demostrar
que es el usuario autorizado real al iniciar sesión.
Las cuentas de usuario son fundamentales para la seguridad del sistema. Cada proceso (programa
en ejecución) en el sistema se ejecuta como un usuario particular. Cada archivo tiene un usuario
particular como su propietario. La propiedad del archivo ayuda al sistema a aplicar el control
de acceso para los usuarios de los archivos. El usuario asociado con un proceso de ejecución
determina los archivos y directorios accesibles para ese proceso.
Hay tres tipos principales de cuenta de usuario: el superusuario, el usuario del sistema y el usuario
normal.
• El sistema tiene cuentas de usuario del sistema que usan los procesos que proporcionan
servicios de soporte. Estos procesos, o daemons por lo general no necesitan ejecutarse como
superusuario. Son cuentas asignadas sin privilegios que les permiten proteger sus archivos y
otros recursos entre sí y de los usuarios habituales del sistema. Los usuarios no inician sesión de
forma interactiva mediante una cuenta de usuario del sistema.
• La mayoría de los usuarios tienen cuentas de usuario normal que usan para su trabajo diario. Al
igual que los usuarios del sistema, los usuarios normales tienen acceso limitado al sistema.
Puede usar el comando id para mostrar información acerca del usuario con sesión iniciada
actualmente.
[user01@host ~]$ id
uid=1000(user01) gid=1000(user01) groups=1000(user01)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Para ver información básica sobre otro usuario, envíe el nombre de usuario al comando id como
argumento.
74 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
[user01@host]$ id user02
uid=1002(user02) gid=1001(user02) groups=1001(user02)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Para ver el propietario de un archivo, use el comando ls -l. Para ver el propietario de un
directorio, use el comando ls -ld. En la siguiente salida, la tercera columna muestra el nombre
de usuario.
Para ver la información del proceso, use el comando ps. La opción predeterminada es mostrar
solo los procesos que están en la shell actual. Agregue la opción a para ver todos los procesos con
un terminal. Para ver el usuario relacionado con un proceso, incluya la opción u. En la siguiente
salida, la primera columna muestra el nombre de usuario.
[user01@host]$ ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 777 0.0 0.0 225752 1496 tty1 Ss+ 11:03 0:00 /sbin/agetty -o -
p -- \u --noclear tty1 linux
root 780 0.0 0.1 225392 2064 ttyS0 Ss+ 11:03 0:00 /sbin/agetty -o -
p -- \u --keep-baud 115200,38400,9600
user01 1207 0.0 0.2 234044 5104 pts/0 Ss 11:09 0:00 -bash
user01 1319 0.0 0.2 266904 3876 pts/0 R+ 11:33 0:00 ps au
En la salida de los comandos anteriores, se muestran los usuarios por nombre, pero, internamente,
el sistema operativo usa los UID para realizar un seguimiento de los usuarios. La asignación de
nombres de usuario a UID se define en las bases de datos de la información de la cuenta. De forma
predeterminada, los sistemas usan el archivo /etc/passwd para almacenar información sobre los
usuarios locales.
Cada línea del archivo /etc/passwd contiene información sobre un usuario. Se divide en siete
campos separados por dos puntos. Este es un ejemplo de una línea de /etc/passwd:
RH199-RHEL8.2-es-1-20200928 75
capítulo 3 | Administración de usuarios y grupos locales
¿Qué es un grupo?
Un grupo es una colección de usuarios que necesitan compartir el acceso a archivos y otros
recursos del sistema. Los grupos se pueden usar para otorgar acceso a los archivos a un conjunto
de usuarios en lugar de a un solo usuario.
Como los usuarios, los grupos tienen nombres de grupo para facilitar el trabajo con ellos.
Internamente, el sistema distingue los grupos por el número de identificación único que se les
asigna, el ID de grupo o GID.
Cada línea del archivo /etc/group contiene información sobre un grupo. Cada entrada de grupo
se divide en cuatro campos separados con dos puntos. Este es un ejemplo de una línea de /etc/
group:
Normalmente, cuando crea un nuevo usuario normal, se crea un nuevo grupo con el mismo nombre
que ese usuario. Ese grupo se usa como el grupo principal del nuevo usuario, y ese usuario es
el único miembro de este grupo privado de usuarios. Se deduce que esto ayuda a simplificar la
administración de los permisos de archivos, que se analizará más adelante en este curso.
Los usuarios también pueden tener grupos adicionales. La pertenencia a grupos adicionales se
determina a través del archivo /etc/group. A los usuarios se les otorga acceso a los archivos en
función de si alguno de sus grupos tiene acceso. No importa si el grupo o los grupos que tienen
acceso son principales o adicionales para el usuario.
Por ejemplo, si el usuario user01 tiene un grupo principal usero01 y grupos adicionales wheel y
webadmin, entonces ese usuario puede leer archivos legibles para cualquiera de esos tres grupos.
El comando id también se puede usar para averiguar sobre la membrecía de grupo de un usuario.
[user03@host ~]$ id
uid=1003(user03) gid=1003(user03) groups=1003(user03),10(wheel),10000(group01)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
En el ejemplo anterior, user03 tiene el grupo user03 como su grupo principal (gid). El elemento
groups enumera todos los grupos de este usuario, y además del grupo principal user03, el
usuario tiene los grupos wheel y group01 como grupos adicionales.
76 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Referencias
Páginas del manual: id(1), passwd(5) y group(5)
(Tenga en cuenta que el paquete glibc-devel se debe haber instalado para que este
nodo de información esté disponible).
RH199-RHEL8.2-es-1-20200928 77
capítulo 3 | Administración de usuarios y grupos locales
Cuestionario
1. ¿Qué ítem representa un número que identifica al usuario en el nivel más fundamental?
a. usuario principal
b. UID
c. GID
d. nombre de usuario
2. ¿Qué ítem representa el programa que proporciona el prompt de línea de comandos del
usuario?
a. shell principal
b. directorio de inicio
c. shell de inicio de sesión
d. nombre de comando
4. ¿Qué ítem o archivo representa la ubicación de los archivos personales del usuario?
a. directorio de inicio
b. shell de inicio de sesión
c. /etc/passwd
d. /etc/group
5. ¿Qué ítem representa un número que identifica al grupo en el nivel más fundamental?
a. grupo principal
b. UID
c. GID
d. groupid
78 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
RH199-RHEL8.2-es-1-20200928 79
capítulo 3 | Administración de usuarios y grupos locales
Solución
1. ¿Qué ítem representa un número que identifica al usuario en el nivel más fundamental?
a. usuario principal
b. UID
c. GID
d. nombre de usuario
2. ¿Qué ítem representa el programa que proporciona el prompt de línea de comandos del
usuario?
a. shell principal
b. directorio de inicio
c. shell de inicio de sesión
d. nombre de comando
4. ¿Qué ítem o archivo representa la ubicación de los archivos personales del usuario?
a. directorio de inicio
b. shell de inicio de sesión
c. /etc/passwd
d. /etc/group
5. ¿Qué ítem representa un número que identifica al grupo en el nivel más fundamental?
a. grupo principal
b. UID
c. GID
d. groupid
80 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
RH199-RHEL8.2-es-1-20200928 81
capítulo 3 | Administración de usuarios y grupos locales
Objetivos
Después de completar esta sección, podrá cambiar a la cuenta de superusuario para administrar
un sistema Linux y otorgar a otros usuarios acceso de superusuario a través del comando sudo.
El superusuario
La mayoría de los sistemas operativos tienen una especie de superusuario; un usuario que tiene
todo el poder sobre el sistema. En Red Hat Enterprise Linux, este es el usuario root. Este usuario
tiene el poder de anular los privilegios normales del sistema de archivos, y se usa para manejar y
administrar el sistema. Para realizar tareas, como la instalación o eliminación de software, y para
administrar los directorios y los archivos del sistema, los usuarios deben aumentar sus privilegios al
usuario root.
El usuario root solo entre los usuarios normales puede controlar la mayoría de los dispositivos,
pero hay algunas excepciones. Por ejemplo, los usuarios normales pueden controlar dispositivos
desmontables, como dispositivos USB. Por lo tanto, los usuarios normales pueden agregar y
eliminar archivos y administrar de otro modo un dispositivo desmontable, pero solo el usuario
root puede administrar los discos duros "fijos" de manera predeterminada.
Sin embargo, este privilegio ilimitado viene acompañado de una responsabilidad. El usuario
root tiene poder ilimitado para dañar el sistema: eliminar archivos y directorios, eliminar cuentas
de usuarios, agregar puertas traseras, etc. Si la cuenta del usuario root está comprometida,
alguien más tendrá control administrativo del sistema. A lo largo de este curso, se les indicará a los
administradores que inicien sesión como usuario normal y que escalen los privilegios a root solo
cuando sea necesario.
Advertencia
Una práctica habitual en Microsoft Windows en el pasado era que el usuario
administrador local inicie sesión en forma directa para que realice las tareas de
administrador del sistema. Aunque esto es posible en Linux, Red Hat recomienda
que los administradores del sistema no inicien sesión directamente como root. En
su lugar, los administradores de sistema deben iniciar sesión como usuario normal y
usar otros mecanismos (su, sudo o PolicyKit, por ejemplo) para obtener privilegios
de superusuario temporalmente.
82 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Intercambio de usuarios
El comando su le permite a los usuarios cambiar a una cuenta de usuario diferente. Si ejecuta
su desde una cuenta de usuario normal, se le solicitará la contraseña de la cuenta a la que desea
cambiar. Cuando root ejecuta su, no es necesario introducir la contraseña del usuario.
[user01@host ~]$ su -
Password:
[root@host ~]#
El comando su inicia una shell sin inicio de sesión, mientras que el comando su - (con la opción
de guion) inicia una shell de inicio de sesión. La diferencia principal entre los dos comandos es que
su - establece el entorno de la shell como si iniciara una sesión nueva como ese usuario, mientras
que su simplemente inicia una shell como ese usuario, pero usa la configuración de entorno del
usuario original.
En la mayoría de los casos, los administradores deben ejecutar su - para obtener una shell con
la configuración de entorno normal del usuario de destino. Si desea obtener más información,
consulte la página del manual bash(1).
nota
El comando su se usa frecuentemente para obtener una interfaz de línea de
comandos (prompt de shell) que se ejecuta como otro usuario, generalmente root.
Sin embargo, con la opción -c, se puede usar como la utilidad de Windows runas
para ejecutar un programa arbitrario como otro usuario. Ejecute info su para ver
más detalles.
A diferencia de su, sudo por lo general requiere que un usuario ingrese su propia contraseña para
la autenticación y no la contraseña de la cuenta a la que intenta acceder. Es decir, los usuarios que
usan sudo para ejecutar comandos como root no necesitan saber la contraseña root. En su
lugar, usan sus propias contraseñas para autenticar el acceso.
Además, sudo se puede configurar para permitir que usuarios específicos ejecuten cualquier
comando como otro usuario, o solo algunos comandos como ese usuario.
Por ejemplo, cuando sudo se configura para permitir al usuario user01 ejecutar el comando
usermod como root, el usuario user01 puede ejecutar el siguiente comando a fin de bloquear o
desbloquear una cuenta de usuario:
RH199-RHEL8.2-es-1-20200928 83
capítulo 3 | Administración de usuarios y grupos locales
Un beneficio adicional de usar sudo es que todos los comandos ejecutados se registran de
manera predeterminada en /var/log/secure.
En Red Hat Enterprise Linux 7 y Red Hat Enterprise Linux 8, todos los miembros del grupo
wheel pueden usar sudo para ejecutar comandos como cualquier usuario, incluido el usuario
root. Se le pedirá al usuario que ingrese su propia contraseña. Este es un cambio de Red Hat
Enterprise Linux 6 y versiones anteriores, donde los usuarios que eran miembros del grupo wheel
no obtenían este acceso administrativo de manera predeterminada.
Advertencia
RHEL 6 no otorgó ningún privilegio especial al grupo wheel de manera
predeterminada. Es probable que los sitios que estuvieron usando este grupo para
un propósito no estándar se sorprendan cuando RHEL 7 y RHEL 8 otorguen en
forma automática y a todos los miembros de wheel privilegios totales de sudo.
Esto podría provocar que usuarios no autorizados obtengan acceso administrativo a
los sistemas RHEL 7 y RHEL 8.
Otra forma de acceder a la cuenta root con sudo es usar el comando sudo -i. Esto cambiará
a la cuenta root y ejecutará la shell predeterminada de ese usuario (generalmente bash) y
84 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
los scripts de inicio de sesión de shell asociados. Si solo desea ejecutar la shell, puede usar el
comando sudo -s.
Por ejemplo, un administrador puede obtener una shell interactiva como root en una instancia
de AWS EC2 al usar una autenticación de clave pública de SSH para iniciar sesión como el usuario
normal ec2-user y, luego, ejecutar sudo -i para obtener la shell del usuario root.
Configuración de sudo
El archivo de configuración principal para sudo es /etc/sudoers. Para evitar problemas si varios
administradores intentan editarlo al mismo tiempo, solo debe editarse con el comando especial
visudo.
Por ejemplo, la siguiente línea del archivo /etc/sudoers habilita el acceso sudo para miembros
del grupo wheel.
En esta línea, %wheel es el usuario o grupo al que se aplica la regla. Un % especifica que este es
un grupo, el grupo wheel. El ALL=(ALL) especifica que en cualquier host que pueda tener
este archivo, wheel puede ejecutar cualquier comando. El ALL final especifica que wheel puede
ejecutar esos comandos como cualquier usuario en el sistema.
nota
El uso de archivos adicionales en el directorio /etc/sudoers.d es conveniente
y simple. Puede habilitar o deshabilitar el acceso sudo simplemente al copiar un
archivo en el directorio o eliminándolo de él.
Para habilitar acceso sudo completo para el usuario user01, puede crear /etc/sudoers.d/
user01 con el siguiente contenido.
Para habilitar acceso sudo completo para el grupo group01, puede crear /etc/sudoers.d/
group01 con el siguiente contenido:
RH199-RHEL8.2-es-1-20200928 85
capítulo 3 | Administración de usuarios y grupos locales
También es posible configurar sudo para permitir que un usuario ejecute comandos como otro
usuario sin ingresar su contraseña.
Si bien otorgar este nivel de acceso a un usuario o grupo implica riesgos de seguridad
evidentes, se usa con frecuencia en instancias de la nube, máquinas virtuales y sistemas de
aprovisionamiento para facilitar la configuración de servidores. La cuenta con este acceso se debe
proteger cuidadosamente y puede requerir autenticación de clave pública de SSH para que un
usuario que se encuentra en un sistema remoto pueda acceder a ella.
Por ejemplo, la AMI oficial de Red Hat Enterprise Linux en Amazon Web Services Marketplace se
envía con las contraseñas de los usuarios root y ec2-user bloqueadas. La cuenta de usuario
ec2-user está configurada para permitir el acceso interactivo remoto a través de la autenticación
de clave pública de SSH. El usuario ec2-user también puede ejecutar cualquier comando
como root sin contraseña debido a que la última línea del archivo /etc/sudoers de AMI está
configurada de la siguiente manera:
El requisito de ingresar una contraseña para sudo puede volverse a habilitar o pueden hacerse
otros cambios para reforzar la seguridad como parte del proceso de configuración del sistema.
86 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
nota
En este curso, puede ver el uso de sudo su - en lugar de sudo -i. Ambos
comandos funcionan, pero hay algunas diferencias sutiles entre ellos.
Para la mayoría de los propósitos, esta no es una gran diferencia. Sin embargo, por
razones de consistencia de la configuración de PATH en los sistemas con el archivo
/etc/sudoers predeterminado, los autores de este curso usan sudo -i en los
ejemplos y los ejercicios.
Referencias
Páginas del manual: su(1), sudo(8), visudo(8) y sudoers(5)
(Tenga en cuenta que el paquete glibc-devel se debe haber instalado para que este
nodo de información esté disponible).
RH199-RHEL8.2-es-1-20200928 87
capítulo 3 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Usar sudo para cambiar a root y acceder a la shell interactiva como root sin tener que
saber la contraseña del superusuario.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Explore el entorno de la shell de student. Visualice la información del usuario y del grupo
actual, y muestre el directorio de trabajo actual. También vea las variables de entorno que
especifican el directorio de inicio del usuario y las ubicaciones de los archivos ejecutables
del usuario.
[student@servera ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
88 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
2.3. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
3. Cambie a root en una shell sin inicio de sesión y explore el nuevo entorno de la shell.
[root@servera student]# id
uid=0(root) gid=0(root) groups=0(root)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
3.4. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
Si ya tiene experiencia con Linux y el comando su, es posible que haya esperado que
el uso de su sin la opción del guion (-) para convertirse en root le haría mantener
el PATH actual de student. Eso no sucedió. Como verá en el siguiente paso, este
tampoco es el PATH habitual para root.
¿Qué sucedió? La diferencia es que no ejecutó su directamente. En cambio, ejecutó
su como root mediante sudo porque no cuenta con la contraseña del superusuario.
El comando sudo inicialmente anula la variable PATH del entorno inicial por razones
de seguridad. Cualquier comando que se ejecute después de la anulación inicial
todavía puede actualizar la variable PATH, como verá en los siguientes pasos.
3.5. Salga de la shell del usuario root para volver a la shell del usuario student.
RH199-RHEL8.2-es-1-20200928 89
capítulo 3 | Administración de usuarios y grupos locales
4. Cambie a root en una shell de inicio de sesión y explore el nuevo entorno de la shell.
[root@servera ~]# id
uid=0(root) gid=0(root) groups=0(root)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
4.4. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
4.5. Salga de la shell del usuario root para volver a la shell del usuario student.
5. Verifique que el usuario operator1 esté configurado para ejecutar cualquier comando
como cualquier usuario que use sudo.
90 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
6.2. Intente ver las últimas cinco líneas de /var/log/messages sin usar sudo. Debería
fallar.
6.3. Intente ver las últimas cinco líneas de /var/log/messages con sudo. Debería
funcionar.
nota
La salida anterior puede diferir en su sistema.
6.4. Intente hacer una copia de /etc/motd como /etc/motdOLD sin usar sudo. Debería
fallar.
6.5. Intente hacer una copia de /etc/motd como /etc/motdOLD con sudo. Debería
funcionar.
RH199-RHEL8.2-es-1-20200928 91
capítulo 3 | Administración de usuarios y grupos locales
6.8. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-sudo finish para terminar este ejercicio. Este script
elimina las cuentas de usuario y los archivos creados al inicio del ejercicio para garantizar que el
entorno esté limpio.
92 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Objetivos
Tras finalizar esta sección, deberá ser capaz de crear, modificar y eliminar cuentas de usuarios
locales.
• El comando useradd --help muestra las opciones básicas que pueden usarse para anular los
valores predeterminados. En la mayoría de los casos, las mismas opciones pueden usarse con el
comando usermod para modificar un usuario existente.
• Algunos valores predeterminados, como el rango de números UID válidos y las reglas de
vigencia de contraseñas predeterminadas, se leen desde el archivo /etc/login.defs. Los
valores incluidos en este archivo solo se usan durante la creación de usuarios nuevos. Un cambio
en este archivo no afectará a los usuarios existentes.
• El comando usermod --help muestra las opciones básicas que pueden usarse para modificar
una cuenta. Algunas opciones comunes incluyen las siguientes:
RH199-RHEL8.2-es-1-20200928 93
capítulo 3 | Administración de usuarios y grupos locales
-G, --groups GROUPS Especificar una lista de grupos adicionales separados por
comas para la cuenta de usuario.
-a, --append Se usa con la opción -G para agregar los grupos adicionales
al conjunto actual de membrecías de grupo del usuario en
lugar de reemplazar el conjunto de grupos adicionales con un
nuevo conjunto.
-s, --shell SHELL Especificar una shell de inicio de sesión particular para la
cuenta de usuario.
94 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Advertencia
Cuando se elimina un usuario con userdel sin la opción -r especificada, el sistema
tendrá archivos que pertenecen a un UID no asignado. Esto también puede suceder
cuando un archivo, que tiene un usuario eliminado como su propietario, existe fuera
del directorio de inicio de ese usuario. Esta situación puede hacer que se filtre
información y causar otros problemas de seguridad.
En Red Hat Enterprise Linux 7 y Red Hat Enterprise Linux 8, el comando useradd
asigna a los nuevos usuarios el primer UID libre mayor o igual a 1000, a menos que
especifique explícitamente uno mediante la opción -u.
Así es como puede ocurrir que se filtre información. Si el primer UID libre ha sido
asignado previamente a una cuenta de usuario que ha sido eliminada del sistema, el
UID del usuario anterior se reasignará al nuevo usuario y le dará al nuevo usuario la
propiedad de los archivos restantes del usuario anterior.
Observe que user02 ahora es propietario de todos los archivos que pertenecieron
a user01.
Según la situación, una solución a este problema es eliminar todos los archivos que
no pertenecen a nadie del sistema cuando se elimina el usuario que los creó. Otra
solución es asignar manualmente los archivos que no pertenecen a nadie a otro
usuario. El usuario root puede usar el comando find / -nouser -o -nogroup
para encontrar todos los archivos y directorios que no pertenecen a nadie.
• El usuario root puede definir una contraseña en cualquier valor. Aparecerá un mensaje si la
contraseña no cumple con los criterios mínimos recomendados, seguido de un prompt para que
vuelva a ingresar la contraseña nueva y todos los símbolos se actualizarán correctamente.
RH199-RHEL8.2-es-1-20200928 95
capítulo 3 | Administración de usuarios y grupos locales
• Un usuario normal debe elegir una contraseña de al menos ocho caracteres y que no se base en
una palabra del diccionario, el nombre de usuario o la contraseña anterior.
Rangos de UID
Red Hat Enterprise Linux usa números y rangos de números de UID específicos con fines
específicos.
• UID 1-200 es un rango de "usuarios del sistema" que Red Hat asignó estadísticamente a
procesos del sistema.
• UID 201-999 es un rango de "usuarios del sistema" usado por procesos del sistema que no
tienen archivos en el sistema de archivos. Por lo general, se asignan dinámicamente del pool
(conjunto) disponible cuando el software que los necesita está instalado. Los programas se
ejecutan como estos usuarios del sistema "sin privilegios" para limitar el acceso únicamente a los
recursos que necesitan para funcionar.
nota
Antes de RHEL 7, la convención consistía en que UID 1-499 se usaba para usuarios
del sistema y UID 500+ para usuarios regulares. Los rangos predeterminados
usados por useradd y groupadd pueden modificarse en el archivo /etc/
login.defs.
Referencias
Páginas del manual: useradd(8), usermod(8), userdel(8)
96 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar un sistema Linux con cuentas de usuario adicionales.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. En servera, cambie a root con sudo, lo que convierte el entorno de shell al del usuario
root.
RH199-RHEL8.2-es-1-20200928 97
capítulo 3 | Administración de usuarios y grupos locales
6. Actualice las cuentas de usuario operator1 y operator2 para incluir los comentarios
Operator One y Operator Two, respectivamente. Verifique que los comentarios se
hayan agregado correctamente.
6.3. Confirme que los comentarios para cada uno de los usuarios operator1 y
operator2 se reflejen en los registros de usuario.
98 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
7. Elimine el usuario operator3 junto con cualquier dato personal del usuario. Confirme que
el usuario se ha eliminado con éxito.
7.3. Salga de la shell del usuario root para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-manage finish para terminar este ejercicio. Este script
asegura que el entorno esté limpio.
RH199-RHEL8.2-es-1-20200928 99
capítulo 3 | Administración de usuarios y grupos locales
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de crear, modificar y eliminar
cuentas de grupos locales.
• El comando groupadd crea grupos. Sin opciones, el comando groupadd emplea el siguiente
GID disponible de un rango especificado en el archivo /etc/login.defs mientras crea los
grupos.
nota
Dada la creación automática de grupos privados de usuarios (GID 1000+),
generalmente se recomienda establecer aparte un rango de GID para su uso con los
grupos adicionales. Un rango más alto evitará una colisión con un grupo del sistema
(GID 0-999).
• La opción -r crea un grupo del sistema usando un GID del rango de GID de sistema válidos
incluidos en el archivo /etc/login.defs. Los ítems de configuración SYS_GID_MIN y
SYS_GID_MAX en /etc/login.defs definen el rango de GID del sistema.
100 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
nota
No puede eliminar un grupo si es el grupo principal de cualquier usuario existente.
Como en el caso de userdel, controle todos los sistemas de archivos para
asegurarse de que en el sistema no quede ningún archivo que sea propiedad del
grupo.
RH199-RHEL8.2-es-1-20200928 101
capítulo 3 | Administración de usuarios y grupos locales
Importante
El uso de la opción -a hace que usermod funcione en modo adición. Sin -a, el
usuario se eliminará de cualquiera de sus grupos adicionales actuales que no estén
incluidos en la lista de la opción -G.
Referencias
Páginas del manual: group(5), groupadd(8), groupdel(8) y usermod(8)
102 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. En servera, cambie a root con sudo, heredando todo el entorno del usuario root.
RH199-RHEL8.2-es-1-20200928 103
capítulo 3 | Administración de usuarios y grupos locales
104 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
7.4. Cree el archivo /etc/sudoers.d/admin para que los miembros de admin tengan
privilegios administrativos completos.
7.6. Salga de la shell del usuario sysadmin1 para volver a la shell del usuario root.
7.7. Salga de la shell del usuario root para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-group-manage finish para terminar este ejercicio.
Este script elimina las cuentas de usuario creadas al inicio del ejercicio.
RH199-RHEL8.2-es-1-20200928 105
capítulo 3 | Administración de usuarios y grupos locales
Administración de contraseñas de
usuarios
Objetivos
Después de completar esta sección, deberá ser capaz de establecer una política de administración
de contraseñas para los usuarios, así como de bloquear y desbloquear manualmente las cuentas
de los usuarios.
Como en el caso de /etc/passwd, cada usuario tiene una línea en el archivo /etc/shadow. A
continuación se muestra una línea de muestra de /etc/shadow con sus nueve campos separados
por dos puntos.
106 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
El algoritmo de hash usado para esta contraseña. El número 6 indica que es un hash SHA-512,
el predeterminado en Red Hat Enterprise Linux 8. Un 1 indicaría MD5, un SHA-256 5.
El valor aleatorio usado para cifrar la contraseña. Originalmente, se elige al azar.
El hash cifrado de la contraseña del usuario. El valor aleatorio y la contraseña no cifrada se
combinan y se cifran para generar este hash cifrado de la contraseña.
El motivo principal para combinar un valor aleatorio con la contraseña es defenderse contra los
ataques mediante listas de hash de contraseñas calculadas previamente. La adición de valores
aleatorios cambia los hash resultantes, lo que permite que la lista previamente calculada sea inútil.
Si un atacante puede obtener una copia de un archivo /etc/shadow que usa valores aleatorios,
necesitará adivinar la contraseña por la fuerza y requerirá más tiempo y esfuerzo.
Verificación de contraseña
Cuando un usuario intenta iniciar sesión, el sistema busca la entrada correspondiente al usuario en
/etc/shadow, combina el valor aleatorio del usuario con la contraseña sin cifrar que se ingresó y
los cifra usando el algoritmo de hash especificado. Si el resultado coincide con el hash cifrado, el
usuario ingresó la contraseña correcta. Si el resultado no coincide con el hash cifrado, el usuario
ingresó una contraseña incorrecta y el intento de inicio de sesión falla. Este método permite que el
sistema determine si el usuario ingresó la contraseña correcta sin almacenarla en una forma que se
puede usar en el inicio de sesión.
El comando chage anterior usa las opciones -m, -M, -W y -I para establecer la vigencia mínima,
la vigencia máxima, el período de advertencia y el período de inactividad de la contraseña del
usuario, respectivamente.
El comando chage -E 2019-08-05 user03 hace que la cuenta del usuario user03 caduque
el 2019-08-05 (en formato AAAA-MM-DD).
RH199-RHEL8.2-es-1-20200928 107
capítulo 3 | Administración de usuarios y grupos locales
nota
El comando date puede usarse para calcular una fecha en el futuro. La opción -u
informa la hora en UTC.
Restricción de acceso
Puede usar el comando chage para establecer las fechas de vencimiento de la cuenta. Cuando
se alcanza la fecha, el usuario no puede iniciar sesión en el sistema de manera interactiva. El
comando usermod puede bloquear una cuenta con la opción -L.
El bloqueo de la cuenta evita que el usuario logre la autenticación con una contraseña en el
sistema. Esta es la forma recomendada de evitar que un empleado que se fue de la empresa
acceda a su cuenta. Si el empleado regresa, la cuenta puede desbloquearse con usermod -U. Si
la cuenta también caducó, asegúrese de modificar, además, la fecha de caducidad.
La shell nologin
La shell nologin actúa como una shell de reemplazo para las cuentas de usuario que no están
destinadas a iniciar sesión de forma interactiva en el sistema. Desde el punto de vista de la
seguridad, se recomienda deshabilitar el inicio de sesión de una cuenta en el sistema, cuando
la cuenta no lo requiere. Por ejemplo, un servidor de correo puede necesitar una cuenta para
almacenar correos y una contraseña para que el usuario realice la autenticación con un cliente
de correo usado para recuperar correo. Dicho usuario no debe iniciar sesión directamente en el
sistema.
108 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Ante una situación como la anterior, una solución común es definir la shell de inicio de sesión del
usuario en /sbin/nologin. Si el usuario intenta iniciar sesión en el sistema directamente, la shell
nologin cierra la conexión.
Importante
La shell nologin evita el uso interactivo del sistema, pero no evita todo el acceso.
Los usuarios pueden, de todas maneras, realizar la autenticación y cargar o
recuperar archivos a través de aplicaciones, como aplicaciones web, programas de
transferencia de archivos o lectores de correo si usan la contraseña del usuario para
autenticarse.
Referencias
Páginas del manual: chage(1), usermod(8), shadow(5), crypt(3)
RH199-RHEL8.2-es-1-20200928 109
capítulo 3 | Administración de usuarios y grupos locales
Ejercicio Guiado
Administración de contraseñas de
usuarios
En este ejercicio de laboratorio, configurará políticas de contraseña para varios usuarios.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Forzar un cambio de contraseña cuando el usuario inicia sesión en el sistema por primera
vez.
• Configurar la cuenta para que caduque 180 días a partir del día actual.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
110 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
2.5. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
3.2. Verifique que la contraseña del usuario operator1 caduque 90 días después de que
se modifica.
RH199-RHEL8.2-es-1-20200928 111
capítulo 3 | Administración de usuarios y grupos locales
5.2. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
6. Configure la cuenta de operator1 para que caduque 180 días a partir del día actual.
Consejo: date -d "+180 days" le da la fecha y la hora 180 días a partir de la fecha y la
hora actuales.
6.1. Determine la fecha de vencimiento en 180 días. Use el formato %F con el comando
date para obtener el valor exacto.
Puede obtener un valor diferente para usar en el siguiente paso según la fecha y la
hora actuales en su sistema.
6.2. Configure la cuenta para que caduque en la fecha que se muestra en el paso anterior.
7. Establezca las contraseñas para que caduquen 180 días a partir de la fecha actual para
todos los usuarios. Use los derechos administrativos para editar el archivo de configuración.
112 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
...output omitted...
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be
# used.
# PASS_MIN_DAYS Minimum number of days allowed between
# password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a
# password expires.
#
PASS_MAX_DAYS 180
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
...output omitted...
Importante
La contraseña predeterminada y la configuración de caducidad de la cuenta serán
efectivas para los nuevos usuarios, pero no para los usuarios existentes.
Finalizar
En workstation, ejecute lab users-pw-manage finish para terminar este ejercicio. Este
script elimina las cuentas de usuario y los archivos creados al inicio del ejercicio para garantizar
que el entorno esté limpio.
RH199-RHEL8.2-es-1-20200928 113
capítulo 3 | Administración de usuarios y grupos locales
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un grupo y usar el grupo como grupo adicional para los nuevos usuarios.
• Crear tres nuevos usuarios con el nuevo grupo como su grupo adicional.
• Configurar los miembros del grupo adicional para ejecutar cualquier comando como
cualquier usuario que use sudo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
114 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Evaluación
En workstation, ejecute el comando lab users-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab users-review finish para terminar este trabajo de
laboratorio. Este script elimina las cuentas de usuario y los archivos creados durante el trabajo de
laboratorio para garantizar que el entorno esté limpio.
RH199-RHEL8.2-es-1-20200928 115
capítulo 3 | Administración de usuarios y grupos locales
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un grupo y usar el grupo como grupo adicional para los nuevos usuarios.
• Crear tres nuevos usuarios con el nuevo grupo como su grupo adicional.
• Configurar los miembros del grupo adicional para ejecutar cualquier comando como
cualquier usuario que use sudo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. En serverb, asegúrese de que los usuarios creados recientemente tengan contraseñas que
se deben cambiar cada 30 días.
116 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
...output omitted...
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be
# used.
# PASS_MIN_DAYS Minimum number of days allowed between
# password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a
# password expires.
#
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
...output omitted...
4. Configure los derechos administrativos para que todos los miembros de consultants
puedan ejecutar cualquier comando como cualquier usuario.
RH199-RHEL8.2-es-1-20200928 117
capítulo 3 | Administración de usuarios y grupos locales
8.1. Establezca el último día del cambio de contraseña en 0 para que los usuarios se vean
obligados a cambiar la contraseña cuando inicien sesión en el sistema por primera vez.
Evaluación
En workstation, ejecute el comando lab users-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab users-review finish para terminar este trabajo de
laboratorio. Este script elimina las cuentas de usuario y los archivos creados durante el trabajo de
laboratorio para garantizar que el entorno esté limpio.
118 RH199-RHEL8.2-es-1-20200928
capítulo 3 | Administración de usuarios y grupos locales
Resumen
En este capítulo, aprendió lo siguiente:
• Hay tres tipos principales de cuenta de usuario: el superusuario, el usuario del sistema y el
usuario normal.
• Un usuario debe tener un grupo principal y puede ser miembro de uno o más grupos adicionales.
• Los tres archivos críticos que contienen información de usuarios y grupos son /etc/passwd , /
etc/group y /etc/shadow.
• Los comandos su y sudose pueden usar para ejecutar comandos como superusuario.
• Los comandos useradd, usermod y userdel se pueden usar para administrar usuarios.
• Los comandos groupadd, groupmod y groupdel se pueden usar para administrar grupos.
RH199-RHEL8.2-es-1-20200928 119
120 RH199-RHEL8.2-es-1-20200928
capítulo 4
RH199-RHEL8.2-es-1-20200928 121
capítulo 4 | Control de acceso a los archivos
Objetivos
Tras finalizar esta sección, deberá ser capaz de cambiar los permisos y la propiedad de los archivos
usando herramientas de la línea de comandos.
El método simbólico de cambiar los permisos del archivo usa letras para representar los distintos
grupos de permisos: u para usuario, g para grupo, o para otros y a para todos.
Los permisos en sí están representados por una única letra: r para leer, w para escribir y x para
ejecutar. Cuando use chmod para cambiar los permisos con el método simbólico, el uso de una X
mayúscula como indicador de permiso agregará permiso de ejecución únicamente si el archivo es
un directorio o si ya tiene el permiso de ejecución establecido para usuario, grupo u otros.
122 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
nota
El comando chmod admite la opción -R para establecer permisos de manera
recursiva en los archivos, en todo el árbol de directorios. Cuando usa la opción -
R, puede ser útil para establecer permisos de manera simbólica mediante el uso
de la opción X. Esto permite ejecutar (buscar) permisos para establecer en los
directorios de modo que se pueda acceder a su contenido, sin cambiar los permisos
en la mayoría de los archivos. Sin embargo, tenga cuidado con la opción X, porque si
un archivo tiene un permiso de ejecución establecido, X establecerá el permiso de
ejecución especificado en ese archivo también. Por ejemplo, el siguiente comando
establece de manera recursiva el acceso de lectura y de escritura en demodir
y todos sus procesos secundarios para el propietario del grupo, pero solo aplica
permisos de ejecución de grupo a directorios y archivos que ya tienen permisos de
ejecución establecidos para usuario, grupo u otros.
Ejemplos
• Cada dígito representa permisos para un nivel de acceso: usuario, grupo, otros.
• El dígito se calcula sumando los números para cada permiso que desea agregar, 4 para lectura, 2
para escritura y 1 para ejecución.
Al usar el método numérico, los permisos son representados por un número octal de tres dígitos
(o cuatro, al establecer permisos avanzados). Un octal de un único dígito puede representar
cualquier valor de 0 a 7.
En la representación de permisos octal (numérica) de tres dígitos, cada dígito representa un nivel
de acceso, de izquierda a derecha: usuario, grupo y otros. Para determinar cada dígito:
1. Comience con 0.
2. Si el permiso de lectura debe estar presente para este nivel de acceso, agregue 4.
3. Si el permiso de escritura debe estar presente, agregue 2.
4. Si el permiso de ejecución debe estar presente, agregue 1.
Examine los permisos -rwxr-x---. Para el usuario, rwx se calcula como 4+2+1=7. Para el grupo,
r-x se calcula como 4+0+1=5, y para otros usuarios, --- se representa con 0. Si reunimos estos
tres, la representación numérica de esos permisos es 750.
RH199-RHEL8.2-es-1-20200928 123
capítulo 4 | Control de acceso a los archivos
Este cálculo también se puede realizar en dirección opuesta. Veamos los permisos 640. Para
los permisos de usuario, 6 representa leer (4) y escribir (2), que se ve como rw-. Para la parte
de grupo, 4 solo incluye leer (4) y se ve como r--. El 0 para otros no nos proporciona permisos
(---), por lo que el conjunto final de permisos simbólicos para este archivo es -rw-r-----.
Los administradores experimentados a menudo usan permisos numéricos, ya que son más breves
para escribir y pronunciar, al tiempo que le proporcionan el control total de todos los permisos.
Ejemplos
• Establezca permisos de lectura y escritura para usuario, permiso de lectura para grupo y otros
respecto de samplefile:
Solo el usuario root puede cambiar el usuario que es propietario de un archivo. No obstante, la
propiedad del grupo puede establecerla el usuario root o el propietario del archivo. root puede
otorgar propiedad de archivo a cualquier grupo, mientras que los usuarios normales pueden hacer
que un grupo sea propietario de un archivo solo si son miembros de ese grupo.
La propiedad del archivo se puede cambiar con el comando chown (cambiar propietario). Por
ejemplo, para otorgarle propiedad del archivo test_file al usuario student, use el siguiente
comando:
Se puede usar chown con la opción -R para cambiar recursivamente la propiedad de un árbol
de directorios completo. El siguiente comando otorga propiedad de test_dir y de todos los
archivos y subdirectorios incluidos dentro a student:
El comando chown también se puede usar para cambiar el propietario del grupo de un archivo,
anteponiendo el nombre del grupo con dos puntos (:). Por ejemplo, el siguiente comando cambia
la propiedad del grupo del directorio test_dir a admins:
124 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
El comando chown también se puede usar para cambiar el propietario y el grupo al mismo tiempo.
Para ello, puede usar la sintaxis owner:group. Por ejemplo, para cambiar la propiedad de test_dir
a visitor y el grupo a guests, use el siguiente comando:
En lugar de usar chown, algunos usuarios cambian la propiedad del grupo usando el comando
chgrp. Este comando funciona igual que chown, excepto que solo se usa para cambiar la
propiedad del grupo, y no es necesario colocar los dos puntos (:) antes del nombre del grupo.
Importante
Puede encontrar ejemplos de los comandos chown con una sintaxis alternativa que
separa al propietario y al grupo con un punto en lugar de dos puntos:
Referencias
Páginas del manual: ls(1), chmod(1), chown(1) y chgrp(1)
RH199-RHEL8.2-es-1-20200928 125
capítulo 4 | Control de acceso a los archivos
Ejercicio Guiado
Resultados
Deberá ser capaz de crear un directorio de colaboración al que puedan acceder todos los
miembros de un grupo en particular.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
student.
[student@servera ~]$ su -
Password: redhat
[root@servera ~]#
4. Use el comando chown para cambiar la propiedad del grupo del directorio consultants a
consultants.
126 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
5. Asegúrese de que los permisos del grupo consultants permitan a los miembros del
grupo crear archivos en el directorio /home/consultants y eliminarlos de este. Los
permisos deben impedir que otros accedan a los archivos.
5.1. Use el comando ls para confirmar que los permisos del grupo consultants
permitan a los miembros del grupo crear archivos en el directorio /home/
consultants y eliminarlos de este.
5.2. Use el comando chmod para agregar permiso de escritura al grupo consultants.
5.3. Use el comando chmod para impedir que otros accedan a los archivos del directorio /
home/consultants.
7.2. Use el comando touch para crear un archivo vacío con el nombre
consultant1.txt.
RH199-RHEL8.2-es-1-20200928 127
capítulo 4 | Control de acceso a los archivos
9. Asegúrese de que todos los miembros del grupo consultants puedan editar el archivo
consultant1.txt. Cambie la propiedad del grupo del archivo consultant1.txt a
consultants.
9.1. Use el comando chown para cambiar la propiedad del grupo del archivo
consultant1.txt a consultants.
9.2. Use el comando ls con la opción -l para registrar la nueva propiedad del archivo
consultant1.txt.
11.2. Use el comando cat para verificar que el texto se haya agregado al archivo
consultant1.txt.
128 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Finalizar
En workstation, ejecute el script lab perms-cli finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 129
capítulo 4 | Control de acceso a los archivos
Administración de permisos
predeterminados y acceso a archivos
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de realizar lo siguiente:
• Controlar los permisos predeterminados de los nuevos archivos creados por los usuarios.
• Usar permisos especiales y permisos predeterminados para establecer el propietario del grupo
de archivos creados en un directorio en particular.
Permisos especiales
Los permisos especiales constituyen un cuarto tipo de permiso, además del usuario básico, grupo
y otros tipos. Como su nombre lo indica, estos permisos proporcionan funciones adicionales
relacionadas con el acceso más allá de lo que permiten los tipos de permisos básicos. En esta
sección, se detalla el impacto de los permisos especiales, que se resumen en la siguiente tabla.
g+s (sgid) El archivo se ejecuta como el grupo Los archivos creados recientemente
propietario. en el directorio han establecido
al propietario del grupo para que
coincida con el propietario del grupo
del directorio.
El permiso setuid en un archivo ejecutable significa que los comandos se ejecutan como el usuario
que es propietario del archivo, no como el usuario que ejecutó el comando. Un ejemplo de este
caso es el comando passwd:
130 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
En una larga lista, puede identificar los permisos setuid con una s minúscula, donde normalmente
esperaría ver la x (el propietario ejecuta los permisos). Si el propietario no posee permisos de
ejecución, será reemplazada por una S mayúscula.
El permiso especial setgid en un directorio significa que los archivos creados en el directorio
heredarán la propiedad de grupos del directorio, en lugar de heredarla del usuario que la creó. Esto
generalmente se usa en directorios colaborativos grupales para poder cambiar automáticamente
un archivo del grupo privado predeterminado al grupo compartido, o si los archivos de un
directorio deben pertenecer siempre a un grupo específico. Un ejemplo de esto es el directorio /
run/log/journal:
Si se configura setgid en un archivo ejecutable, los comandos se ejecutan como el grupo que
posee ese archivo, no como el usuario que ejecutó el comando, de manera similar a como funciona
setuid. Un ejemplo de este caso es el comando locate:
En una larga lista, puede identificar los permisos setgid con una s minúscula, donde normalmente
esperaría ver la x (el grupo ejecuta los permisos). Si el grupo no posee permisos de ejecución, será
reemplazada por una S mayúscula.
Por último, el sticky bit para un directorio establece una restricción especial en la eliminación de
archivos. Solo el propietario del archivo (y root) puede borrar archivos dentro del directorio. Un
ejemplo es /tmp:
En una larga lista, puede identificar los permisos sticky con una s minúscula, donde normalmente
esperaría ver la x (otro ejecuta los permisos). Si otra persona no posee permisos de ejecución, se
reemplazará por una S mayúscula.
Ejemplos
RH199-RHEL8.2-es-1-20200928 131
capítulo 4 | Control de acceso a los archivos
Si crea un nuevo directorio, el sistema operativo comienza asignándole permisos octales 0777
(drwxrwxrwx). Si crea un nuevo archivo regular, el sistema operativo le asigna permisos octales
0666 (-rw-rw-rw-). Siempre debe agregar explícitamente el permiso de ejecución a un archivo
regular. Esto hace que sea más difícil para un atacante comprometer un servicio de red para que
cree un nuevo archivo y lo ejecute inmediatamente como un programa.
Sin embargo, la sesión de shell también establecerá un umask para restringir aún más los permisos
que se establecen inicialmente. Es una máscara de bits octal usada para borrar los permisos de
archivos y directorios nuevos creados por el proceso. Si se establece un bit en el umask, el permiso
correspondiente se elimina en los archivos nuevos. Por ejemplo, el umask 0002 borra el bit de
escritura para otros usuarios. Los ceros iniciales indican que los permisos especiales, de usuario y
de grupo no están borrados. Un umask de 0077 borra los permisos de todo el grupo y de otros de
los archivos creados recientemente.
El comando umask sin argumentos mostrará el valor actual del umask de shell:
Use el comando umask con un argumento numérico único para cambiar el umask de la shell actual.
El argumento numérico debe ser un valor octal que se corresponda con el valor del umask nuevo.
Puede omitir los ceros iniciales en el umask.
Los valores de umask predeterminados del sistema para usuarios de shell Bash se definen
en los archivos /etc/profile y /etc/bashrc. Los usuarios pueden anular los valores
predeterminados del sistema en sus archivos .bash_profile y .bashrc en sus directorios de
inicio.
Ejemplo de umask
El siguiente ejemplo explica cómo el umask afecta los permisos de los archivos y directorios.
Observe los permisos predeterminados de umask para archivos y directorios en la shell actual.
Tanto el propietario como el grupo tienen permiso de lectura y escritura en los archivos, y otros
tienen permiso de lectura. Tanto el propietario como el grupo tienen permisos de lectura, escritura
y ejecución en los directorios. El único permiso para otros es el de lectura.
Al establecer el valor de umask en 0, los permisos del archivo para otros cambian de lectura a
lectura y escritura. Los permisos del directorio para otros cambios de lectura y ejecución para
lectura, escritura y ejecución.
132 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Para enmascarar todos los permisos de archivos y directorios para otros, establezca el valor de
umask en 007.
Un umask de 027 garantiza que los nuevos archivos tengan permisos de lectura y escritura para
el usuario y permisos de lectura para el grupo. Los nuevos directorios tienen acceso de lectura y
escritura para el grupo y no tienen permisos para otros.
El umask predeterminado para usuarios se establece mediante los scripts de inicio de shell. De
manera predeterminada, si la UID de su cuenta es 200 o más y su nombre de usuario y nombre
de grupo primario son los mismos, se le asignará un umask de 002. De lo contrario, su umask será
022.
Como usuario root, puede cambiarlo al agregar un script de inicio de shell llamado /etc/
profile.d/local-umask.sh, que se parece al resultado en este ejemplo:
El ejemplo anterior establecerá el umask en 007 para los usuarios con una UID mayor que 199
y con un nombre de usuario y un nombre de grupo primario iguales, y en 022 para todos los
demás. Si solo deseara establecer el umask para todos en 022, puede crear ese archivo solo con el
siguiente contenido:
RH199-RHEL8.2-es-1-20200928 133
capítulo 4 | Control de acceso a los archivos
Para asegurarse de que los cambios globales de umask surtan efecto, debe cerrar sesión en la
shell y volver a iniciar sesión. Hasta ese momento, el umask configurado en la shell actual sigue
vigente.
Referencias
Páginas del manual: bash(1), ls(1), chmod(1) y umask(1)
134 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Ejercicio Guiado
Administración de permisos
predeterminados y acceso a archivos
En este ejercicio, controlará los permisos de los nuevos archivos creados en un directorio
mediante el uso de la configuración de umask y el permiso setgid.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Use el comando su para cambiar al usuario operator1 usando redhat como contraseña.
3. Use el comando umask para registrar el valor de umask predeterminado del usuario
operator1.
RH199-RHEL8.2-es-1-20200928 135
capítulo 4 | Control de acceso a los archivos
4.1. Use el comando mkdir para crear el directorio /tmp/shared. Use el comando ls -
ld para enumerar los permisos del nuevo directorio.
4.2. Use el comando touch para crear un archivo denominado defaults en el directorio
/tmp/shared.
4.3. Use el comando ls -l para enumerar los permisos del nuevo archivo.
5.1. Use el comando chown para cambiar la propiedad del grupo del directorio /tmp/
shared a operators.
5.2. Use el comando ls -ld para enumerar los permisos del directorio /tmp/shared.
5.3. Use el comando touch para crear un archivo denominado group en el directorio /
tmp/shared. Use el comando ls -l para enumerar los permisos del archivo.
nota
El propietario del grupo del archivo /tmp/shared/group no es operators, sino
operator1.
6. Asegúrese de que los archivos creados en el directorio /tmp/shared son propiedad del
grupo operators.
6.1. Use el comando chmod para establecer el ID de grupo al grupo operators para el
directorio /tmp/shared.
136 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
6.3. Use el comando ls -l para verificar que el grupo operators es el propietario del
grupo para el nuevo archivo.
7.3. Use el comando umask para cambiar el umask para el usuario operator1 a 027. Use
el comando umask para confirmar el cambio.
8. Abra una nueva ventana de terminal e inicie sesión en servera como operator1.
RH199-RHEL8.2-es-1-20200928 137
capítulo 4 | Control de acceso a los archivos
10. Cambie el valor predeterminado de umask para el usuario operator1. El nuevo valor
de umask prohíbe el acceso a los usuarios que no pertenezcan al grupo. Confirme que el
umask haya cambiado.
10.1. Use el comando echo para cambiar valor de umask predeterminado para el usuario
operator1 a 007.
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
10.2. Cierre la sesión y vuelva a iniciar sesión como el usuario operator1. Use el comando
umask para confirmar que el cambio es permanente.
11. En servera, salga de todas las shells del usuario operator1 y de student.
Advertencia
Salga de todas las shells que fueron abiertas por operator1. Si no sale de todas las
shells, el script de finalización fallará.
138 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Finalizar
En workstation, ejecute el script lab perms-default finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 139
capítulo 4 | Control de acceso a los archivos
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Cambie al
usuario root en serverb con la contraseña redhat.
2. Cree un directorio denominado /home/techdocs.
3. Cambie la propiedad del directorio /home/techdocs al grupo techdocs.
4. Verifique que los usuarios en el grupo techdocs no puedan crear archivos en el directorio /
home/techdocs.
5. Establezca permisos en el directorio /home/techdocs. En el directorio /home/techdocs,
configure setgid (2), permisos de lectura/escritura/ejecución (7) para el propietario/usuario
y grupo, y ningún permiso (0) para otros usuarios.
6. Verifique que los permisos hayan sido establecidos correctamente.
7. Confirme que los usuarios en el grupo techdocs ahora pueden crear y editar archivos en
el directorio /home/techdocs. Los usuarios que no forman parte del grupo techdocs no
pueden editar ni crear archivos en el directorio /home/techdocs. Los usuarios tech1 y
tech2 están en el grupo techdocs. El usuario database1 no está en ese grupo.
8. Modifique los scripts de inicio de sesión globales. Los usuarios normales deberían tener una
configuración de umask que evite que otros visualicen o modifiquen los archivos y directorios
nuevos.
9. Cierre sesión en serverb.
140 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Evaluación
En workstation, ejecute el script lab perms-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab perms-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 141
capítulo 4 | Control de acceso a los archivos
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Cambie al
usuario root en serverb con la contraseña redhat.
3.1. Use el comando chown para cambiar la propiedad del grupo para el directorio /home/
techdocs al grupo techdocs.
142 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
4. Verifique que los usuarios en el grupo techdocs no puedan crear archivos en el directorio /
home/techdocs.
4.2. Use touch para crear un archivo denominado techdoc1.txt en el directorio /home/
techdocs.
nota
Tenga en cuenta que si bien el directorio /home/techdocs es propiedad de
techdocs y tech1 es parte del grupo techdocs, no es posible crear un nuevo
archivo en ese directorio. Esto es porque el grupo techdocs no tiene permiso de
escritura. Use el comando ls -ld para mostrar los permisos.
5.2. Use el comando chmod para establecer el permiso del grupo para el directorio /home/
techdocs. En el directorio /home/techdocs, configure setgid (2), permisos de
lectura/escritura/ejecución (7) para el propietario/usuario y grupo, y ningún permiso
(0) para otros usuarios.
RH199-RHEL8.2-es-1-20200928 143
capítulo 4 | Control de acceso a los archivos
7.1. Cambie al usuario tech1. Use touch para crear un archivo denominado
techdoc1.txt en el directorio /home/techdocs. Salga de la shell del usuario
tech1.
7.2. Cambie al usuario tech2. Use el comando echo para agregar contenido al archivo Use
the echo command to add some content to the /home/techdocs/techdoc1.txt.
Salga de la shell del usuario tech2.
7.3. Cambie al usuario database1. Use el comando echo para anexar contenido al
archivo Use the echo command to add some content to the /home/techdocs/
techdoc1.txt. Tenga en cuenta que obtendrá un mensaje de Permiso denegado.
Use el comando ls -l para confirmar que database1 no tiene acceso al archivo.
Salga de la shell del usuario database1.
El siguiente comando echo es muy extenso y debe ingresarse en una sola línea.
8. Modifique los scripts de inicio de sesión globales. Los usuarios normales deberían tener una
configuración de umask que evite que otros visualicen o modifiquen los archivos y directorios
nuevos.
8.1. Determine el umask del usuario student. Use el comando su - student para
cambiar a la shell de inicio de sesión de student. Salga de la shell cuando termine.
144 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
8.3. Cierre sesión en la shell y vuelva a iniciar sesión como student para verificar que el
umask global haya cambiado a 007.
Evaluación
En workstation, ejecute el script lab perms-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab perms-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 145
capítulo 4 | Control de acceso a los archivos
146 RH199-RHEL8.2-es-1-20200928
capítulo 4 | Control de acceso a los archivos
Resumen
En este capítulo, aprendió lo siguiente:
• Los archivos tienen tres categorías a las que se le aplican permisos. Un archivo es propiedad
de un usuario, un único grupo y otros usuarios. Se aplicarán los permisos más específicos. Los
permisos de usuario anulan los permisos de grupo, y los permisos de grupo anulan los permisos
de otros.
• El comando ls con la opción -l expande la lista del archivo para incluir tanto los permisos de un
archivo como su propiedad.
• El comando chmod cambia los permisos de archivo desde la línea de comandos. Hay dos
métodos para representar permisos: el método simbólico (letras) y el método numérico
(dígitos).
• El comando umask sin argumentos muestra el valor actual de umask de la shell. Todos los
procesos del sistema tienen un umask. Los valores de umask predeterminados para Bash se
definen en los archivos /etc/profile y /etc/bashrc.
RH199-RHEL8.2-es-1-20200928 147
148 RH199-RHEL8.2-es-1-20200928
capítulo 5
Administración de seguridad de
SELinux
Meta Proteger y administrar la seguridad de un servidor
con SELinux.
RH199-RHEL8.2-es-1-20200928 149
capítulo 5 | Administración de seguridad de SELinux
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
Los permisos de archivo controlan qué usuarios o grupos de usuarios pueden acceder a qué
archivos específicos. Sin embargo, un usuario con acceso de lectura o escritura a cualquier archivo
específico puede usar ese archivo de cualquier manera que el usuario elija, incluso si ese uso no es
la forma en que se debe usar el archivo.
Por ejemplo, con acceso de escritura a un archivo, ¿un archivo de datos estructurados, diseñado
para escribirse y usar un único programa, debería poder ser abierto y modificado por otros
editores que podrían resultar en daños?
Los permisos de archivo no pueden detener este acceso no deseado. No fueron diseñados para
controlar cómo se usa un archivo, sino solo quién tiene permiso para leer, escribir o ejecutar un
archivo.
SELinux consiste en conjuntos de políticas, definidas por los desarrolladores de la aplicación, que
declaran exactamente qué acciones y accesos son adecuados y permitidos para cada ejecutable
binario, archivo de configuración y archivo de datos usados por una aplicación. Esto se conoce
como política dirigida porque se escribe una política para cubrir las actividades de una sola
aplicación. Las políticas declaran etiquetas predefinidas que se colocan en programas, archivos y
puertos de red individuales.
150 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
• Enforcing (Cumplimiento): SELinux hace cumplir las reglas de control de acceso. Las
computadoras generalmente se ejecutan en este modo.
• Permissive (Permisivo): SELinux está activo, pero en lugar de aplicar las reglas de control de
acceso, registra advertencias de reglas que se han infringido. Este modo se usa principalmente
para pruebas y solución de problemas.
• Disabled (Deshabilitado): SELinux está desactivado por completo; no se niegan las infracciones
de SELinux, ni siquiera se registran. No se recomienda usarlo.
Para permitir el acceso anónimo remoto a un servidor web, se deben abrir los puertos de firewall.
Sin embargo, esta acción otorga a las personas malintencionadas la oportunidad de comprometer
el sistema mediante una vulnerabilidad. Si logran comprometer el proceso del servidor web,
obtienen sus permisos. En concreto, los permisos del usuario apache y del grupo apache. Ese
usuario y grupo tiene acceso de lectura a la raíz del documento, /var/www/html. También tiene
acceso a /tmp y /var/tmp, y cualquier otro archivo y directorio que se pueda escribir en todo el
mundo.
SELinux es un conjunto de reglas de seguridad que determina qué proceso puede acceder a qué
archivos, directorios y puertos. Los archivos, procesos, directorios y puertos tienen etiquetas de
seguridad especiales denominadas contextos de SELinux. Un contexto es un nombre que usa la
política de SELinux para determinar si un proceso puede o no acceder a un archivo, directorio o
puerto. De forma predeterminada, la política no permite ninguna interacción, a menos que una
regla explícita otorgue acceso. Si no hay ninguna regla de permiso, no se permite ningún tipo de
acceso.
Las etiquetas de SELinux tienen varios contextos: user (usuario), role (rol), type (tipo) y
sensitivity (sensibilidad). La política de destino, que es la política predeterminada habilitada
en Red Hat Enterprise Linux, basa sus reglas en el tercer contexto: el contexto de tipo. Por lo
general, los nombres de contexto de tipo finalizan en _t.
El contexto de tipo para un servidor web es httpd_t. El contexto de tipo para los archivos y los
directorios que generalmente se encuentran en /var/www/html es httpd_sys_content_t. El
contexto para los archivos y directorios que normalmente se encuentran en /tmp y /var/tmp es
tmp_t. El contexto de tipo para los puertos del servidor web es http_port_t.
Apache tiene un contexto de tipo de httpd_t. Hay una regla de política que permite que Apache
acceda a archivos y directorios con el contexto de tipo httpd_sys_content_t. De manera
predeterminada, los archivos encontrados en /var/www/html y otros directorios del servidor
RH199-RHEL8.2-es-1-20200928 151
capítulo 5 | Administración de seguridad de SELinux
web tienen el contexto de tipo httpd_sys_content_t. No hay una regla allow (permitir) en la
política para los archivos que normalmente se encuentran en /tmp y /var/tmp, de modo que no
se permite el acceso. Con SELinux habilitado, un usuario malintencionado que haya comprometido
el proceso del servidor web no podría acceder al directorio /tmp.
Muchos comandos que tienen que ver con archivos usan la opción -Z para mostrar o configurar
contextos de SELinux. Por ejemplo, ps, ls, cp y mkdir usan la opción -Z para mostrar o
configurar contextos de SELinux.
152 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
El sistema lee este archivo en el momento del arranque y configura SELinux como se muestra. Lo
argumentos del kernel (selinux=0|1 y enforcing=0|1) anulan esta configuración.
Referencias
Páginas del manual: getenforce(8), setenforce(8) y selinux_config(5)
RH199-RHEL8.2-es-1-20200928 153
capítulo 5 | Administración de seguridad de SELinux
Ejercicio Guiado
Resultados
Debería ser capaz de ver y configurar el modo de SELinux actual.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
3.1. Use el comando getenforce para verificar que servera está en modo enforcing.
154 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
3.3. Use el comando grep para confirmar que el parámetro SELINUX se establece en
permissive.
4. servera tarda unos minutos en reiniciarse. Después de unos minutos, inicie sesión en
servera como el usuario student. Use el comando sudo -i para convertirse en root.
Visualice el modo de SELinux actual con el comando getenforce.
4.1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
student.
5.2. Use el comando grep para confirmar que el parámetro SELINUX se establece en
enforcing.
RH199-RHEL8.2-es-1-20200928 155
capítulo 5 | Administración de seguridad de SELinux
7. Salga de servera.
Finalizar
En workstation, ejecute el script lab selinux-opsmode finish para terminar este
ejercicio.
156 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• Administrar las reglas de políticas de SELinux que determinan el contexto predeterminado para
archivos y directorios con el comando semanage fcontext.
• Aplicar el contexto definido por la política de SELinux a archivos y directorios con el comando
restorecon.
En general, los nuevos archivos heredan su contexto de SELinux del directorio principal,
garantizando así que tengan el contexto adecuado.
Sin embargo, este procedimiento de herencia puede verse comprometido de dos maneras
diferentes. Primero, si crea un archivo en una ubicación diferente de la ubicación final y, luego,
mueve el archivo, este aún tiene el contexto de SELinux del directorio donde se creó, no del
directorio de destino. Segundo, si copia un archivo conservando el contexto de SELinux, como con
el comando cp -a, el contexto de SELinux refleja la ubicación del archivo original.
En el siguiente ejemplo, se demuestran la herencia y sus escollos. Considere estos dos archivos
creados en /tmp, uno se movió a /var/www/html y el segundo se copió al mismo directorio.
Tenga en cuenta los contextos de SELinux de los archivos. El archivo que se movió al directorio /
var/www/html conserva el contexto de archivo para el directorio /tmp. El archivo que se copió al
directorio /var/www/html heredó el contexto de SELinux del directorio /var/www/html.
RH199-RHEL8.2-es-1-20200928 157
capítulo 5 | Administración de seguridad de SELinux
Mueva uno de estos archivos al directorio /var/www/html, copie otro, y observe la etiqueta de
cada uno:
El archivo movido mantiene su etiqueta original, mientras que el archivo copiado hereda la
etiqueta del directorio /var/www/html. unconfined_u: es el usuario, object_r: denota el rol
y s0 es el nivel. Un nivel de sensibilidad de 0 es el nivel de sensibilidad más bajo posible.
El comando chcon cambia los contextos de SELinux. chcon establece el contexto de seguridad
en el archivo, almacenado en el sistema de archivos. Es útil para pruebas y experimentos. Sin
embargo, no guarda los cambios de contexto en la base de datos de contexto de SELinux. Cuando
se ejecuta un comando restorecon, los cambios realizados por el comando chcon tampoco se
guardan. Además, si se vuelve a etiquetar todo el sistema de archivos, se revierte el contexto de
SELinux para los archivos modificados con chcon.
En la siguiente pantalla, se muestra un directorio que se está creando. El directorio tiene un valor
de tipo de default_t.
El comando chcon cambia el contexto de archivo del directorio /virtual: el valor de tipo cambia
a httpd_sys_content_t.
158 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
opción descripción
Para asegurarse de tener las herramientas para administrar los contextos de SELinux, instale el
paquete policycoreutils y el paquete policycoreutils-python si es necesario. Estos
contienen el comando restorecon y el comando semanage, respectivamente.
Para asegurarse de que todos los archivos de un directorio tengan el contexto de archivo correcto,
ejecute el comando semanage fcontext -l seguido por el comando restorecon. En el
siguiente ejemplo, observe el contexto de archivo de cada archivo antes y después de que se
ejecuten los comandos semanage y restorecon.
RH199-RHEL8.2-es-1-20200928 159
capítulo 5 | Administración de seguridad de SELinux
En el siguiente ejemplo, se muestra cómo usar semanage para agregar un contexto para un
directorio nuevo.
Referencias
Páginas del manual: chcon(1), restorecon(8), semanage(8) y semanage-
fcontext(8)
160 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar el servidor HTTP Apache para publicar contenido web desde
una raíz de documento no estándar.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
3. Configure Apache para usar una raíz de documento en una ubicación no estándar.
3.1. Cree la nueva root del documento, /custom, con el comando mkdir.
3.2. Cree el archivo index.html en la raíz del documento /custom con el comando
echo.
RH199-RHEL8.2-es-1-20200928 161
capítulo 5 | Administración de seguridad de SELinux
3.3. Configure Apache para que use la nueva ubicación de la raíz del documento.
Para hacerlo, edite el archivo de configuración de Apache /etc/httpd/conf/
httpd.conf y reemplace las dos apariciones de /var/www/html con /custom.
...output omitted...
DocumentRoot "/custom"
...output omitted...
<Directory "/custom">
...output omitted...
4. Inicie y habilite el servicio web Apache y confirme que el servicio se está ejecutando.
4.2. Use el comando systemctl para confirmar que el servicio se está ejecutando.
162 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab selinux-filecontexts finish para terminar este
ejercicio.
RH199-RHEL8.2-es-1-20200928 163
capítulo 5 | Administración de seguridad de SELinux
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• Administrar el valor persistente de los booleanos SELinux con el comando semanage boolean
-l.
• Consultar las páginas del manual que finalizan con _selinux para encontrar información útil
sobre los booleanos de SELinux.
Booleanos de SELinux
Los booleanos de SELinux son opciones que modifican el comportamiento de la política de
SELinux. Los booleanos de SELinux son reglas que pueden habilitarse o deshabilitarse. Los
administradores de seguridad pueden usarlos para realizar ajustes selectivos en la política.
Las páginas del manual de SELinux, provistas con el paquete selinux-policy-doc, describen el
propósito de los booleanos disponibles. El comando man -k '_selinux' enumera estas
páginas del manual.
Los comandos útiles para la gestión de booleanos de SELinux incluyen getsebool, que enumera
los booleanos y su estado, y setsebool, que modifica los booleanos. setsebool -P modifica la
política de SELinux para hacer la modificación persistente. semanage boolean -l informa si un
booleano es persistente o no, junto con una breve descripción del booleano.
Los usuarios no privilegiados pueden ejecutar el comando getsebool, pero solo los
superusuarios pueden ejecutar semanage boolean -l y setsebool -P.
164 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
La opción -P escribe todos los valores pendientes en la política, haciéndolos persistentes en los
reinicios. En el ejemplo que sigue, tenga en cuenta los valores entre paréntesis: ambos ahora están
configurados en on (activado).
Para enumerar los valores booleanos en los que el estado actual difiere del estado
predeterminado, ejecute semanage boolean -l -C.
Referencias
Páginas del manual: booleans(8), getsebool(8), setsebool(8), semanage(8),
semanage-boolean(8)
RH199-RHEL8.2-es-1-20200928 165
capítulo 5 | Administración de seguridad de SELinux
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar Apache para publicar contenido web desde los directorios de
inicio de los usuarios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
3. Para habilitar la función Apache que permite que los usuarios publiquen contenido web
desde sus directorios de inicio, debe editar el archivo de configuración /etc/httpd/
conf.d/userdir.conf. Comente la línea que establece UserDir en disabled
(desactivado) y quite el comentario de la línea que establece UserDir en public_html.
166 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
5. Inicie y habilite el servicio web Apache para que tengan efecto los cambios realizados.
6. En otra ventana de terminal inicie sesión como student. SSH en servera. Cree algo de
contenido web que sea publicado desde un directorio de inicio de los usuarios.
6.1. En otra ventana de terminal inicie sesión como student. Use el comando ssh para
iniciar sesión en servera como el usuario student.
6.4. Use el comando chmod para cambiar los permisos en el directorio de inicio de
student de modo que Apache pueda acceder al subdirectorio public_html.
8. En la ventana de terminal con acceso root, use el comando getsebool para ver si hay
booleanos que restrinjan el acceso a los directorios de inicio.
RH199-RHEL8.2-es-1-20200928 167
capítulo 5 | Administración de seguridad de SELinux
9. En la ventana de terminal con acceso root, use el comando setsebool para habilitar el
acceso al directorio de inicio de forma persistente.
Finalizar
En workstation, ejecute el script lab selinux-booleans finish para terminar este
ejercicio.
168 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
1. Antes de pensar en hacer ajustes, considere que SELinux puede estar haciendo este trabajo
correctamente al prohibir el intento de acceso. Si un servidor web intenta acceder a archivos
en /home, esto podría indicar un riesgo para el servicio si el contenido web no es publicado
por usuarios. Si el acceso debería haberse otorgado, es necesario realizar pasos adicionales
para solucionar el problema.
3. Otra solución para un acceso demasiado restrictivo podría ser el ajuste de un booleano. Por
ejemplo, el booleano ftpd_anon_write controla si usuarios del FTP anónimos pueden
cargar archivos. Debe activar este booleano para permitir que los usuarios anónimos de FTP
carguen archivos en un servidor. El ajuste de booleanos requiere más cuidado porque estos
pueden tener un amplio impacto en la seguridad del sistema.
4. Es posible que la política de SELinux tenga un error que impida un acceso legítimo. Debido a
que SELinux se ha consolidado, es poco común que esto ocurra. Cuando está claro que se ha
identificado un error en la política, comuníquese con el soporte de Red Hat para informar el
error de modo que se pueda resolver.
RH199-RHEL8.2-es-1-20200928 169
capítulo 5 | Administración de seguridad de SELinux
Se espera que el servidor web envíe el contenido de file3, pero en cambio, devuelve un error de
permission denied (Permiso denegado). Si se inspeccionan /var/log/audit/audit.log y
/var/log/messages, se puede obtener más información sobre este error.
Ambos archivos de registro indican que el motivo del error es una denegación de SELinux.
El comando sealert que es parte de la salida de /var/log/messages proporciona más
información, que incluye una posible corrección.
Additional Information:
Source Context system_u:system_r:httpd_t:s0
Target Context unconfined_u:object_r:admin_home_t:s0
Target Objects [ file ]
170 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Source httpd
Source Path /usr/sbin/httpd
Port <Unknown>
Host servera
Source RPM Packages httpd-2.4.6-14.el7.x86_64
Target RPM Packages
Policy RPM selinux-policy-3.12.1-124.el7.noarch
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Host Name servera
Platform Linux servera 3.10.0-84.el7.x86_64 #1
SMP Tue Feb 4 16:28:19 EST 2014 x86_64 x86_64
Alert Count 2
First Seen 2014-02-20 19:55:35 EST
Last Seen 2014-02-20 19:55:35 EST
Local ID 613ca624-248d-48a2-a7d9-d28f5bbe2763
Hash: httpd,httpd_t,admin_home_t,file,getattr
nota
La sección Raw Audit Messages (Mensajes de auditoría sin formato) revela el
archivo de destino que presenta el problema, /var/www/html/file3. Además,
el contexto objetivo, tcontext, no parece pertenecer a un servidor web. Use el
comando restorecon /var/www/html/file3 para corregir el contexto de
archivos. Si deben ajustarse otros archivos, restorecon puede restablecer de
forma recursiva el contexto: restorecon -R /var/www/.
La sección Raw Audit Messages (Mensajes de auditoría en bruto) del comando sealert
contiene información de /var/log/audit.log. Para buscar el archivo /var/log/audit.log,
use el comando ausearch. La opción -m busca en el tipo de mensaje. La opción -ts busca en
función del tiempo.
RH199-RHEL8.2-es-1-20200928 171
capítulo 5 | Administración de seguridad de SELinux
Consola web
Si la Consola web está instalada, también se puede usar para solucionar problemas de SELinux.
Inicie sesión en la Consola Web y seleccione SELinux en el menú de la izquierda. La ventana
SELinux Policy (Política de SELinux) le informa del estado de cumplimiento actual. Cualquier
problema se detalla en la sección SELinux Access Control Errors (Errores de control de acceso
de SELinux).
Haga clic en el carácter > para mostrar los detalles del error. Haga clic en solution details
(detalles de la solución) para mostrar todos los detalles y la posible solución.
Una vez resuelto el problema, la sección SELinux Access Control Errors ya no debería mostrar
el error. Si aparece el mensaje No SELinux alerts (No hay alertas de SELinux), se han
corregido todos los problemas.
172 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Referencias
Página del manual: sealert(8)
RH199-RHEL8.2-es-1-20200928 173
capítulo 5 | Administración de seguridad de SELinux
Ejercicio Guiado
Resultados
Podrá obtener algo de experiencia en el uso de herramientas de solución de problemas de
SELinux.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
3. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
174 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
5. Ejecute el comando sugerido sealert. Tenga en cuenta el contexto de origen, los objetos
de destino, la política y el modo de cumplimiento.
If you believe that httpd should be allowed getattr access on the index.html file
by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c 'httpd' --raw | audit2allow -M my-httpd
# semodule -X 300 -i my-httpd.pp
Additional Information:
Source Context system_u:system_r:httpd_t:s0
Target Context unconfined_u:object_r:default_t:s0
Target Objects /custom/index.html [ file ]
Source httpd
Source Path /usr/sbin/httpd
Port <Unknown>
Host servera.lab.example.com
Source RPM Packages
Target RPM Packages
Policy RPM selinux-policy-3.14.1-59.el8.noarch
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Host Name servera.lab.example.com
Platform Linux servera.lab.example.com
4.18.0-67.el8.x86_64 #1 SMP Sat Feb 9 12:44:00
RH199-RHEL8.2-es-1-20200928 175
capítulo 5 | Administración de seguridad de SELinux
Hash: httpd,httpd_t,default_t,file,getattr
7. Para resolver el problema, use los comandos semanage y restorecon. El contexto que se
debe administrar es httpd_sys_content_t.
176 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab selinux-issues finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 177
capítulo 5 | Administración de seguridad de SELinux
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab selinux-review grade para confirmar que ha
realizado correctamente este ejercicio.
178 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
Finalizar
En workstation, ejecute el script lab selinux-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 179
capítulo 5 | Administración de seguridad de SELinux
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
1.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
180 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
3.1. Con el comando less, vea el contenido de /var/log/messages. Use la tecla / para
buscar sealert. Use la tecla q para salir del comando less.
3.2. Ejecute el comando sugerido sealert. Tenga en cuenta el contexto de origen, los
objetos de destino, la política y el modo de cumplimiento.
If you believe that httpd should be allowed getattr access on the lab.html file by
default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c 'httpd' --raw | audit2allow -M my-httpd
# semodule -X 300 -i my-httpd.pp
Additional Information:
Source Context system_u:system_r:httpd_t:s0
Target Context unconfined_u:object_r:default_t:s0
Target Objects /lab-content/lab.html [ file ]
Source httpd
Source Path /usr/sbin/httpd
Port <Unknown>
Host serverb.lab.example.com
Source RPM Packages
Target RPM Packages
Policy RPM selinux-policy-3.14.1-59.el8.noarch
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Host Name serverb.lab.example.com
Platform Linux serverb.lab.example.com
RH199-RHEL8.2-es-1-20200928 181
capítulo 5 | Administración de seguridad de SELinux
Hash: httpd,httpd_t,default_t,file,getattr
3.3. La sección Raw Audit Messages (Mensajes de auditoría en bruto) del comando
sealert contiene información de /var/log/audit/audit.log. Use el comando
ausearch para buscar el archivo /var/log/audit/audit.log. La opción -m
busca en el tipo de mensaje. La opción ts busca en función del tiempo. Esta entrada
identifica el proceso relevante y el archivo que causa la alerta. El proceso es el servidor
web Apache httpd, el archivo es /lab-content/lab.html y el contexto es
system_r:httpd_t.
4.1. Use ls-dZ para comparar la raíz del documento de /lab-content y /var/www/
html.
4.2. Cree una regla de contextos de archivos que establezca el tipo predeterminado en
httpd_sys_content_ para /lab-content y todos los archivos debajo de este.
182 RH199-RHEL8.2-es-1-20200928
capítulo 5 | Administración de seguridad de SELinux
4.3. Use el comando restorecon para establecer el contexto de SELinux para los archivos
en /lab-content.
5. Verifique que el problema de SELinux se haya resuelto y que Apache pueda proporcionar
contenido web.
Use su navegador web para actualizar el enlace http://serverb/lab.html. Ahora
debería ver algo de contenido web.
This is the html file for the SELinux final lab on SERVERB.
6. Salga de serverb.
Evaluación
En workstation, ejecute el script lab selinux-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab selinux-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 183
capítulo 5 | Administración de seguridad de SELinux
Resumen
En este capítulo, aprendió lo siguiente:
• El comando semanage se usa para administrar las reglas de políticas de SELinux. El comando
restorecon aplica el contexto definido por la política.
• El comando sealert muestra información útil que ayuda con la solución de problemas de
SELinux.
184 RH199-RHEL8.2-es-1-20200928
capítulo 6
RH199-RHEL8.2-es-1-20200928 185
capítulo 6 | Ajuste del rendimiento del sistema
Finalización de procesos
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
La siguiente tabla enumera las señales fundamentales usadas por los administradores del sistema
para la administración de procesos de rutina. Puede referirse a las señales ya sea por su nombre
abreviado (HUP) o nombre propio (SIGHUP).
Número Nombre
Definición Propósito
de señal abreviado
186 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Número Nombre
Definición Propósito
de señal abreviado
nota
Los números de señal varían en las distintas plataformas de hardware de Linux,
pero los nombres y los significados de las señales están estandarizados. Para el uso
del comando, se aconseja usar los nombres de señal en lugar de los números. Los
números analizados en esta sección son para los sistemas x86_64.
Cada señal tiene una acción predeterminada que, por lo general, es una de las siguientes:
• Core: provoca que un programa guarde una imagen de la memoria (volcado central) y que, a
continuación, finalice.
• Stop: provoca que un programa deje de ejecutarse (se suspenda) y espere para continuar (se
reinicie).
Los programas pueden estar preparados para reaccionar ante señales de eventos esperadas
mediante la implementación de rutinas de controlador que ignoren, reemplacen o amplíen la
acción predeterminada de una señal.
Las señales se pueden especificar como opciones por nombre (por ejemplo, -HUP o -SIGHUP)
o por número (el -1 relacionado). Los usuarios pueden finalizar sus propios procesos, pero se
necesitan privilegios de root para finalizar procesos que son propiedad de otros usuarios.
El comando kill envía una señal a un proceso mediante un número de PID. A pesar de su
nombre, el comando kill puede usarse para enviar cualquier señal y no solo aquellas para finalizar
programas. Puede usar el comando kill -l para enumerar los nombres y números de todas las
señales disponibles.
RH199-RHEL8.2-es-1-20200928 187
capítulo 6 | Ajuste del rendimiento del sistema
Use pkill para enviar una señal a uno o más procesos que coincidan con los criterios de
selección. Los criterios de selección pueden ser un nombre de comando, un proceso que es
188 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
propiedad de un usuario específico o todos los procesos del sistema. El comando pkill incluye
criterios de selección avanzados:
Para cerrar la sesión de un usuario, primero identifique la sesión de inicio de sesión que se
finalizará. Use el comando w para enumerar los inicios de sesión de usuario y los procesos actuales
en ejecución. Observe que las columnas TTY y FROM para determinar las sesiones a cerrar.
Todas las sesiones de inicio de sesión de usuario están asociadas a un dispositivo terminal (TTY).
Si el nombre del dispositivo tiene el formato pts/N, se trata de una pseudoterminal asociada con
una ventana de terminal gráfica o sesión de inicio de sesión remota. Si tiene el formato ttyN, el
usuario se encuentra en una consola del sistema, consola alternativa u otro dispositivo terminal
conectado directamente.
RH199-RHEL8.2-es-1-20200928 189
capítulo 6 | Ajuste del rendimiento del sistema
[user@host ~]$ w
12:43:06 up 27 min, 5 users, load average: 0.03, 0.17, 0.66
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 12:26 14:58 0.04s 0.04s -bash
bob tty3 12:28 14:42 0.02s 0.02s -bash
user pts/1 desk.example.com 12:41 2.00s 0.03s 0.03s w
[user@host ~]$
Averigüe cuánto tiempo un usuario estuvo en el sistema con la hora de inicio de sesión. Para cada
sesión, los recursos de CPU consumidos por los trabajos actuales, incluidas las tareas en segundo
plano y los procesos secundarios, se encuentran en la columna JCPU. El consumo de CPU del
proceso de primer plano actual está en la columna PCPU.
Los procesos y las sesiones pueden señalizarse en forma individual o colectiva. Para finalizar todos
los procesos de un usuario, use el comando pkill. Debido a que el proceso inicial en una sesión
de inicio de sesión (líder de sesión) está diseñado para manipular las solicitudes de finalización
de sesión e ignorar las señales de teclado involuntarias, la finalización de los procesos y shells de
inicio de sesión de un usuario requiere del uso de la señal SIGKILL.
Importante
Los administradores suelen usar SIGKILL con demasiada rapidez.
Primero identifique los números de PID que se finalizarán mediante pgrep, que funciona como
pkill, incluido el uso de las mismas opciones, excepto que pgrep enumera procesos, en lugar de
finalizarlos.
Cuando los procesos que requieren atención están en la misma sesión de inicio de sesión, es
probable que no sea necesario finalizar todos los procesos de un usuario. Determine el terminal
de control para la sesión con el comando w y, a continuación, finalice solo los procesos que hagan
referencia a la misma ID de terminal. A menos que se especifique SIGKILL, el líder de sesión (en
este caso, la shell de inicio de sesión Bash) manipula y supera en forma correcta la solicitud de
finalización, pero finalizan todos los demás procesos de sesión.
190 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
7428 sleep
[root@host ~]# w -h -u bob
bob tty3 18:37 5:04 0.03s 0.03s -bash
[root@host ~]# pkill -t tty3
[root@host ~]# pgrep -l -u bob
7391 bash
[root@host ~]# pkill -SIGKILL -t tty3
[root@host ~]# pgrep -l -u bob
[root@host ~]#
Puede aplicarse el mismo proceso selectivo de finalización con las relaciones de proceso principal
y secundario. Use el comando pstree para visualizar un árbol de proceso para el sistema o un
solo usuario. Use la PID del proceso principal para finalizar todos los procesos secundarios que
haya creado. Esta vez, la shell de inicio de sesión Bash principal sobrevive porque la señal se dirige
solo a sus procesos secundarios.
Referencias
info libc signal (Manual de referencia de la biblioteca GNU C)
RH199-RHEL8.2-es-1-20200928 191
capítulo 6 | Ajuste del rendimiento del sistema
Ejercicio Guiado
Finalización de procesos
En este ejercicio, usará señales para gestionar y detener procesos.
Resultados
Deberá ser capaz de iniciar y detener varios procesos de shell.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. En esta sección,
estas terminales se denominan izquierda y derecha. En cada terminal, use el comando ssh
para iniciar sesión en servera como el usuario student.
2.1. Use el comando mkdir para crear un nuevo directorio denominado /home/
student/bin.
2.2. Use el comando vim para crear un script denominado killing en el directorio /
home/student/bin. Presione la tecla i para ingresar al modo interactivo Vim. Use
el comando :wq para guardar el archivo.
192 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
nota
El script killing se ejecuta hasta que termine. Adjunta argumentos de línea de
comandos a ~/killing_outfile una vez cada 5 segundos.
2.3. Use el comando chmod para hacer que el archivo killing sea ejecutable.
4. En la shell de terminal derecha, use el comando tail con la opción -f para confirmar que
los tres procesos se estén adjuntando al archivo /home/student/killing_outfile.
5. En la shell de terminal izquierda, use el comando jobs para enumerar los trabajos.
6. Use señales para suspender el proceso network. Confirme que el proceso network está
detenido. En la shell de terminal derecha, confirme que el proceso network ya no está
anexando la salida a ~/killing_output.
6.1. Use kill con la opción -SIGSTOP para detener el proceso network. Ejecute jobs
para confirmar que se ha detenido.
RH199-RHEL8.2-es-1-20200928 193
capítulo 6 | Ajuste del rendimiento del sistema
6.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra network ya no se está anexando al archivo ~/killing_outfile.
...output omitted...
interface connection interface connection interface connection interface
7.1. Use el comando kill con la opción -SIGTERM para finalizar el proceso de
interface. Ejecute el comando jobs para confirmar que ha sido finalizado.
7.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra interface ya no se está anexando al archivo ~/killing_outfile.
...output omitted...
connection connection connection connection connection connection connection
connection
8.1. Use el comando kill con -SIGCONT para reanudar el proceso network. Ejecute el
comando jobs para confirmar que el proceso se está ejecutando.
8.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra network se está anexando al archivo ~/killing_outfile.
194 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
...output omitted...
network connection network connection network connection network connection
network connection
9. En la shell de terminal izquierda, finalice los dos trabajos restantes. Confirme que no
queden trabajos y que se haya detenido la salida.
9.1. Use el comando kill con la opción -SIGTERM para finalizar el proceso interface.
Use el mismo comando para finalizar el proceso connection.
10. En la shell de terminal izquierda, enumere los procesos tail que se están ejecutando en
todas las shells de terminales abiertas. Finalizar la ejecución de comandos tail. Confirme
que el proceso ya no se está ejecutando.
10.1. Use el comando ps con la opción -ef para enumerar todos los procesos tail en
ejecución. Refine la búsqueda con el comando grep.
10.2. Use el comando pkill con la opción -SIGTERM para finalizar todos los procesos
tail. Use ps para confirmar que ya no está presente.
...output omitted...
network connection network connection network connection Terminated
[student@servera ~]$
11. Salga de ambas ventanas de terminal. Si no sale de todas las sesiones, el script de
finalización fallará.
RH199-RHEL8.2-es-1-20200928 195
capítulo 6 | Ajuste del rendimiento del sistema
Finalizar
En workstation, ejecute el script lab processes-kill finish para terminar este ejercicio.
196 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de describir qué es el promedio de carga y
determinar los procesos responsables del alto uso de recursos en un servidor.
Cada cinco segundos, el kernel recoge la cantidad de carga actual en función de la cantidad de
procesos en estados ejecutables e ininterrumpidos. Este número se acumula y se informa como un
promedio móvil exponencial en los últimos 1, 5 y 15 minutos.
• Algunos sistemas UNIX solo tienen en cuenta la utilización de la CPU o la longitud de la cola de
ejecución para indicar la carga del sistema. Linux también incluye la utilización del disco o de la
red porque eso puede tener un impacto tan significativo en el rendimiento del sistema como la
carga de la CPU. Cuando haya promedios altos de carga con actividad mínima de CPU, se debe
examinar la actividad del disco y de la red.
RH199-RHEL8.2-es-1-20200928 197
capítulo 6 | Ajuste del rendimiento del sistema
Los tres valores del promedio de carga representan la carga durante los últimos 1, 5 y 15 minutos.
Una rápida mirada indica si la carga del sistema parece estar subiendo o bajando.
En el siguiente ejemplo, el sistema es un sistema de un solo socket de doble núcleo con dos
hyperthreads por núcleo. En términos generales, Linux tratará esto como un sistema de cuatro
CPU para fines de programación.
Imagine por un momento que la única contribución a la cantidad de carga proviene de procesos
que necesitan tiempo de CPU. Puede entonces dividir los valores promedios de carga que se
muestran por el número de CPU lógicas en el sistema. Un valor por debajo de 1 indica utilización
de recursos satisfactoria y tiempos de espera mínimos. Un valor por encima de 1 indica saturación
de recursos y cierta cantidad de retraso en el procesamiento.
Una cola de CPU inactiva tiene una cantidad de carga de 0. Cada proceso que espera a una CPU
agrega un recuento de 1 a la cantidad de carga. Si un proceso se está ejecutando en una CPU, la
cantidad de carga es 1, es decir, el recurso (la CPU) está en uso, pero no hay solicitudes en espera.
Si ese proceso se está ejecutando durante un minuto entero, su contribución al promedio de carga
de un minuto será 1.
Sin embargo, los procesos en suspensión ininterrumpida para E/S críticas debido a un disco o
recurso de red ocupados se incluyen también en el recuento y aumentan el promedio de carga.
Si bien no es una indicación de la utilización de la CPU, estos procesos se agregan al recuento de
la cola porque están esperando recursos y no pueden ejecutarse en una CPU hasta que obtienen
esos recursos. Esto sigue siendo una carga del sistema debido a las limitaciones de recursos que
están haciendo que los procesos no se ejecuten.
198 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Hasta que no se produce una saturación del recurso, un promedio de carga se mantiene por
debajo de 1, dado que las tareas rara vez son encontradas en las colas de espera. El promedio de
carga solo aumenta cuando la saturación del recurso provoca que las solicitudes se mantengan en
fila y sean contadas por la rutina del cálculo de carga. Cuando la utilización del recurso se aproxima
al 100 %, cada solicitud adicional comienza a experimentar un tiempo de espera del servicio.
Existen algunas otras herramientas que informan el promedio de carga, incluyendo w y top.
• La memoria virtual (VIRT) es toda la memoria que está usando el proceso, incluido el conjunto
residente, las bibliotecas compartidas y cualquier página de memoria asignada o intercambiada.
(Con la etiqueta VSZ en el comando ps).
• La memoria residente (RES) es la memoria física que usa el proceso, incluido cualquier objeto
residente compartido. (Con la etiqueta RSS en el comando ps).
– D = Suspensión ininterrumpida
– R = En ejecución o ejecutable
– S = En espera
– T = Detenido o en seguimiento
– Z = Zombi
• El tiempo de CPU (TIME) es el tiempo total de procesamiento desde que comenzó el proceso.
Se puede alternar para incluir el tiempo acumulativo de todos los procesos secundarios.
Tecla Propósito
s (1) Cambiar la tasa de actualización (pantalla) en segundos decimales (p. ej., 0.5, 1,
5).
RH199-RHEL8.2-es-1-20200928 199
capítulo 6 | Ajuste del rendimiento del sistema
Tecla Propósito
b Alternar resaltado reverso para procesos Running (En ejecución); solo negrita
de manera predeterminada.
r (1) Ejecute el comando renice para un proceso. Cuando se le solicite, ingrese PID;
luego, nice_value.
q Salir.
Referencias
Páginas de manual: ps(1), top(1), uptime(1) y w(1)
200 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Ejercicio Guiado
Resultados
Deberá ser capaz de gestionar los procesos en tiempo real.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. Estas terminales se
denominan izquierda y derecha. En cada terminal, use el comando ssh para iniciar sesión en
servera como el usuario student.
2.1. Use el comando mkdir para crear un nuevo directorio denominado /home/
student/bin.
#!/bin/bash
while true; do
var=1
while [[ var -lt 60000 ]]; do
var=$(($var+1))
done
sleep 1
done
RH199-RHEL8.2-es-1-20200928 201
capítulo 6 | Ajuste del rendimiento del sistema
El script monitor se ejecuta hasta que termine. Genera carga artificial de CPU
al realizar sesenta mil problemas de suma. Luego se inactiva durante un segundo,
restablece la variable y se repite.
2.3. Use el comando chmod para hacer que el archivo monitor sea ejecutable.
5. En la shell de terminal izquierda, ejecute una sola instancia del archivo ejecutable monitor.
Use el signo (&) para iniciar el proceso en segundo plano.
202 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
top - 12:23:45 up 11 days, 1:09, 3 users, load average: 0.21, 0.14, 0.05
8. En la shell de terminal izquierda, ejecute una segunda instancia de monitor. Use el signo
(&) para iniciar el proceso en segundo plano.
top - 12:27:39 up 11 days, 1:13, 3 users, load average: 0.36, 0.25, 0.11
10. En la shell de terminal izquierda, ejecute una tercera instancia de monitor. Use el signo (&)
para iniciar el proceso en segundo plano.
RH199-RHEL8.2-es-1-20200928 203
capítulo 6 | Ajuste del rendimiento del sistema
11. En la shell de terminal derecha, anote el ID de proceso (PID) para el tercer proceso de
monitor. Observe el porcentaje de CPU para el proceso, que también se espera que sea
entre el 15 % y el 25 %.
Para que el promedio de carga sea superior a 1, debe iniciar más procesos de monitor.
La configuración del aula tiene 2 CPU, por lo que solo 3 procesos no son suficientes para
alterarla. Inicie tres procesos de monitor más. Observe de nuevo el promedio de carga
de un minuto, que ahora se espera que sea superior a 1. Es importante esperar al menos un
minuto para permitir que el cálculo se adapte a la carga de trabajo nueva.
top - 12:42:32 up 11 days, 1:28, 3 users, load average: 1.23, 2.50, 1.54
12. Una vez que haya finalizado de observar los valores promedio de carga, finalice cada uno
de los procesos monitor desde top.
12.1. En la shell de terminal derecha, presione k. Observe el prompt que está debajo de los
encabezados y arriba de las columnas.
...output omitted...
PID to signal/kill [default pid = 11338]
...output omitted...
Send pid 11338 signal [15/sigterm]
204 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
13. Repita el paso anterior para cada instancia de monitor restante. Confirme que no quede
ningún proceso monitor en top.
14. En la shell de terminal derecha, presione q para salir de top. Salga de servera en ambas
ventanas de terminal.
Finalizar
En workstation, ejecute el script lab processes-monitor finish para terminar este
ejercicio.
RH199-RHEL8.2-es-1-20200928 205
capítulo 6 | Ajuste del rendimiento del sistema
Objetivos
Después de completar esta sección, debe ser capaz de optimizar el rendimiento del sistema
seleccionando un perfil de ajuste administrado por el daemon tuned.
Sistemas de ajuste
Los administradores del sistema pueden optimizar el rendimiento de un sistema ajustando
diversas configuraciones de dispositivos basadas en una variedad de cargas de trabajo de casos
de uso. El daemon tuned aplica la configuración de ajuste de forma estática y dinámica, con
perfiles de optimización que reflejan los requisitos particulares de la carga de trabajo.
Por ejemplo, los dispositivos de almacenamiento experimentan un alto uso durante el arranque y
el inicio de sesión, pero tienen una actividad mínima cuando las cargas de trabajo de los usuarios
consisten en el uso de navegadores web y clientes de correo electrónico. De manera similar, la
actividad de la CPU y los dispositivos de red aumentan durante el uso máximo en un día laboral.
El daemon tuned monitorea la actividad de estos componentes y ajusta la configuración de
parámetros para maximizar el rendimiento durante momentos de mucha actividad y reducir
los ajustes durante momentos de poca actividad. El daemon tuned usa los parámetros de
rendimiento proporcionados en los perfiles de ajuste predefinidos.
206 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Los perfiles de aumento de rendimiento incluyen perfiles que se centran en los siguientes
aspectos:
balanced (balanceado) Ideal para los sistemas que requieren un balance entre
ahorro de energía y rendimiento.
RH199-RHEL8.2-es-1-20200928 207
capítulo 6 | Ajuste del rendimiento del sistema
Un administrador del sistema identifica el perfil de ajuste activo actualmente con tuned-adm
active.
El comando tuned-adm list enumera todos los perfiles de optimización disponibles, incluidos
ambos perfiles incorporados y los perfiles de optimización personalizados creados por un
administrador del sistema.
Use tuned-adm profile profilename para cambiar el perfil activo a uno diferente que se
adapte mejor a los requisitos de ajuste actuales del sistema.
El comando tuned-adm puede recomendar un perfil de ajuste para el sistema. Este mecanismo se
usa para determinar el perfil predeterminado de un sistema después de la instalación.
nota
La salida tuned-adm recommend se basa en diversas características del sistema,
entre ellas, si el sistema es una máquina virtual y otras categorías predefinidas
seleccionadas durante la instalación del sistema.
Para revertir los cambios de configuración realizados por el perfil actual, cambie a otro perfil o
desactive el daemon ajustado. Desactive la actividad de ajuste de tuned con tuned-adm off.
208 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Como usuario privilegiado, haga clic en la opción del menú Systems (Sistemas) en la barra de
navegación izquierda. El perfil activo actual se muestra en el campo Performance Profile (Perfil
de rendimiento). Para seleccionar un perfil diferente, haga clic en el enlace del perfil activo.
RH199-RHEL8.2-es-1-20200928 209
capítulo 6 | Ajuste del rendimiento del sistema
Para verificar los cambios, vuelva a la página principal de System y confirme que se muestra el
perfil activo en el campo Performance Profile.
Referencias
Páginas del manual: tuned(8), tuned.conf(5), tuned-main.conf(5) y tuned-
adm(1)
210 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Ejercicio Guiado
Resultados
Debe ser capaz de configurar un sistema para usar un perfil de ajuste.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use SSH para iniciar sesión en servera con el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2.1. Use yum para confirmar que el paquete tuned está instalado.
RH199-RHEL8.2-es-1-20200928 211
capítulo 6 | Ajuste del rendimiento del sistema
3. Enumere los perfiles de ajuste disponibles e identifique el perfil activo. Si sudo solicita una
contraseña, ingrese student después del aviso.
5. Salga de servera.
Finalizar
En workstation, ejecute el script lab tuning-profiles finish para terminar este
ejercicio.
212 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Influencia en la programación de
procesos
Objetivos
Después de completar esta sección, debe ser capaz de priorizar o quitar la prioridad de procesos
específicos, con los comandos nice y renice.
Linux y otros sistemas operativos ejecutan más procesos que la cantidad de unidades de
procesamiento que tienen, con una técnica llamada particionamiento de tiempo o multitarea. El
programador de procesos del sistema operativo cambia rápidamente entre procesos en un único
núcleo, lo que da la impresión de que hay varios procesos ejecutándose al mismo tiempo.
Prioridades relativas
Los diferentes procesos tienen diferentes niveles de importancia. El programador de procesos
se puede configurar para usar diferentes políticas de programación para diferentes procesos. La
política de programación usada para la mayoría de los procesos que se ejecutan en un sistema
normal se denomina SCHED_OTHER (también denominada SCHED_NORMAL), pero hay otras
políticas disponibles para las diversas necesidades de cargas de trabajo.
Debido a que no todos los procesos son igual de importantes, a los procesos que se ejecutan con
la política SCHED_NORMAL se les puede dar una prioridad relativa. Esta prioridad se denomina
el valor bueno de un proceso, y se organizan en 40 niveles buenos diferentes para todos los
procesos.
Los valores de nivel bueno van desde -20 (prioridad más alta) a 19 (prioridad más baja). De
forma predeterminada, los procesos heredan su nivel bueno de sus procesos principales, que es
generalmente 0. Los niveles buenos más altos indican menos prioridad (el proceso abandona
fácilmente el uso de la CPU), mientras que los niveles buenos más bajos indican una mayor
prioridad (el proceso tiene menos tendencia a abandonar el uso de la CPU). Si no hay disputa por
recursos (por ejemplo, cuando hay menos procesos activos que núcleos de la CPU disponibles),
incluso los procesos con un nivel bueno alto usarán todos los recursos de la CPU disponibles
que puedan. Sin embargo, cuando hay más procesos que solicitan tiempo de CPU que núcleos
disponibles, los procesos con un nivel bueno más alto recibirán menos tiempo de la CPU que
aquellos con un nivel bueno más bajo.
RH199-RHEL8.2-es-1-20200928 213
capítulo 6 | Ajuste del rendimiento del sistema
Los usuarios no privilegiados solo están autorizados a incrementar los niveles buenos de sus
propios procesos. No pueden reducir los niveles buenos de sus procesos ni pueden modificar el
nivel bueno de los procesos de otros usuarios.
El siguiente comando ps muestra una lista de todos los procesos, con su PID, nombre, nivel
bueno y clase de programación, ordenados de forma descendente por nivel bueno. Los procesos
que muestran TS en la columna de clase de programación CLS se ejecutan con la política de
programación SCHED_NORMAL. Los procesos con un guión (-) como nivel bueno se ejecutan
con otras políticas de programación y son interpretados como una prioridad más alta por el
programador. Los detalles de las políticas de programación adicionales están más allá del alcance
de este curso.
214 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
El siguiente ejemplo inicia un proceso desde la shell y muestra el valor bueno del proceso. Tenga
en cuenta el uso de la opción PID en ps para especificar la salida solicitada.
Todos los usuarios pueden usar el comando nice para iniciar comandos con un nivel bueno
predeterminado o superior. Sin opciones, el comando nice inicia un proceso con el valor bueno
predeterminado de 10.
En el siguiente ejemplo, se inicia el comando sha1sum como una tarea en segundo plano con el
nivel bueno predeterminado y se muestra el nivel bueno del proceso:
Use la opción -n para aplicar un nivel bueno definido por el usuario para el proceso de arranque. El
proceso predeterminado es agregar 10 al nivel bueno actual del proceso. En el siguiente ejemplo,
se inicia un comando como una tarea en segundo plano con el valor bueno definido por el usuario
y se muestra el nivel bueno del proceso:
Importante
Los usuarios sin privilegios solo pueden aumentar el nivel bueno de su valor actual a
un máximo de 19. Una vez aumentado, los usuarios sin privilegios no pueden reducir
el valor para volver al nivel bueno anterior. El usuario root puede reducir el nivel
bueno de cualquier nivel actual a un mínimo de -20.
RH199-RHEL8.2-es-1-20200928 215
capítulo 6 | Ajuste del rendimiento del sistema
El comando top también se puede usar para cambiar el nivel bueno de un proceso. Desde la
interfaz interactiva top, elija la opción r para acceder al comando renice, seguido por el PID que
se cambiará y el nuevo nivel bueno.
Referencias
Páginas del manual: nice(1), renice(1), top(1) y sched_setscheduler(2).
216 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Ejercicio Guiado
Influencia en la programación de
procesos
En este ejercicio, ajustará la prioridad de programación de los procesos con los comandos
nice y renice, y observará los efectos que esto tiene en la ejecución de procesos.
Resultados
Deberá ser capaz de ajustar las prioridades de programación para los procesos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use SSH para iniciar sesión en servera con el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2.1. Use grep para analizar la cantidad de procesadores virtuales existentes (núcleos de
CPU) del archivo /proc/cpuinfo.
2.2. Use un comando de bucle para iniciar varias instancias del comando sha1sum /
dev/zero &. Inicie dos por procesador virtual encontrado en el paso anterior. En
este ejemplo, serían cuatro instancias. Los valores de PID en su salida variarán con
respecto al ejemplo.
RH199-RHEL8.2-es-1-20200928 217
capítulo 6 | Ajuste del rendimiento del sistema
3. Verifique que las tareas en segundo plano se estén ejecutando para cada uno de los
procesos sha1sum.
4. Use los comandos ps y pgrep para mostrar el porcentaje de uso de CPU para cada
proceso sha1sum.
5. Cierre todos los procesos sha1sum y, a continuación, verifique que no haya trabajos en
ejecución.
5.1. Use el comando pkill para cerrar todos los procesos en ejecución con el patrón de
nombre sha1sum.
6. Inicie varias instancias de sha1sum /dev/zero & y, a continuación, inicie una instancia
adicional de sha1sum /dev/zero & con un nivel bueno de 10. Inicie tantas instancias
como procesadores virtuales tenga el sistema. En este ejemplo, se inician 3 instancias
normales y otra con el nivel bueno más alto.
6.1. Use los bucles para iniciar tres instancias de sha1sum /dev/zero &.
6.2. Use el comando nice para iniciar la cuarta instancia con un nivel bueno de 10.
218 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
7. Use los comandos ps y pgrep para mostrar el PID, el porcentaje de uso de CPU, el valor
bueno y el nombre ejecutable para cada proceso. La instancia con el valor bueno de 10
debe mostrar un porcentaje menor de uso de CPU que las otras instancias.
8. Use el comando sudo renice para bajar el nivel bueno de un proceso del paso anterior.
Observe el valor de PID de la instancia de proceso con el nivel bueno de 10. Use ese PID de
proceso para bajar su nivel bueno a 5.
9. Repita los comandos ps y pgrep para volver a mostrar el porcentaje de CPU y el nivel
bueno.
10. Use el comando pkill para cerrar todos los procesos en ejecución con el patrón de
nombre sha1sum.
Finalizar
En workstation, ejecute el script lab tuning-procscheduling finish para terminar este
ejercicio.
RH199-RHEL8.2-es-1-20200928 219
capítulo 6 | Ajuste del rendimiento del sistema
220 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Cambie el perfil de ajuste actual para serverb a balanced, un perfil de ajuste general no
especializado.
2. Dos procesos en serverb están consumiendo un alto porcentaje de uso de CPU. Ajuste el
nivel de nice de cada proceso en 10 para permitir más tiempo de CPU para otros procesos.
Evaluación
En workstation, ejecute el comando lab tuning-review grade para confirmar que ha
realizado correctamente este ejercicio de laboratorio.
Finalizar
En workstation, ejecute el script lab tuning-review finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 221
capítulo 6 | Ajuste del rendimiento del sistema
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Cambie el perfil de ajuste actual para serverb a balanced, un perfil de ajuste general no
especializado.
1.1. En workstation, abra una sesión de SSH en serverb como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
1.2. Use yum para confirmar que el paquete tuned está instalado.
1.3. Use el comando systemctl is-active tuned para mostrar el estado del servicio
tuned.
222 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
1.4. Enumere todos los perfiles de ajuste disponibles y sus descripciones. Tenga en cuenta
que el perfil activo actual es virtual-guest.
Profile summary:
General non-specialized tuned profile
...output omitted...
2. Dos procesos en serverb están consumiendo un alto porcentaje de uso de CPU. Ajuste el
nivel de nice de cada proceso en 10 para permitir más tiempo de CPU para otros procesos.
2.1. Determine los dos consumidores de CPU principales en serverb. Los consumidores
de CPU principales aparecen en último lugar en la salida del comando. Los valores
porcentuales de CPU varían.
RH199-RHEL8.2-es-1-20200928 223
capítulo 6 | Ajuste del rendimiento del sistema
2.2. Identifique el nivel actual de nice para los dos consumidores de CPU principales.
2.3. Use el comando sudo renice -n 10 2967 2983 para ajustar el nivel de nice
de cada proceso en 10. Use los valores de PID identificados en la salida del comando
anterior.
2.4. Verifique que el nivel actual de nice de cada proceso sea 10.
Evaluación
En workstation, ejecute el comando lab tuning-review grade para confirmar que ha
realizado correctamente este ejercicio de laboratorio.
Finalizar
En workstation, ejecute el script lab tuning-review finish para terminar este ejercicio.
224 RH199-RHEL8.2-es-1-20200928
capítulo 6 | Ajuste del rendimiento del sistema
Resumen
En este capítulo, aprendió lo siguiente:
• Una señal es una interrupción de software que informa eventos a un programa en ejecución. Los
comandos kill, pkill y killall usan señales para controlar los procesos.
• Para revertir todos los cambios realizados en la configuración del sistema por el perfil
seleccionado, cambie a otro perfil o desactive el servicio tuned.
• Se asigna una prioridad relativa a un proceso para determinar su acceso a la CPU. Esta prioridad
se llama agradable Valor de un proceso.
• El comando nice asigna una prioridad a un proceso cuando se inicia. El comando renice
modifica la prioridad de un proceso en ejecución.
RH199-RHEL8.2-es-1-20200928 225
226 RH199-RHEL8.2-es-1-20200928
capítulo 7
Instalación y actualización de
paquetes de software
Meta Descargar, instalar, actualizar y gestionar paquetes
de software de Red Hat y repositorios de paquetes
Yum.
RH199-RHEL8.2-es-1-20200928 227
capítulo 7 | Instalación y actualización de paquetes de software
Objetivos
Tras completar esta sección, deberá ser capaz de registrar un sistema para su cuenta de Red Hat
y asignarle autorizaciones para actualizaciones de software y servicios de soporte mediante la
administración de suscripciones de Red Hat.
Existen cuatro tareas básicas que se realizan con las herramientas de administración de
suscripciones de Red Hat:
• Registrar un sistema para asociar ese sistema a una cuenta de Red Hat. Esto permite al
administrador de suscripciones realizar un inventario exclusivo del sistema. Cuando ya no se usa,
es posible anular la suscripción del sistema.
Registro de un sistema
Hay varias formas diferentes de registrar un sistema con el portal de clientes de Red Hat. Hay una
interfaz gráfica a la que puede acceder con una aplicación de GNOME o mediante el servicio de
consola web, y hay una herramienta de línea de comando.
228 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Para registrar el sistema, haga clic en el botón Registrar situado en la ventana Suscripciones.
Esto muestra el siguiente cuadro de diálogo:
Este cuadro de diálogo registra un sistema con un servidor de suscripción. Por defecto, registra el
servidor para el portal del clientes de Red Hat. Proporcione el inicio de sesión y la contraseña
para la cuenta del portal de clientes de Red Hat a la que se debe registrar el sistema y haga clic en
el botón Registrar.
Cuando está registrado, el sistema tiene automáticamente una suscripción adjunta si hay una
disponible.
Después de que se haya asignado un registro y una suscripción, cierre la ventana Suscripciones.
El sistema está suscrito adecuadamente y está listo para recibir actualizaciones o instalar un
software nuevo de Red Hat
RH199-RHEL8.2-es-1-20200928 229
capítulo 7 | Instalación y actualización de paquetes de software
nota
subscription-manager también puede usarse junto con las claves de activación
que permiten el registro y la asignación de suscripciones definidas previamente sin
usar un nombre de usuario o contraseña. Este método de registro puede ser muy
útil para las instalaciones e implementaciones automáticas. Por lo general, las claves
de activación son emitidas por un servicio de administración de suscripciones in situ,
como el administrador de activos de suscripción o Red Hat Satellite; no se analizan
en detalle en este curso.
Certificados de autorización
Una autorización es una suscripción que se adjuntó a un sistema. Los certificados digitales se
usan para almacenar información actual sobre las autorizaciones en el sistema local. Una vez
registrados, los certificados de autorización se almacenan en /etc/pki y en sus subdirectorios.
• /etc/pki/product contiene certificados que indican que hay productos Red Hat instalados
en el sistema.
230 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
• /etc/pki/consumer contiene certificados que indican la cuenta Red Hat donde está
registrado el sistema.
• /etc/pki/entitlement contiene certificados que indican cuáles son las suscripciones que
están adjuntadas al sistema.
Los certificados pueden inspeccionarse en forma directa con la utilidad rct, pero las herramientas
de subscription-manager proporcionan maneras más prácticas de examinar las suscripciones
que están adjuntadas al sistema.
Referencias
Páginas de manual subscription-manager(8) y rct(8)
RH199-RHEL8.2-es-1-20200928 231
capítulo 7 | Instalación y actualización de paquetes de software
Cuestionario
1. ¿Qué comando se usa para registrar un sistema sin usar un entorno gráfico?
a. rct
b. subscription-manager
c. rpm
d. yum
232 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Solución
1. ¿Qué comando se usa para registrar un sistema sin usar un entorno gráfico?
a. rct
b. subscription-manager
c. rpm
d. yum
RH199-RHEL8.2-es-1-20200928 233
capítulo 7 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, deberá ser capaz de encontrar, instalar y actualizar paquetes de
software mediante el uso del comando yum.
Yum está diseñado para ser un mejor sistema de gestión de instalación y actualizaciones de
software basado en RPM. El comando yum le permite instalar, actualizar, eliminar y obtener
información sobre los paquetes de software y sus dependencias. Puede obtener un historial de
transacciones realizadas y trabajar con múltiples repositorios de software de Red Hat y terceros.
• yum search KEYWORD enumera paquetes por palabras clave que se encuentran en los
campos de nombre y resumen solamente.
Para buscar paquetes que contienen “servidor web” en los campos nombre, resumen y
descripción, use search all:
234 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
• yum info PACKAGENAME arroja información detallada sobre un paquete, que incluye el
espacio en disco necesario para la instalación.
• yum provides PATHNAME muestra paquetes que coinciden con el nombre de ruta
especificado (que a menudo, incluye caracteres comodines).
• yum install PACKAGENAME obtiene e instala un paquete de software junto con cualquier
tipo de dependencia.
RH199-RHEL8.2-es-1-20200928 235
capítulo 7 | Instalación y actualización de paquetes de software
================================================================================
Install 9 Packages
• yum update PACKAGENAME obtiene e instala una versión más reciente del paquete
especificado, incluidas las dependencias. Generalmente, el proceso intenta preservar los
archivos de configuración, pero en algunos casos, se les cambiará el nombre si el empaquetador
considera que el anterior no funcionará después de la actualización. Si no se especifica el
PACKAGENAME, instala todas las actualizaciones relevantes.
Como un kernel nuevo solo puede evaluarse mediante el inicio en ese kernel, el paquete está
específicamente diseñado para que puedan instalarse múltiples versiones simultáneamente.
Si el núcleo nuevo no arranca, el núcleo anterior sigue estando disponible. El uso de yum
update kernel producirá la instalación del kernel nuevo. Los archivos de configuración
contienen una lista de paquetes que siempre deben instalarse aunque el administrador solicite
una actualización.
236 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
nota
Use yum list kernel para detallar todos los núcleos instalados y disponibles.
Para ver el kernel en funcionamiento actualmente, use el comando uname. La
opción -r muestra solamente la versión y el lanzamiento del kernel, y la opción -a
muestra el lanzamiento e información adicional del kernel.
• yum remove PACKAGENAME elimina un paquete de software instalado junto con cualquier
paquete compatible.
Advertencia
El comando yum remove quita los paquetes enumerados y cualquier paquete que
requiere que se eliminen los paquetes (y los paquetes que requieren esos paquetes,
etc.). Esto puede dar lugar a una eliminación inesperada de paquetes, por lo que
debe verificar detenidamente la lista de paquetes que se quitarán.
• yum también representa el concepto de grupos, que son colecciones de software relacionados
e instalados en forma conjunta con un fin en particular. En Red Hat Enterprise Linux 8, hay dos
tipos de grupos. Los grupos regulares son colecciones de paquetes. Los grupos de entorno son
colecciones de grupos regulares. Los paquetes o grupos proporcionados por un grupo pueden
ser obligatorios (deben instalarse si el grupo se instala), predeterminados (normalmente
se instalan si el grupo se instala) u opcionales (no se instalan cuando se instala el grupo a
menos que se lo solicite específicamente).
Al igual que yum list, el comando yum group list muestra los nombres de grupos
instalados y disponibles.
RH199-RHEL8.2-es-1-20200928 237
capítulo 7 | Instalación y actualización de paquetes de software
• yum group info muestra información acerca de un grupo. Incluye una lista de nombres de
paquetes obligatorios, predeterminados u opcionales.
• yum group install instala un grupo que instala sus paquetes obligatorios y
predeterminados, y los paquetes de los que depende.
Transaction Summary
===============================================================================
Install 64 Packages
238 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Importante
El comportamiento de los grupos Yum cambió a partir de Red Hat Enterprise
Linux 7. En RHEL 7 y versiones posteriores, los grupos se tratan como objetos y
son rastreados por el sistema. Si un grupo instalado se actualiza y el repositorio
Yum ha agregado paquetes nuevos obligatorios o predeterminados al grupo, dichos
paquetes nuevos se instalan en la actualización.
RH199-RHEL8.2-es-1-20200928 239
capítulo 7 | Instalación y actualización de paquetes de software
Tarea: Comando:
Referencias
Páginas de manual yum(1) y yum.conf(5)
240 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Deberá ser capaz de instalar y eliminar paquetes con dependencias.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
3.2. Use el comando yum search para buscar paquetes que tienen guile como parte
de su nombre o resumen.
RH199-RHEL8.2-es-1-20200928 241
capítulo 7 | Instalación y actualización de paquetes de software
3.3. Use el comando yum info para obtener más información acerca del paquete guile.
Transaction Summary
===============================================================================
Install 4 Packages
5. Quite paquetes.
5.1. Use el comando yum remove para eliminar el paquete guile, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitarían?
242 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Removing:
guile x86_64 5:2.0.14-7.el8 @rhel-8.2-for-x86_64-appstream-rpms 12 M
Removing unused dependencies:
gc x86_64 7.6.4-3.el8 @rhel-8.2-for-x86_64-appstream-rpms 221 k
libatomic_ops x86_64 7.6.2-3.el8 @rhel-8.2-for-x86_64-appstream-rpms 75 k
libtool-ltdl x86_64 2.4.6-25.el8 @rhel-8.2-for-x86_64-baseos-rpms 69 k
Transaction Summary
===============================================================================
Remove 4 Packages
Freed space: 12 M
Is this ok [y/N]: n
Operation aborted.
5.2. Use el comando yum remove para eliminar el paquete gc, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitarían?
Transaction Summary
===============================================================================
Remove 4 Packages
Freed space: 12 M
Is this ok [y/N]: n
Operation aborted.
6.1. Use el comando yum group list para enumerar todos los grupos de componentes
disponibles.
6.2. Use el comando yum group info para obtener más información acerca del grupo
de componentes Herramientas de seguridad, incluida una lista de paquetes
incluidos.
RH199-RHEL8.2-es-1-20200928 243
capítulo 7 | Instalación y actualización de paquetes de software
6.3. Use el comando yum group install para instalar el grupo de componentes
Herramientas de seguridad.
Transaction Summary
===============================================================================
Install 6 Packages
Complete!
7.1. Use el comando yum history para mostrar el historial de yum reciente.
244 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
7.2. Use el comando yum history info para confirmar que la última transacción sea la
instalación del grupo. En el siguiente comando, reemplace el ID de transacción por el
que se menciona en el paso anterior.
7.3. Use el comando yum history undo para eliminar el conjunto de paquetes que
se instalaron cuando se instaló el paquete guile. En su sistema, busque el ID de
transacción correcto de la salida del comando yum history y, luego, use ese ID en
el siguiente comando.
Finalizar
En workstation, ejecute el script lab software-yum finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 245
capítulo 7 | Instalación y actualización de paquetes de software
246 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de habilitar y deshabilitar el uso de
repositorios Yum de Red Hat o de terceros por parte de un servidor.
El comando yum config-manager se puede usar para habilitar o deshabilitar los repositorios.
Para habilitar un repositorio, el comando establece el parámetro habilitado en 1. Por ejemplo,
el siguiente comando habilita el repositorio rhel-8-server-debug-rpms:
La fuentes que no son Red Hat proporcionan software a través de repositorios de terceros, a los
que se puede acceder mediante el comando yum desde un sitio web, servidor FTP o el sistema
de archivos local. Por ejemplo, Adobe proporciona parte de su software para Linux a través
de un repositorio Yum. En un aula Red Hat, el servidor del aula content.example.com aloja
repositorios Yum.
RH199-RHEL8.2-es-1-20200928 247
capítulo 7 | Instalación y actualización de paquetes de software
[dl.fedoraproject.org_pub_epel_8_Everything_x86_64_]
name=created by yum config-manager from https://dl.fedoraproject.org/pub/epel/8/
Everything/x86_64/
baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/
enabled=1
Modifique este archivo para proporcionar valores personalizados y la ubicación de una clave
GPG. Las claves se almacenan en diversas ubicaciones en el sitio del repositorio remoto, como,
http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8. Los administradores
deben descargar la clave en un archivo local en lugar de permitir que yum la recupere de una
fuente externa. Por ejemplo:
[EPEL]
name=EPEL 8
baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
El siguiente comando instala el paquete de repositorio de Red Hat Enterprise Linux 8 EPEL.
248 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
[epel-debuginfo]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/
$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-
$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-
$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1
Advertencia
Antes de instalar los paquetes firmados, instale la clave GPG de RPM. Esta acción
verifica que los paquetes pertenezcan a una clave que se haya importado. De lo
contrario, el comando yum el falla porque falta una clave. La opción --nogpgcheck
puede usarse para ignorar las claves GPG faltantes, pero esto podría provocar que
se instalen paquetes adulterados o dudosos en el sistema y que, posiblemente,
comprometan la seguridad.
RH199-RHEL8.2-es-1-20200928 249
capítulo 7 | Instalación y actualización de paquetes de software
Referencias
Páginas de manual yum(1), yum.conf(5) y yum-config-manager(1)
250 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar un sistema para obtener actualizaciones de software de un
servidor de aula y actualizar el sistema para usar los paquetes más recientes.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
RH199-RHEL8.2-es-1-20200928 251
capítulo 7 | Instalación y actualización de paquetes de software
[rht-updates]
name=rht updates
baseurl=http://content.example.com/rhel8.2/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
3.4. Use el comando yum repolist all para enumerar todos los repositorios en el
sistema:
252 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Is this ok [y/N]: y
...output omitted...
Installed:
rht-system-1.0.0-1.noarch
Complete!
4.3. Verifique que el paquete rht-system esté instalado y anote el número de versión del
paquete.
5.2. Use el comando yum update para actualizar todos los paquetes de software en
servera.
5.3. Verifique que el paquete rht-system esté actualizado y anote el número de versión
del paquete.
6. Salga de servera.
RH199-RHEL8.2-es-1-20200928 253
capítulo 7 | Instalación y actualización de paquetes de software
Finalizar
En workstation, ejecute el script lab software-repo finish para terminar este ejercicio.
Este script elimina todos los repositorios de software y paquetes instalados en servera durante
el ejercicio.
254 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
El contenido de Red Hat Enterprise Linux 8 se distribuye a través de dos repositorios de software
principales: BaseOS y Flujo de aplicaciones (AppStream).
BaseOS
El repositorio de BaseOS proporciona el contenido del sistema operativo central para Red Hat
Enterprise Linux como paquetes RPM. Los componentes de BaseOS tienen un ciclo de vida
idéntico al del contenido de versiones anteriores de Red Hat Enterprise Linux.
Flujo de aplicaciones
El repositorio de Flujo de aplicaciones proporciona contenido con distintos ciclos de vida como
módulos y paquetes tradicionales. El Flujo de aplicaciones contiene las partes necesarias del
sistema, así como una amplia gama de aplicaciones previamente disponibles como parte de Red
Hat Software Collections y otros productos y programas.
Importante
Tanto BaseOS como AppStream son una parte necesaria de un sistema
Red Hat Enterprise Linux 8.
El repositorio del Flujo de aplicaciones contiene dos tipos de contenido: Módulos y paquetes RPM
tradicionales. Un módulo describe un conjunto de paquetes RPM que están relacionados. Los
RH199-RHEL8.2-es-1-20200928 255
capítulo 7 | Instalación y actualización de paquetes de software
módulos pueden contener varios flujos para que haya varias versiones de aplicaciones disponibles
para la instalación. Al habilitar un flujo de módulos, el sistema tiene acceso a los paquetes RPM
dentro de ese flujo de módulos.
Módulos
Un módulo es un conjunto de paquetes RPM que son un conjunto consistente que están
relacionados. Normalmente, esto se organiza en torno a una versión específica de una aplicación
de software o lenguaje de programación. Un módulo típico puede contener paquetes con una
aplicación, paquetes con las bibliotecas de dependencia específica de la aplicación, paquetes con
documentación para la aplicación y paquetes con utilidades auxiliares.
Flujos de módulos
Cada módulo puede tener uno o más flujos de módulos, que contienen diferentes versiones del
contenido. Cada uno de los flujos recibe actualizaciones de forma independiente. Piense en el
flujo de módulos como un repositorio virtual en el repositorio físico del flujo de aplicaciones.
Para cada módulo, solo una de sus secuencias puede habilitarse y proporcionar sus paquetes.
Perfiles de módulos
Cada módulo puede tener uno o más perfiles. Un perfil es una lista de ciertos paquetes que se
deben instalar juntos para un determinado caso de uso por ejemplo, para un servidor, cliente,
desarrollo, instalación mínima u otro.
Para el manejo del contenido modular, se agregó el comando yum module. De otro modo, yum
funciona con módulos como lo hace con paquetes regulares.
Listado de módulos
Para visualizar una lista de módulos disponibles, use yum module list:
256 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
nota
Use Sugerencia al final de la salida para poder determinar qué flujos y perfiles
están habilitados, deshabilitados, instalados, así como cuáles son los valores
predeterminados.
Para mostrar una lista de los flujos de módulos para un módulo específico y recuperar su estado:
nota
Sin especificar un flujo de módulos, la información del módulo yum muestra
una lista de paquetes instalados de por el perfil predeterminado de un módulo que
usa el flujo predeterminado. Use el formato module-name:stream para ver un flujo
de módulos específico. Agregue la opción --profile para mostrar información
sobre los paquetes instalados por cada uno de los perfiles del módulo. Por ejemplo:
RH199-RHEL8.2-es-1-20200928 257
capítulo 7 | Instalación y actualización de paquetes de software
Importante
Solo se puede habilitar un flujo de módulos para un módulo dado. La habilitación de
un flujo de módulos adicional deshabilitará el flujo de módulos original.
nota
Los mismos resultados podrían haberse logrado ejecutando yum install@perl.
La notación @ informa a yum que el argumento es un nombre de módulo en lugar de
un nombre de paquete.
258 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Advertencia
Eliminar módulos y cambiar las secuencias de módulos puede ser un poco
complicado. Cambiar el flujo habilitado para un módulo es equivalente a restablecer
el flujo actual y habilitar el nuevo flujo. No cambia automáticamente los paquetes
instalados. Tiene que hacerlo manualmente.
Después de que se elimine el módulo, el flujo de módulos aún está habilitado. Para verificar que el
flujo del módulos todavía esté habilitado:
RH199-RHEL8.2-es-1-20200928 259
capítulo 7 | Instalación y actualización de paquetes de software
Para garantizar un interruptor limpio, debe eliminar primero los módulos proporcionados por la
secuencia del módulo. Eso eliminará todos los paquetes instalados por los perfiles del módulo, y
cualquier módulo o paquete en el que esos paquetes tengan dependencias.
Para listar los paquetes instalados desde el módulo, en el siguiente ejemplo está instalado el
módulo postgresql:9.6:
Elimine los paquetes enumerados en el comando anterior. Marque los perfiles del módulo que se
desinstalará.
Después de quitar los perfiles del módulo, reinicie la secuencia del módulo. Use el comando yum
module reset para restablecer el flujo del módulo.
260 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Transaction Summary
=================================================================
Is this ok [y/N]: y
Complete!
Se habilitará el nuevo flujo de módulos y se deshabilitará el flujo actual. Puede ser necesario
actualizar o degradar los paquetes del flujo de módulos anterior que no se enumeran en el nuevo
perfil. Use yum distro-sync para realizar esta tarea si es necesario. También puede haber
paquetes que permanezcan instalados desde el flujo de módulos anterior. Elimínelos con yum
remove.
Referencias
Para obtener más información, consulte el capítulo Uso de AppStream en la Guía
Instalación, administración y eliminación de componentes de espacio de usuario de
Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-
single/installing_managing_and_removing_user-space_components/index#using-
appstream_using-appstream
Modularidad
https://docs.fedoraproject.org/en-US/modularity/
RH199-RHEL8.2-es-1-20200928 261
capítulo 7 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
3. Enumere los módulos disponibles, flujos y módulos instalados. Examine la información para
el módulo python36.
3.1. Use el comando yum module list para enumerar los módulos y los flujos
disponibles.
262 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
3.2. Use el comando yum module list --installed para enumerar los módulos y
las flujos instalados.
3.3. Use el comando yum module info para examinar los detalles del módulo
python36.
4. Instale el módulo python36 desde el flujo 3.6 y el perfil común. Verifique el estado actual
del módulo.
4.1. Use el comando yum module install para instalar el módulo python36. Use la
sintaxis name:stream/profile para instalar el módulo python36 desde el flujo 3.6
y el perfil común.
nota
Puede omitir /profile para usar el perfil predeterminado y :stream para usar el
flujo predeterminado.
RH199-RHEL8.2-es-1-20200928 263
capítulo 7 | Instalación y actualización de paquetes de software
5. Cambie el módulo postgresql del perfil servidor para usar el flujo 10.
5.1. Use el comando yum module list para enumerar el módulo postgresql y el flujo.
Tenga en cuenta que el flujo del módulo postgresql:9.6 está instalado actualmente.
5.2. Elimine y deshabilite el flujo del módulo postgresql junto con todos los paquetes
instalados por el perfil.
264 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Transaction Summary
=================================================================
Is this ok [y/N]: y
Complete!
5.4. Use el comando yum module install para cambiar al flujo del módulo
postgresql:10.
6. Elimine y deshabilite el flujo del módulo postgresql junto con todos los paquetes instalados
por el perfil.
6.1. Use el comando yum module remove para eliminar el módulo postgresql. El
comando también elimina todos los paquetes instalados desde este módulo.
RH199-RHEL8.2-es-1-20200928 265
capítulo 7 | Instalación y actualización de paquetes de software
7. Salga de servera.
Finalizar
En workstation, ejecute el script lab software-module finish para terminar este
ejercicio. Este script elimina todos los módulos instalados en servera durante el ejercicio.
266 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab software-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
RH199-RHEL8.2-es-1-20200928 267
capítulo 7 | Instalación y actualización de paquetes de software
Finalizar
En workstation, ejecute el script lab software-review finish para terminar este
ejercicio. Este script elimina el repositorio y los paquetes creados durante este ejercicio.
268 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. En workstation, use el comando ssh para iniciar sesión en serverb con el usuario
student.
RH199-RHEL8.2-es-1-20200928 269
capítulo 7 | Instalación y actualización de paquetes de software
[errata]
name=Red Hat Updates
baseurl=http://content.example.com/rhel8.2/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
2. En serverb, instale el nuevo paquete xsane-gimp y el módulo Servidor HTTP Apache del
flujo 2.4 y el perfil común.
2.1. Use el comando yum list para enumerar los paquetes disponibles para xsane-gimp.
2.2. Instale la última versión del paquete xsane-gimp paquete con el comando yum
install.
2.3. Enumere los módulos y flujos disponibles. Busque el módulo httpd. Use el comando
yum install para instalar el módulo httpd con el flujo 2.4 y el perfil común.
3. Por razones de seguridad, serverb no deberá ser capaz de enviar nada para imprimir. Logre
esto mediante la eliminación del paquete cups. Salga de la cuenta root.
3.1. Use el comando yum list para mostrar el paquete cups instalado.
270 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Freed space: 11 M
Is this ok [y/N]: y
...output omitted...
Complete!
4.1. Use el comando rpm para confirmar que el paquete rhcsa-script-1.0.0-1.noarch.rpm está
disponible en serverb al ver la información del paquete.
RH199-RHEL8.2-es-1-20200928 271
capítulo 7 | Instalación y actualización de paquetes de software
4.2. Use el comando sudo yum localinstall para instalar el paquete rhcsa-
script-1.0.0-1.noarch.rpm. La contraseña es student.
Transaction Summary
===================================================================
Install 1 Package
Installed:
rhcsa-script-1.0.0-1.noarch
Complete!
4.3. Use el comando rpm para verificar que el paquete esté instalado.
272 RH199-RHEL8.2-es-1-20200928
capítulo 7 | Instalación y actualización de paquetes de software
Evaluación
En workstation, ejecute el script lab software-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab software-review finish para terminar este
ejercicio. Este script elimina el repositorio y los paquetes creados durante este ejercicio.
RH199-RHEL8.2-es-1-20200928 273
capítulo 7 | Instalación y actualización de paquetes de software
Resumen
En este capítulo, aprendió lo siguiente:
• La administración de suscripciones de Red Hat proporciona herramientas para que los equipos
tengan derecho a suscripciones de productos, obtengan actualizaciones de paquetes de
software y busquen información sobre contratos de soporte y suscripciones usadas por sus
sistemas.
• El comando rpm se puede usar para consultar una base de datos local para proporcionar
información sobre el contenido de los paquetes instalados e instalar archivos de paquetes
descargados.
• yum es una herramienta eficaz de la línea de comandos que puede usarse para instalar,
actualizar, eliminar y consultar los paquetes de software.
• Red Hat Enterprise Linux 8 usa flujos de aplicaciones para proporcionar un solo repositorio que
aloje varias versiones del paquete de una aplicación y sus dependencias.
274 RH199-RHEL8.2-es-1-20200928
capítulo 8
Administración de
almacenamiento básico
Meta Crear y administrar dispositivos de
almacenamiento, particiones, sistemas de archivos
y espacios de intercambio desde la línea de
comandos.
RH199-RHEL8.2-es-1-20200928 275
capítulo 8 | Administración de almacenamiento básico
Objetivos
Tras finalizar esta sección, deberá ser capaz de acceder al contenido de sistemas de archivos
mediante la adición y la eliminación de sistemas de archivos de la jerarquía de sistemas de
archivos.
Hay dos formas comunes de especificar el sistema de archivos en una partición de disco para el
comando mount:
• Con el nombre del archivo del dispositivo en /dev que contiene el sistema de archivos.
• Con el UUID escrito en el sistema de archivos, un identificador universalmente único.
Use el comando lsblk para enumerar los detalles de un dispositivo de bloque especificado o
todos los dispositivos disponibles.
276 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Para montar un sistema de archivos, ya debe existir el directorio de destino. El directorio /mnt
existe de forma predeterminada y está destinado a ser usado como punto de montaje temporal.
Puedes usar el directorio /mnt, o mejor aún crear un subdirectorio de /mnt para usar como
punto de montaje temporal, a menos que tenga una buena razón para montarlo en una ubicación
específica en la jerarquía de sistemas de archivos.
Importante
Si el directorio que funciona como punto de montaje no está vacío, no se puede
acceder a los archivos copiados en ese directorio antes de que el sistema de
archivos se montara hasta que el sistema de archivos se desmonte nuevamente.
Este enfoque funciona bien a corto plazo. Sin embargo, el orden en que el sistema operativo
detecta discos puede cambiar si se agregan o eliminan dispositivos del sistema. Esto cambiará el
nombre del dispositivo asociado con ese dispositivo de almacenamiento. Un mejor enfoque sería
montar por alguna característica incorporada en el sistema de archivos.
El comando lsblk -fp detalla la ruta completa del dispositivo, junto con los UUID y los puntos
de montajes, así como el tipo de sistema de archivos en la partición. Si el sistema de archivos no
está montado, el punto de montaje estará en blanco.
RH199-RHEL8.2-es-1-20200928 277
capítulo 8 | Administración de almacenamiento básico
Advertencia
Los datos del sistema de archivos son a menudo almacenados en la memoria caché.
Por lo tanto, para evitar dañar los datos en el disco, es esencial que desmonte las
unidades extraíbles antes de desenchufarlas. El procedimiento de desmontaje
sincroniza los datos antes de liberar la unidad, lo que garantiza la integridad de los
datos.
Para desmontar un sistema de archivos, el comando umount espera el punto de montaje como
argumento.
No se puede desmontar si el sistema de archivos montado está en uso. Para que el comando
umount se ejecute correctamente, todos los procesos deben dejar de acceder a los datos en el
punto de montaje.
En el siguiente ejemplo, el umount falla porque el sistema de archivos está en uso (la shell está
usando /mnt/data como su directorio de trabajo actual), y genera un mensaje de error.
El comando lsof enumera todos los archivos abiertos y el proceso que accede a ellos en el
directorio proporcionado. Resulta útil identificar los procesos que actualmente impiden un
correcto desmontaje del sistema de archivos.
Una vez que se identifican los procesos, puede tomarse una medida, como esperar a que finalice
el proceso o enviar una señal SIGTERM o SIGKILL al proceso. En este caso, basta con cambiar el
directorio en funcionamiento actual por un directorio fuera del punto de montaje.
[root@host data]# cd
[root@host ~]# umount /mnt/data
278 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
nota
Una razón común para que los sistemas de archivos no puedan desmontarse es que
una shell Bash está usando el punto de montaje o un subdirectorio como directorio
de trabajo actual. Use el comando cd para cambiar el sistema de archivos para
resolver este problema.
Referencias
Páginas de manual lsblk(8), mount(8), umount(8) y lsof(8)
RH199-RHEL8.2-es-1-20200928 279
capítulo 8 | Administración de almacenamiento básico
Ejercicio Guiado
Resultados
El usuario deberá identificar y montar un nuevo sistema de archivos en un punto de montaje
especificado; luego, desmontarlo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Se ha agregado una nueva partición con un sistema de archivos al segundo disco (/dev/
vdb) en servera. Monte la partición disponible recientemente mediante UUID en el punto
de montaje creado recientemente /mnt/newspace.
2.1. Use el comando sudo -i para cambiar a root, ya que solo el usuario root puede
montar un dispositivo manualmente.
2.3. Use el comando lsblk con la opción -fp para descubrir el UUID del dispositivo, /
dev/vdb1.
280 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
2.4. Monte el sistema de archivos mediante el uso del UUID en el directorio /mnt/
newspace. Reemplace el UUID con el del disco /dev/vdb1 de la salida del comando
anterior.
[root@servera newspace]# cd
[root@servera ~]#
RH199-RHEL8.2-es-1-20200928 281
capítulo 8 | Administración de almacenamiento básico
5. Salga de servera.
Finalizar
En workstation, ejecute el script lab fs-mount finish para terminar este ejercicio.
282 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Objetivos
Tras completar esta sección, debería ser capaz de crear particiones de almacenamiento,
formatearlas con sistemas de archivos y montarlas para su uso.
Partición de un disco
La partición de discos permite a los administradores de sistemas dividir un disco duro en varias
unidades de almacenamiento lógico denominadas particiones. Al separar un disco en particiones,
los administradores de sistemas pueden usar diferentes particiones para realizar diferentes
funciones.
Dado que los discos físicos son cada vez más grandes, y volúmenes basados en SAN aún más
grandes, el límite de tamaño de la partición y del disco de 2 TiB del esquema de partición MBR
ya no es un límite teórico, sino más bien un problema del mundo real que los administradores
de sistemas encuentran cada vez más frecuentemente en los entornos de producción. Como
consecuencia, el esquema MBR heredado está en proceso de ser sustituido por el nuevo esquema
GUID Partition Table (GPT) para la partición de disco.
RH199-RHEL8.2-es-1-20200928 283
capítulo 8 | Administración de almacenamiento básico
Un GPT proporciona un máximo de 128 particiones. A diferencia de MBR, que usa 32 bits para
almacenar información de tamaño y direcciones en bloques lógicos, un GPT asigna 64 bits para
direcciones en bloques lógicos. Esto permite que GPT incluya particiones y discos de hasta ocho
zebibyte (ZiB), u 8 mil millones de tebibytes.
Además de abordar las limitaciones del esquema de partición MBR, GPT también ofrece algunas
funciones y beneficios adicionales. Un GPT usa un identificador único global (GUID) para
identificar cada disco y partición. En contraste con MBR, que tiene un único punto de error,
GPT ofrece redundancia de la información de su tabla de particiones. El GPT primario reside
en el cabezal del disco, mientras que una copia de seguridad, el GPT secundario, se aloja en el
extremo del disco. GPT usa la suma de comprobación para detectar errores y daños en la tabla de
particiones y el encabezado de GPT.
El comando parted toma el nombre del dispositivo de todo el disco como primer argumento y
uno o más subcomandos. En el siguiente ejemplo, se usa el subcomando print para visualizar la
tabla de particiones en el disco /dev/vda.
Si no proporciona un subcomando, parted abre una sesión interactiva para emitir comandos.
284 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
(parted) quit
[root@host ~]#
De forma predeterminada, parted muestra todos los tamaños en potencias de 10 (KB, MB, GB).
Puede cambiar ese valor predeterminado con el subcomando unit que acepta los siguientes
parámetros:
• s para sector
• B para byte
Como se muestra en el ejemplo anterior, también puede especificar varios subcomandos (aquí,
unit y print) en la misma línea.
Advertencia
Tenga en cuenta} que parted realiza los cambios de inmediato. Un error con
parted podría provocar la pérdida de datos.
Como el usuario root, use el siguiente comando para escribir una etiqueta de disco MBR en un
disco.
RH199-RHEL8.2-es-1-20200928 285
capítulo 8 | Administración de almacenamiento básico
Advertencia
El subcomando mklabel borra la tabla de particiones existente. Solo use mklabel
cuando la intención sea volver a usar el disco sin tener en cuenta los datos
existentes. Si una nueva etiqueta cambia los límites de la partición, todos los datos
en los sistemas de archivos existentes serán inaccesibles.
Como usuario root, ejecute el comando parted y especifique el nombre del dispositivo de
disco como un argumento. Esto inicia el comando parted en modo interactivo, y muestra un
prompt de comando.
2. Use el subcomando mkpart para crear una nueva partición primaria o ampliada.
(parted) mkpart
Partition type? primary/extended? primary
nota
En el caso de situaciones donde se necesitan más de cuatro particiones en un disco
particionado con MBR, cree tres particiones primarias y una partición ampliada. Esta
partición ampliada sirve como contenedor dentro del cual se pueden crear varias
particiones lógicas.
3. Indique el tipo de sistema de archivos que desea crear en la partición, como xfs o ext4. Esto
no crea el sistema de archivos en la partición; es solo una indicación del tipo de partición.
Para obtener la lista de los tipos de sistemas de archivos admitidos, use el siguiente comando:
286 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Start? 2048s
Observe el sufijo s para proporcionar el valor en sectores. También puede usar los sufijos
MiB, GiB, TiB, MB, GB o TB. Si no proporciona un sufijo, MB es el predeterminado. parted
puede redondear el valor que proporcione para satisfacer las restricciones de disco.
Cuando parted comienza, recupera la topología del disco del dispositivo. Por ejemplo, el
tamaño del bloque físico del disco suele ser un parámetro que recopila parted. Con esa
información, parted asegura que la posición de inicio que proporcione alinea correctamente
la partición con la estructura del disco. La alineación correcta de la partición es importante
para un rendimiento óptimo. Si la posición de inicio genera una partición desalineada, parted
muestra una advertencia. Con la mayoría de los discos, un sector de inicio que es un múltiplo
de 2048 es una suposición segura.
End? 1000MB
Tan pronto como usted proporcione la posición final, parted actualiza la tabla de particiones
en el disco con los detalles de la nueva partición.
6. Salga de parted.
(parted) quit
Information: You may need to update /etc/fstab.
[root@host ~]#
7. Ejecute el comando udevadm settle. Este comando espera a que el sistema detecte la
nueva partición y cree el archivo de dispositivo asociado en el directorio /dev. Sólo regresa
cuando finaliza.
RH199-RHEL8.2-es-1-20200928 287
capítulo 8 | Administración de almacenamiento básico
Como alternativa al modo interactivo, también puede crear la partición de la siguiente manera:
Como el usuario root, ejecute el comando parted con el dispositivo de disco como único
argumento para iniciar parted en modo interactivo con un prompt del sistema.
(parted) mkpart
Partition name? []? usersdata
3. Indique el tipo de sistema de archivos que desea crear en la partición, como xfs o ext4. Esto
no crea el sistema de archivos en la partición; es solo una indicación del tipo de partición.
Start? 2048s
End? 1000MB
Tan pronto como usted proporcione la posición final, parted actualiza la tabla de particiones
en el disco con los detalles de la nueva partición.
6. Salga de parted.
(parted) quit
Information: You may need to update /etc/fstab.
[root@host ~]#
7. Ejecute el comando udevadm settle. Este comando espera a que el sistema detecte la
nueva partición y cree el archivo de dispositivo asociado en el directorio /dev. Sólo regresa
cuando finaliza.
288 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Como alternativa al modo interactivo, también puede crear la partición de la siguiente manera:
Eliminación de particiones
Los siguientes pasos se aplican a los esquemas de partición MBR y GPT.
Como el usuario root, ejecute el comando parted con el dispositivo de disco como único
argumento para iniciar parted en modo interactivo con un prompt del sistema.
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
3. Elimine la partición.
(parted) rm 1
4. Salga de parted.
(parted) quit
Information: You may need to update /etc/fstab.
[root@host ~]#
RH199-RHEL8.2-es-1-20200928 289
capítulo 8 | Administración de almacenamiento básico
dos tipos comunes son XFS y ext4. Anaconda, el instalador para Red Hat Enterprise Linux, usa
XFS de forma predeterminada.
Como el usuario root, use el comando mkfs.xfs para aplicar un sistema de archivos XFS a un
dispositivo de bloque. Para ext4, use mkfs.ext4 .
También puede usar el comando mount para ver los sistemas de archivos montados actualmente,
los puntos de montaje y las opciones.
/etc/fstab es un archivo delimitado por espacios en blanco con seis campos por línea.
290 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
#
# /etc/fstab
# Created by anaconda on Wed Feb 13 16:39:59 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=a8063676-44dd-409a-b584-68be2c9f5570 / xfs defaults 0 0
UUID=7a20315d-ed8b-4e75-a5b6-24ff9e1f9838 /dbdata xfs defaults 0 0
El primer campo especifica el dispositivo. En este ejemplo, se usa el UUID para especificar el
dispositivo. Los sistemas de archivos crean y almacenan el UUID en su superbloque en el momento
de la creación. O puede usar el archivo del dispositivo, como /dev/vdb1.
nota
Es preferible usar el UUID porque los identificadores del dispositivo de bloques
pueden cambiar en determinadas situaciones, como en el caso de que un proveedor
de la nube cambie la capa de almacenamiento subyacente de una máquina virtual,
o que los discos se detecten en un orden diferente con cada arranque del sistema.
El nombre del archivo del dispositivo de bloque puede cambiar, pero el UUID
permanece constante en el superbloque del sistema de archivos.
Use el comando lsblk --fs para escanear los dispositivos de bloque conectados
a una máquina y recuperar los UUID del sistema de archivos.
El segundo campo es el punto de montaje del directorio, desde el cual se podrá acceder al
dispositivo de bloque en la estructura del directorio. El punto de montaje debe existir; de lo
contrario, créelo con el comando mkdir.
El tercer campo contiene el tipo del sistema de archivos, como xfs o ext4.
RH199-RHEL8.2-es-1-20200928 291
capítulo 8 | Administración de almacenamiento básico
El cuarto campo es la lista de opciones separada por comas para aplicar al dispositivo. defaults
es un conjunto de opciones que se usan comúnmente. La página del manual mount(8) documenta
las otras opciones disponibles.
El quinto campo es usado por el comando dump para hacer una copia de seguridad del dispositivo.
Otras aplicaciones de copia de seguridad no suelen usar este campo.
El último campo, el campo de orden de fsck, determina si debería ejecutarse el comando fsck en
el arranque del sistema para verificar que los sistemas de archivos estén limpios. El valor en este
campo indica el orden en el que debe ejecutarse fsck. Para sistemas de archivos XFS, establezca
este campo en 0 porque XFS no usa fsck para comprobar el estado de su sistema de archivos.
Para sistemas de archivos ext4, configúrelo en 1 para el sistema de archivos raíz y en 2 para los
otros sistemas de archivos ext4. De esta manera, fsck primero procesa el sistema de archivos raíz
y, luego, verifica los sistemas de archivos en discos separados al mismo tiempo, y los sistemas de
archivos en el mismo disco en secuencia.
nota
Si hay una entrada incorrecta en /etc/fstab, es posible que la máquina no pueda
volver a arrancarse. Los administradores deben comprobar que la entrada sea válida
al desmontar el sistema de archivos nuevo y usar mount /mountpoint, que lee /
etc/fstab, para montar el sistema de archivos nuevamente. Si el comando mount
arroja un error, corríjalo antes de volver a arrancar la máquina.
Referencias
info parted( Manual de usuario de GNU Parted )
292 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Ejercicio Guiado
Resultados
Debería ser capaz de usar parted, mkfs.xfs y otros comandos para crear una partición en
un disco nuevo, formatearla y montarla de manera persistente.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student
como la contraseña.
3. Use parted para crear una nueva etiqueta de disco de tipo msdos en el disco /dev/vdb
para preparar ese nuevo disco para el esquema de partición MBR.
RH199-RHEL8.2-es-1-20200928 293
capítulo 8 | Administración de almacenamiento básico
4. Agregue una nueva partición primaria que tenga un tamaño de 1 GiB. Para una correcta
alineación, inicie la partición en el sector 2048. Establezca el tipo de sistema de archivo de
la partición en XFS.
4.3. Ejecute el comando udevadm settle. Este comando espera a que el sistema
registre la nueva partición y regresa cuando finaliza.
294 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
6.1. Use mkdir para crear el punto de montaje del directorio /archive.
6.2. Use el comando lsblk con la opción --fs para descubrir el UUID del dispositivo /
dev/vdb1.
...output omitted...
UUID=e3db1abe-6d96-4faa-a213-b96a6f85dcc1 /archive xfs defaults 0 0
6.5. Ejecute el comando mount /archive para montar el sistema de archivos nuevo
usando la nueva entrada agregada a /etc/fstab.
7. Reinicie servera. Después de reiniciar el servidor, inicie sesión y verifique que /dev/vdb1
se monte en /archive. Cuando finalice, cierre sesión en servera.
7.2. Espere unos minutos a que se reinicie servera e inicie sesión como el usuario
student.
RH199-RHEL8.2-es-1-20200928 295
capítulo 8 | Administración de almacenamiento básico
Finalizar
En workstation, ejecute el script lab storage-partitions finish para terminar este
ejercicio.
296 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Administración de espacio de
intercambio
Objetivos
Tras completar esta sección, debería ser capaz de crear y administrar espacios de intercambio
para complementar la memoria física.
Dado que las áreas de intercambio residen en el disco, el intercambio es lento cuando se lo
compara con la memoria RAM. Si bien se usa para aumentar la memoria RAM del sistema, no debe
considerar el espacio de intercambio como una solución sostenible para una RAM insuficiente para
su carga de trabajo.
2 GiB o menos Dos veces la memoria RAM Tres veces la memoria RAM
Entre 2 GiB y 8 GiB Igual que la memoria RAM Dos veces la memoria RAM
RH199-RHEL8.2-es-1-20200928 297
capítulo 8 | Administración de almacenamiento básico
(parted) mkpart
Partition name? []? swap1
File system type? [ext2]? linux-swap
Start? 1001MB
End? 1257MB
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
(parted) quit
298 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
[root@host ~]#
Después de crear la partición, ejecute el comando udevadm settle. Este comando espera
que el sistema detecte la nueva partición y cree el archivo de dispositivo asociado en /dev. Sólo
regresa cuando finaliza.
Use swapon con el dispositivo como parámetro, o use swapon -a para activar todos los espacios
de intercambio detallados en el archivo /etc/fstab. Use los comandos swapon --show y free
para inspeccionar los espacios de intercambio disponibles.
RH199-RHEL8.2-es-1-20200928 299
capítulo 8 | Administración de almacenamiento básico
El ejemplo anterior usa el UUID como el primer campo. Cuando formatea el dispositivo, el
comando mkswap muestra ese UUID. Si perdió la salida de mkswap, use el comando lsblk --fs.
Como alternativa, también puede usar el nombre del dispositivo en el primer campo.
El segundo campo se reserva típicamente para el punto de montaje. Sin embargo, para
dispositivos de intercambio, que no son accesibles a través de la estructura del directorio, este
campo toma el valor del marcador de posición swap. La página de manual fstab(5) usa un valor
de marcador de posición none; sin embargo, el uso de un valor swap permite mensajes de error
más informativos en el caso de que algo salga mal.
El tercer campo es el tipo de sistema de archivos. El tipo de sistemas de archivos para un espacio
de intercambio es swap.
El cuarto campo es para opciones. El ejemplo usa la opción defaults. La opción defaults
incluye la opción de montaje auto, que significa activar el espacio de intercambio
automáticamente en el arranque del sistema.
Los dos campos finales son el indicador dump y el orden fsck. Los espacios de intercambio no
requieren copias de seguridad ni revisión del sistema de archivos y por lo tanto, estos campos
deben establecerse en cero.
Para establecer la prioridad, use la opción pri en /etc/fstab. El kernel usa el espacio de
intercambio con la prioridad más alta primero. La prioridad predeterminada es -2.
Cuando los espacios de intercambio tienen la misma prioridad, el kernel los escribe con el método
Round-Robin.
300 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Referencias
Páginas del manual mkswap(8), swapon(8), swapoff(8), mount(8) y parted(8)
RH199-RHEL8.2-es-1-20200928 301
capítulo 8 | Administración de almacenamiento básico
Ejercicio Guiado
Administración de espacio de
intercambio
En este ejercicio, creará y formateará una partición para usar como espacio de intercambio,
la formateará como intercambio y la activará de forma persistente.
Resultados
Deberá ser capaz de crear una partición y un espacio de intercambio en un disco con el
esquema de partición GPT.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student
como la contraseña.
302 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Observe que el disco ya tiene una tabla de particiones y usa el esquema de partición GPT.
Además, ya existe una partición de 1 GB.
4. Agregue una nueva partición con un tamaño de 500 MB para usar como espacio de
intercambio. Establezca el tipo de partición en linux-swap.
4.1. Use parted para crear la partición. Dado que el disco usa el esquema de partición
GPT, debe asignarle un nombre a la partición. Asígnele el nombre myswap.
4.3. Ejecute el comando udevadm settle. Este comando espera a que el sistema
registre la nueva partición y regresa cuando finaliza.
6.1. Use el comando swapon --show para mostrar que la creación e inicialización del
espacio de intercambio no lo habilita aún para su uso.
RH199-RHEL8.2-es-1-20200928 303
capítulo 8 | Administración de almacenamiento básico
6.3. Verifique que el espacio de intercambio creado recientemente ahora esté disponible.
7. Configure el nuevo espacio de intercambio para que esté habilitado en el arranque del
sistema.
7.1. Use el comando lsblk con la opción --fs para descubrir el UUID del dispositivo /
dev/vdb2.
...output omitted...
UUID=cb7f71ca-ee82-430e-ad4b-7dda12632328 swap swap defaults 0 0
7.4. Habilite el espacio de intercambio con la nueva entrada recién agregada a /etc/
fstab.
304 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
8. Reinicie servera. Después de reiniciar el servidor, inicie sesión y verifique que el espacio
de intercambio esté habilitado. Cuando finalice, cierre sesión en servera.
8.2. Espere unos minutos a que se reinicie servera e inicie sesión como el usuario
student.
Finalizar
En workstation, ejecute el script lab storage-swap finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 305
capítulo 8 | Administración de almacenamiento básico
Trabajo de laboratorio
Administración de almacenamiento
básico
Lista de verificación de rendimiento
En este trabajo de laboratorio, creará varias particiones en un disco nuevo, formateará
algunas con sistemas de archivos y las montará, y activará otras como espacios de
intercambio.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Hay nuevos discos disponibles en serverb. En el primer disco nuevo, cree una partición
GPT de 2 GB denominada copia de seguridad. Dado que puede ser difícil establecer el
tamaño exacto, un tamaño entre 1,8 GB y 2,2 GB es aceptable. Establezca el tipo de sistema
de archivos correcto en esa partición para alojar un sistema de archivos XFS.
La contraseña para la cuenta de usuario student en serverb es student. Este usuario
tiene acceso completo root a través de sudo.
2. Formatee la partición de 2 GB con un sistema de archivos XFS y móntelo de manera
persistente en /backup.
3. En el mismo disco nuevo, cree dos particiones GPT de 512 MB denominadas swap1 y swap2.
Un tamaño entre 460 MB y 564 MB es aceptable. Establezca el tipo de sistema de archivos
correcto en esas particiones para alojar espacios de intercambio.
4. Inicialice las dos particiones de 512 MiB como espacios de intercambio y configúrelas para
que se activen en el arranque. Establezca el espacio de intercambio en la partición swap2
para que se prefiera sobre el otro.
5. Para verificar su trabajo, reinicie serverb. Confirme que el sistema monta automáticamente
la primera partición en /backup. Además, confirme que el sistema activa los dos espacios de
intercambio.
Cuando finalice, cierre sesión en serverb.
306 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
Evaluación
En workstation, ejecute el script lab storage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab storage-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 307
capítulo 8 | Administración de almacenamiento básico
Solución
Administración de almacenamiento
básico
Lista de verificación de rendimiento
En este trabajo de laboratorio, creará varias particiones en un disco nuevo, formateará
algunas con sistemas de archivos y las montará, y activará otras como espacios de
intercambio.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Hay nuevos discos disponibles en serverb. En el primer disco nuevo, cree una partición
GPT de 2 GB denominada copia de seguridad. Dado que puede ser difícil establecer el
tamaño exacto, un tamaño entre 1,8 GB y 2,2 GB es aceptable. Establezca el tipo de sistema
de archivos correcto en esa partición para alojar un sistema de archivos XFS.
La contraseña para la cuenta de usuario student en serverb es student. Este usuario
tiene acceso completo root a través de sudo.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
1.2. Dado que crear particiones y sistemas de archivos requiere acceso root, use el
comando sudo -i para cambiar al usuario root. Si se le solicita, use student como
la contraseña.
308 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
1.3. Use el comando lsblk para identificar los nuevos discos. Esos discos no deberían
tener particiones todavía.
1.5. Use parted y el subcomando mklabel para definir el esquema de partición GPT.
RH199-RHEL8.2-es-1-20200928 309
capítulo 8 | Administración de almacenamiento básico
1.8. Ejecute el comando udevadm settle. Este comando espera que el sistema detecte
la nueva partición y cree el archivo de dispositivo /dev/vdb1. Sólo regresa cuando
finaliza.
2.6. Monte manualmente /backup para verificar su trabajo. Confirme que el montaje es
correcto.
310 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
3. En el mismo disco nuevo, cree dos particiones GPT de 512 MB denominadas swap1 y swap2.
Un tamaño entre 460 MB y 564 MB es aceptable. Establezca el tipo de sistema de archivos
correcto en esas particiones para alojar espacios de intercambio.
3.2. Cree la primera partición de 512 MB denominada swap1. Establezca su tipo en linux-
swap. Use la posición final de la primera partición como punto de partida. La posición
final es 2000 MB + 512 MB = 2512 MB
RH199-RHEL8.2-es-1-20200928 311
capítulo 8 | Administración de almacenamiento básico
3.5. Ejecute el comando udevadm settle. Este comando espera que el sistema registre
las nuevas particiones y cree los archivos de dispositivo.
4. Inicialice las dos particiones de 512 MiB como espacios de intercambio y configúrelas para
que se activen en el arranque. Establezca el espacio de intercambio en la partición swap2
para que se prefiera sobre el otro.
Tome nota de los UUID de los dos espacios de intercambio. Usará esa información en el
siguiente paso. Si ya no puede ver la salida mkswap, use el comando lsblk --fs para
recuperar los UUID.
4.2. Edite /etc/fstab y defina los nuevos espacios de intercambio. Para configurar
el espacio de intercambio en la partición swap2 para ser preferido sobre swap1,
otórguele una mayor prioridad con la opción pri.
4.4. Use el comando swapon -a para activar los nuevos espacios de intercambio. Use el
comando swapon --show para confirmar la correcta activación de los espacios de
intercambio.
5. Para verificar su trabajo, reinicie serverb. Confirme que el sistema monta automáticamente
la primera partición en /backup. Además, confirme que el sistema activa los dos espacios de
intercambio.
Cuando finalice, cierre sesión en serverb.
312 RH199-RHEL8.2-es-1-20200928
capítulo 8 | Administración de almacenamiento básico
5.2. Espere unos minutos a que se reinicie serverb e inicie sesión como el usuario
student.
5.4. Use el comando swapon --show para confirmar que el sistema activa ambos
espacios de intercambio.
Evaluación
En workstation, ejecute el script lab storage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab storage-review finish para terminar el trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 313
capítulo 8 | Administración de almacenamiento básico
Resumen
En este capítulo, aprendió lo siguiente:
• El comando mount permite que el usuario root monte manualmente un sistema de archivos.
• parted se puede usar para agregar, modificar y eliminar particiones en discos con esquemas de
particionamiento MBR o GPT.
• Para que los montajes de sistemas de archivos sean persistentes, se deben agregar a /etc/
fstab.
314 RH199-RHEL8.2-es-1-20200928
capítulo 9
RH199-RHEL8.2-es-1-20200928 315
capítulo 9 | Control de servicios y del proceso de arranque
Objetivos
Tras finalizar esta sección, deberá ser capaz de enumerar los daemons del sistema y los servicios
de red iniciados por el servicio systemd y las unidades socket.
Introducción a systemd
El daemon de systemd administra el inicio para Linux, incluido el inicio del servicio y la gestión de
servicios en general. Activa los recursos del sistema, los daemons del servidor y otros procesos,
tanto en el momento del arranque como en un sistema que está en funcionamiento.
Los daemons son procesos que esperan o se ejecutan en segundo plano y realizan diversas tareas.
Generalmente, los daemons se inician automáticamente en el momento del arranque y continúan
ejecutándose hasta que se apaga el sistema o son detenidos manualmente. Por convención, los
nombres de muchos programas daemon finalizan con la letra d.
A menudo, un servicio en el contexto de systemd hace referencia a uno o más daemons, pero
iniciar o detener un servicio puede, en cambio, hacer una modificación por única vez en el estado
del sistema, que no implica dejar un proceso daemon en ejecución después de esto (que se
denomina oneshot).
En Red Hat Enterprise Linux, el primer proceso que se inicia (PID 1) es systemd. Estas son algunas
de las funciones que proporciona systemd:
• Gestión automática de dependencias del servicio, que puede evitar largos tiempos de espera.
Por ejemplo, un servicio que depende de una red no intentará iniciarse hasta que la red esté
disponible.
• Método para realizar el seguimiento de los procesos relacionados en forma conjunta con el uso
de los grupos de control de Linux.
• Las unidades de servicio tienen una extensión .service y representan servicios del sistema.
Este tipo de unidad se usa para iniciar los daemons usados con más frecuencia, como un
servidor web.
• Las unidades socket tienen una extensión .socket y representan sockets de comunicación
entre procesos (IPC) que systemd debe monitorear. Si un cliente se conecta al socket,
systemd iniciará un daemon y le pasará la conexión. Las unidades socket se usan para demorar
el inicio de un servicio en el momento del arranque y para iniciar servicios usados con menos
frecuencia a pedido.
316 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
• Las unidades de ruta tienen una extensión .path y se usan para demorar la activación de un
servicio hasta que ocurra un cambio en el sistema de archivos específico. Esto se usa con más
frecuencia en servicios que usan directorios de cola, como los sistemas de impresión.
El comando systemctl se usa para gestionar unidades. Por ejemplo, el comando systemctl -
t help permite visualizar los tipos de unidad disponibles.
Importante
Cuando usa systemctl, puede abreviar los nombres de las unidades, las entradas
de árbol de proceso y las descripciones de unidad.
La salida anterior limita el tipo de unidad enumerada en las unidades de servicio con la opción --
type=service. La salida tiene las siguientes columnas:
UNIT (UNIDAD)
El nombre de la unidad de servicio.
LOAD (CARGA)
Se detalla si systemd analizó adecuadamente la configuración de la unidad y cargó la unidad
en la memoria.
ACTIVE (ACTIVO)
El estado de activación de alto nivel de la unidad. Esta información indica si la unidad se ha
iniciado de forma satisfactoria.
SUB
El estado de activación de bajo nivel de la unidad. Esta información proporciona datos más
detallados sobre la unidad. La información varía según el tipo de unidad, el estado y cómo se
ejecuta la unidad.
DESCRIPTION (DESCRIPCIÓN)
La descripción breve de la unidad.
RH199-RHEL8.2-es-1-20200928 317
capítulo 9 | Control de servicios y del proceso de arranque
El comando systemctl sin ningún argumento enumera las unidades que están cargadas y
activas.
Con el comando systemctl list-units, se visualizan las unidades que el servicio systemd
intenta analizar y cargar en la memoria; no se visualizan los servicios instalados no habilitados.
Para ver el estado de todos los archivos de unidad instalados, use el comando systemctl list-
unit-files. Por ejemplo:
En la salida del comando systemctl list-units-files, las entradas válidas para el campo
STATE son enabled (habilitado), disabled (deshabilitado), static (estático) y masked
(enmascarado).
318 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Con este comando, se visualiza el estado actual del servicio. Los significados de los campos son
los siguientes:
Campo Descripción
Main PID (ID de proceso principal) El ID de proceso principal del servicio, incluido
el nombre del comando.
En la salida del estado, se pueden encontrar varias palabras clave que indican el estado del
servicio:
active (running) (activo [en En ejecución con uno o más procesos en curso.
ejecución])
RH199-RHEL8.2-es-1-20200928 319
capítulo 9 | Control de servicios y del proceso de arranque
static (estático) No puede habilitarse, pero puede iniciarse por una unidad
habilitada en forma automática.
nota
El comando systemctl status NAME reemplaza al comando service NAME
status que se usaba en Red Hat Enterprise Linux 6 y versiones anteriores.
Ejecute el siguiente comando para verificar si una unidad de servicio está habilitada para iniciarse
automáticamente durante el arranque del sistema:
El comando informa si la unidad de servicio está habilitada para iniciarse en el momento del
arranque, lo cual generalmente se informa como estado enabled (habilitado) o disabled
(deshabilitado).
320 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Para enumerar todas las unidades que han presentado un error, ejecute el comando systemctl
--failed --type=service.
Referencias
Páginas de manual: systemd(1), systemd.unit(5), systemd.service(5),
systemd.socket(5) y systemctl(1)
RH199-RHEL8.2-es-1-20200928 321
capítulo 9 | Control de servicios y del proceso de arranque
Ejercicio Guiado
Resultados
Deberá ser capaz de enumerar las unidades de servicio instaladas e identificar los servicios
activos y habilitados en el sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
322 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
4. Explore el estado del servicio chronyd. Este servicio se usa para la sincronización del
tiempo en red (NTP).
4.1. Visualice el estado del servicio chronyd. Observe la ID del proceso de todos los
daemons activos.
RH199-RHEL8.2-es-1-20200928 323
capítulo 9 | Control de servicios y del proceso de arranque
5. Explore el estado del servicio sshd. Este servicio se usa para una comunicación cifrada
segura entre sistemas.
5.1. Determine si el servicio sshd está habilitado para que se inicie en el arranque del
sistema.
5.2. Determine si el servicio sshd está activo sin mostrar toda la información de estado.
324 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
chrony-wait.service disabled
chronyd.service enabled
...output omitted...
7. Salga de servera.
Finalizar
En workstation, ejecute el script lab services-identify finish para terminar este
ejercicio.
RH199-RHEL8.2-es-1-20200928 325
capítulo 9 | Control de servicios y del proceso de arranque
Objetivos
Tras finalizar esta sección, deberá ser capaz de controlar los daemons del sistema y los servicios
de red con systemctl.
Para iniciar un servicio, primero verifique que no se esté ejecutando con systemctl status.
A continuación, use el comando systemctl start como el usuario root (usando sudo si es
necesario). En el siguiente ejemplo, se muestra cómo iniciar el servicio sshd.service:
El servicio systemd busca archivos .service para la gestión del servicio en comandos a falta
del tipo de servicio con el nombre del servicio. Por lo tanto, el comando anterior se puede ejecutar
como:
Para detener un servicio que se encuentra actualmente en ejecución, use el argumento stop
con el comando systemctl. En el siguiente ejemplo, se muestra cómo detener el servicio
sshd.service:
Algunos servicios tienen la capacidad de volver a cargar sus archivos de configuración sin
necesidad de reiniciar. Este proceso se llama recarga del servicio. La recarga de un servicio no
cambia la ID del proceso asociada con diversos procesos del servicio. Para recargar un servicio
en ejecución, use el argumento reload con el comando systemctl. En el siguiente ejemplo, se
muestra cómo volver a cargar el servicio sshd.service después de modificar la configuración:
326 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
En caso de que no esté seguro de si el servicio cuenta con la funcionalidad para volver a cargar los
cambios del archivo de configuración, use el argumento reload-or-restart con el comando
systemctl. El comando vuelve a cargar los cambios de configuración si la funcionalidad de
recarga está disponible. De lo contrario, el comando reinicia el servicio para implementar los
nuevos cambios de configuración:
Para detener por completo los servicios de impresión en un sistema, detenga las tres unidades. Al
deshabilitar el servicio, se deshabilitarán las dependencias.
RH199-RHEL8.2-es-1-20200928 327
capítulo 9 | Control de servicios y del proceso de arranque
El intento de iniciar una unidad de servicio enmascarada falla y arroja la siguiente salida:
Importante
Un servicio deshabilitado se puede iniciar manualmente o por medio de otros
archivos de la unidad, pero no se inicia automáticamente en el arranque. Un servicio
enmascarado no se inicia de forma manual ni automática.
328 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Para que el servicio no se inicie automáticamente, use el siguiente comando que quita el enlace
simbólico creado al habilitar un servicio. Tenga en cuenta que la deshabilitación de un servicio no
detiene el servicio.
Para verificar si el servicio está habilitado o deshabilitado, use el comando systemctl is-
enabled.
Tarea Comando
RH199-RHEL8.2-es-1-20200928 329
capítulo 9 | Control de servicios y del proceso de arranque
Referencias
Páginas de manual: systemd(1), systemd.unit(5), systemd.service(5),
systemd.socket(5) y systemctl(1)
330 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Ejercicio Guiado
Resultados
Deberá ser capaz de usar el comando systemctl para controlar los servicios gestionados
por systemd.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2.1. Visualice el estado del servicio sshd. Tenga en cuenta la ID del proceso del daemon
sshd.
RH199-RHEL8.2-es-1-20200928 331
capítulo 9 | Control de servicios y del proceso de arranque
2.2. Reinicie el servicio sshd y visualice el estado. La ID del proceso del daemon debe
cambiar.
En la salida anterior, observe que la ID del proceso cambió de 759 a 1132 (es probable
que los números en su sistema sean diferentes). Presione q para salir del comando.
2.3. Vuelva a cargar el servicio sshd y visualice el estado. La ID del proceso del daemon
no debe cambiar, y las conexiones no deben estar interrumpidas.
332 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
5. Determine si el servicio chronyd está habilitado para iniciarse en el arranque del sistema.
Inicie sesión con el usuario student en servera y visualice el estado del servicio
chronyd.
7. Deshabilite el servicio chronyd para que no se inicie en el arranque del sistema y, luego,
visualice el estado del servicio.
RH199-RHEL8.2-es-1-20200928 333
capítulo 9 | Control de servicios y del proceso de arranque
Inicie sesión con el usuario student en servera y visualice el estado del servicio
chronyd.
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab services-control finish para terminar este
ejercicio.
334 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• La máquina se enciende. El firmware del sistema (UEFI moderno o BIOS anterior) ejecuta una
prueba automática de encendido (Power On Self Test, POST) y comienza a inicializar parte del
hardware.
Se ajusta por medio de las pantallas de configuración de BIOS o UEFI del sistema, a las cuales
se llega típicamente al presionar una determinada combinación de teclas (p. ej., F2) al principio
del proceso de arranque.
• El firmware del sistema busca un dispositivo con capacidad de arranque, ya sea configurado en
el firmware de arranque UEFI o al buscar un Master Boot Record (MBR) en todos los discos, en
el orden configurado en el BIOS.
Se ajusta por medio de las pantallas de configuración de BIOS o UEFI del sistema, a las cuales
se llega típicamente al presionar una determinada combinación de teclas (p. ej., F2) al principio
del proceso de arranque.
• El firmware del sistema lee un cargador de arranque desde el disco, luego pasa el control del
sistema al cargador de arranque. En un sistema de Red Hat Enterprise Linux 8, el cargador de
arranque es GRand Unified Bootloader versión 2 (GRUB2).
RH199-RHEL8.2-es-1-20200928 335
capítulo 9 | Control de servicios y del proceso de arranque
• El cargador de arranque pasa el control al kernel, y detalla todas las opciones especificadas en
la línea de comandos del kernel en el cargador de arranque, y la ubicación del initramfs en la
memoria.
• El kernel inicializa todo el hardware para el que puede encontrar un controlador en initramfs
y, luego, ejecuta /sbin/init desde initramfs como PID 1. En Red Hat Enterprise Linux 8, /
sbin/init es un enlace a systemd.
Se configura por medio del parámetro de la línea de comandos init= del kernel.
• La instancia systemd desde initramfs ejecuta todas las unidades para el objetivo
initrd.target. Esto incluye el montaje del sistema de archivos root en el disco en el
directorio /sysroot.
• El kernel cambia (articula) el sistema de archivos root desde initramfs al sistema de archivos
root en /sysroot. A continuación, systemd vuelve a ejecutarse usando la copia de systemd
instalada en el disco.
Reinicio y apagado
Para apagar o reiniciar un sistema en ejecución desde la línea de comandos, puede usar el
comando systemctl.
systemctl poweroff detiene todos los servicios en ejecución, desmonta todos los sistemas de
archivos (o vuelve a montarlos como solo lectura cuando no se puedan desmontar) y, luego, apaga
el sistema.
systemctl reboot detiene todos los servicios en ejecución, desmonta todos los sistemas de
archivos y, luego, reinicia el sistema.
También puede usar el atajo de estos comandos, poweroff y reboot, que son enlaces
simbólicos a sus equivalentes de systemctl.
336 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
nota
systemctl halt y halt también están disponibles para detener el sistema, pero
a diferencia de poweroff, estos comandos no apagan el sistema, sino que lo llevan
hasta un punto donde es seguro apagarlo manualmente.
Objetivo Propósito
Un objetivo puede ser parte de otro objetivo. Por ejemplo, graphical.target incluye multi-
user.target, que a su vez depende de basic.target y otros. Puede ver estas dependencias
con el siguiente comando.
RH199-RHEL8.2-es-1-20200928 337
capítulo 9 | Control de servicios y del proceso de arranque
Si aísla un objetivo, detiene todos los servicios no requeridos por ese objetivo (y sus
dependencias), e inicia todos los servicios requeridos que aún no se hayan iniciado.
No todos los objetivos se pueden aislar. Solo puede aislar objetivos que tengan
AllowIsolate=yes establecido en sus archivos de unidad. Por ejemplo, puede aislar el objetivo
gráfico, pero no el objetivo cryptsetup.
338 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Por ejemplo, para iniciar el sistema en una shell de recuperación donde pueda cambiar la
configuración del sistema sin casi ningún servicio en ejecución, agregue la siguiente opción a la
línea de comandos del kernel desde el cargador de arranque.
systemd.unit=rescue.target
Este cambio de configuración solo afecta a un único arranque, lo que hace que sea una
herramienta útil para la solución de problemas en el proceso de arranque.
Para usar este método de selección de un objetivo diferente, use el siguiente procedimiento:
2. Interrumpa la cuenta regresiva del menú del cargador de arranque presionando cualquier
tecla (excepto Enter que iniciaría un arranque normal).
5. Mueva el cursor hasta la línea que comienza con linux. Esta es la línea de comandos del
kernel.
Referencias
info grub2 (Manual GNU GRUB)
RH199-RHEL8.2-es-1-20200928 339
capítulo 9 | Control de servicios y del proceso de arranque
Ejercicio Guiado
Resultados
Debe ser capaz de actualizar el objetivo predeterminado del sistema y usar un objetivo
temporal desde el cargador de arranque.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
3. Acceda a una consola basada en texto. Use la secuencia de teclas Ctrl+Alt+F1 por medio
de la entrada del menú o el botón relevantes. Inicie sesión como root con redhat como
contraseña.
nota
Recordatorio: si está usando el terminal a través de una página web, puede hacer
clic en el ícono Mostrar teclado debajo de la barra de URL de su navegador web y,
luego, a la derecha de la dirección IP de la máquina.
340 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Tenga en cuenta que, después del reinicio, el sistema presenta una consola basada en
texto, no un inicio de sesión gráfico.
Esto concluye la primera parte del ejercicio donde practica la configuración del
objetivo systemd predeterminado.
5. En esta segunda parte del ejercicio, practicará el modo de recuperación para recuperar el
sistema.
Reinicie workstation nuevamente para acceder al cargador de arranque. Desde el menú
del cargador de arranque, arranque en el objetivo rescue (recuperación).
5.2. Cuando el menú del cargador de arranque aparezca, presione cualquier tecla
(excepto Enter que iniciaría un arranque normal) para interrumpir la cuenta
regresiva.
5.3. Use las teclas de dirección para destacar la entrada del cargador de arranque
predeterminada.
RH199-RHEL8.2-es-1-20200928 341
capítulo 9 | Control de servicios y del proceso de arranque
5.5. Con las teclas de dirección, navegue hacia la línea que comienza con linux.
5.6. Presione End (Fin) para mover el cursor hasta el final de la línea.
Finalizar
En workstation, ejecute el script lab boot-selecting finish para terminar este ejercicio.
342 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de iniciar sesión en un sistema y cambiar la
contraseña root cuando la contraseña root actual se haya perdido.
Existen muchos métodos para establecer una nueva contraseña root. Un administrador de
sistemas podría, por ejemplo, arrancar el sistema usando un CD Live, montar el sistema de
archivos root desde allí y editar /etc/shadow. En esta sección, exploramos un método que no
requiere el uso de medios externos.
nota
En Red Hat Enterprise Linux 6 y en las versiones anteriores, los administradores
pueden arrancar el sistema en el nivel de ejecución 1 para obtener un prompt de
root. Los análogos más cercanos al nivel de ejecución 1 en una máquina Red Hat
Enterprise Linux 8 son los objetivos de recuperación y emergencia, y ambos
requieren la contraseña root para iniciar sesión.
En Red Hat Enterprise Linux 8, es posible tener scripts que se ejecuten desde la pausa de
initramfs en ciertos puntos, proporcionar una shell root y, luego, continuar cuando esa shell se
cierre. Esto se suele realizar principalmente para depuraciones, pero también se puede usar para
restablecer una contraseña root perdida.
1. Reinicie el sistema.
2. Interrumpa la cuenta regresiva del cargador de arranque presionando cualquier tecla (excepto
Enter).
5. Mueva el cursor hasta la línea de comandos del kernel (la línea que empieza con linux).
6. Agregue rd.break. Con esa opción, se produce un quiebre en el sistema antes de que el
control se entregue de initramfs al sistema real.
RH199-RHEL8.2-es-1-20200928 343
capítulo 9 | Control de servicios y del proceso de arranque
En este punto, se presenta una shell root, con el sistema de archivos root real en el disco
montado para solo lectura en /sysroot. Debido a que la solución de problemas suele exigir
modificaciones en el sistema de archivos root, debe cambiar el sistema de archivos root para
que su acceso sea de lectura-escritura. En el siguiente paso, se muestra cómo la opción
remount,rw del comando mount vuelve a montar el sistema de archivos con la opción nueva,
(rw), configurada.
nota
Es posible que las imágenes compiladas previamente coloquen múltiples
argumentos console= en el kernel para respaldar una amplia variedad de
situaciones de implementación. Estos argumentos console= indican los
dispositivos que se deben usar para la salida por consola. La advertencia con
rd.break es que si bien el sistema envía los mensajes del kernel a todas las
consolas, el prompt usará en última instancia la última consola. Si no recibe el
prompt, es posible que desee reordenar temporalmente los argumentos console=
cuando edite la línea de comandos del kernel desde el cargador de arranque.
Importante
El sistema aún no ha habilitado SELinux, por lo que cualquier archivo que cree
no tiene un contexto SELinux. Algunas herramientas, como el comando passwd,
primero crean un archivo temporal, y, luego, lo trasladan al lugar del archivo que
intentan editar; y se crea así de manera efectiva un nuevo archivo sin un contexto
SELinux. Por este motivo, cuando usa el comando passwd con rd.break, el
archivo /etc/shadow no tiene un contexto SELinux.
Para restablecer la contraseña root desde este punto, realice el siguiente procedimiento:
2. Cambie a jail de chroot, donde /sysroot se trata como la root de un árbol de sistemas de
archivos.
4. Asegúrese de que todos los archivos no etiquetados, incluido /etc/shadow en este punto,
obtengan una nueva etiqueta durante el arranque.
5. Ingrese exit dos veces. El primer comando saldrá del jail de chroot y el segundo comando
saldrá de la shell de depuración de initramfs.
344 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
En este punto, el sistema continúa con el arranque, realiza un nuevo etiquetado de SELinux
completo y, luego, realiza el arranque nuevamente.
Inspección de registros
Puede ser útil mirar los registros de arranques anteriores que fallaron. Si los diarios (journals)
del sistema son persistentes durante los reinicios, puede usar la herramienta journalctl para
inspeccionar esos registros.
Recuerde que, de manera predeterminada, los diarios (journals) del sistema se almacenan en
el directorio /run/log/journal, lo que significa que se borran cuando se reinicia el sistema.
Para almacenar diarios (journals) en el directorio /var/log/journal, que no se borra en los
reinicios, configure el parámetro Storage en persistent (persistente) en /etc/systemd/
journald.conf.
Para inspeccionar los registros de un arranque anterior, use la opción -b de journalctl. Sin
ningún argumento, la opción -b solo muestra mensajes desde el último arranque. Si el argumento
es un número negativo, se muestran los registros de los arranques anteriores.
Este comando muestra todos los mensajes calificados como error o peor del arranque anterior.
Advertencia
No olvide deshabilitar el servicio debug-shell.service cuando haya finalizado
la depuración, ya que deja una shell root no autenticada abierta a cualquier usuario
con acceso a la consola local.
RH199-RHEL8.2-es-1-20200928 345
capítulo 9 | Control de servicios y del proceso de arranque
El objetivo de emergencia mantiene el sistema de archivos root montado con solo lectura;
mientras que el objetivo de recuperación espera que sysinit.target se complete, para que
una mayor parte del sistema se inicie (p. ej., servicio de inicio de sesión o sistemas de archivos). El
usuario root en este punto no puede hacer cambios a /etc/fstab hasta que la unidad se vuelva a
montar en un estado de lectura/escritura mount -o remount,rw /
Los administradores pueden usar estas shells para corregir problemas que impiden que el sistema
arranque normalmente; por ejemplo, un bucle de dependencia entre servicios o una entrada
incorrecta en /etc/fstab. Cuando se sale de estas shells, continúa el proceso de arranque
regular.
Referencias
Páginas del manual: dracut.cmdline(7), systemd-journald(8),
journald.conf(5), journalctl(1) y systemctl(1)
346 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Ejercicio Guiado
Resultados
Deberá ser capaz de restablecer una contraseña root perdida.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Localice el icono de la consola de servera, según corresponda para el entorno del
aula. Abra la consola.
Envíe Ctrl+Alt+Del a su sistema usando la entrada del menú o el botón relevantes.
1.2. Cuando el menú del cargador de arranque aparezca, presione cualquier tecla
(excepto Enter) para interrumpir la cuenta regresiva.
2. Edite la entrada del cargador de arranque predeterminada (en la memoria) para anular el
proceso de arranque después de que todos los sistemas de archivos hayan sido montados
por el kernel, pero antes de que el control se entregue a systemd.
2.1. Use las teclas de dirección para destacar la entrada del cargador de arranque
predeterminada.
2.3. Use las teclas de dirección para navegar hacia la línea que comienza con linux.
2.4. Presione End (Fin) para mover el cursor hasta el final de la línea.
RH199-RHEL8.2-es-1-20200928 347
capítulo 9 | Control de servicios y del proceso de arranque
6. Escriba exit dos veces para continuar reiniciando su sistema de forma normal. El sistema
ejecuta un nuevo etiquetado SELinux y, luego, vuelve a arrancar nuevamente por sí solo.
Cuando el sistema esté funcionando, verifique su trabajo al iniciar sesión como root en la
consola. Use redhat como la contraseña.
Finalizar
En workstation, ejecute el script lab boot-resetting finish para terminar este ejercicio.
348 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de reparar manualmente la configuración del
sistema de archivos o problemas de daños que detengan el proceso de arranque.
Problema Resultado
En todos los casos, los administradores también pueden usar el objetivo de emergencia para
diagnosticar y corregir el problema, dado que ningún sistema de archivos se monta antes de que
se muestre la shell de emergencia.
nota
Cuando use la shell de emergencia para resolver problemas del sistema de archivos,
no olvide ejecutar systemctl daemon-reload después de editar /etc/fstab.
Sin esta recarga, systemd puede continuar usando la versión anterior.
La opción nofail en una entrada en el archivo /etc/fstab permite que el sistema arranque,
incluso si el montaje de ese sistema de archivos no se ejecuta de forma correcta. No use
esta opción en circunstancias normales. Con nofail, una aplicación se puede iniciar sin el
almacenamiento y generar posibles consecuencias graves.
RH199-RHEL8.2-es-1-20200928 349
capítulo 9 | Control de servicios y del proceso de arranque
Referencias
Páginas del manual: systemd-fsck(8), systemd-fstab-generator(8) y
systemd.mount(5)
350 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Ejercicio Guiado
Resultados
Debe ser capaz de diagnosticar problemas de /etc/fstab y usar el modo de emergencia
para recuperar el sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Localice el icono de la consola de servera, según corresponda para el entorno del
aula. Abra la consola.
Advierta que, al parecer, un trabajo de inicio no se ejecuta por completo. Tómese un
momento para especular sobre la posible causa de este comportamiento.
1.2. Para reiniciar, envíe Ctrl+Alt+Del a su sistema usando la entrada del menú o
el botón relevantes. En el caso de este problema de arranque en particular, esta
secuencia de teclas puede no detener inmediatamente el trabajo en ejecución, y es
posible que tenga que esperar a que finalice el tiempo de espera antes de que el
sistema se reinicie.
Si espera a que la tarea finalice el tiempo de espera sin enviar Ctrl+Alt+Del, el
sistema eventualmente genera por su cuenta una shell de emergencia.
1.3. Cuando el menú del cargador de arranque aparezca, presione cualquier tecla
(excepto Enter) para interrumpir la cuenta regresiva.
2. Si observa el error que tuvo en el arranque anterior, parece que al menos ciertas partes del
sistema aún están funcionando. Puesto que sabe la contraseña de root (redhat), intente
un arranque de emergencia.
2.1. Use las teclas de dirección para destacar la entrada del cargador de arranque
predeterminada.
RH199-RHEL8.2-es-1-20200928 351
capítulo 9 | Control de servicios y del proceso de arranque
2.3. Use las teclas de dirección para navegar hacia la línea que comienza con linux.
2.4. Presione End (Fin) para mover el cursor hasta el final de la línea.
Tenga en cuenta que el sistema de archivos root se monta con acceso de solo lectura.
6. Use el comando mount -a para intentar montar todos los demás sistemas de archivos.
Con la opción --all (-a), el comando monta todos los sistemas de archivos detallados en
/etc/fstab que todavía no están montados.
8. Intente montar todas las entradas para verificar que su /etc/fstab ahora sea correcto.
352 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
9. Reinicie el sistema y espere a que el arranque finalice. Ahora el sistema debería arrancar
normalmente.
Finalizar
En workstation, ejecute el script lab boot-repairing finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 353
capítulo 9 | Control de servicios y del proceso de arranque
Trabajo de laboratorio
Resultados
Deberá ser capaz de habilitar, deshabilitar, iniciar y detener servicios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab services-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab services-review finish para terminar este trabajo
de laboratorio.
354 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Solución
Resultados
Deberá ser capaz de habilitar, deshabilitar, iniciar y detener servicios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student.
1.2. Use el comando systemctl para verificar el estado del servicio psacct. Tenga en
cuenta que psacct se encuentra detenido y deshabilitado, por lo que no se inicia en el
momento del arranque.
RH199-RHEL8.2-es-1-20200928 355
capítulo 9 | Control de servicios y del proceso de arranque
2.1. Habilite el servicio psacct para que se inicie en el arranque del sistema.
2.2. Verifique que el servicio psacct esté habilitado para iniciarse en el arranque del
sistema.
3.1. Use el comando systemctl para verificar el estado del servicio rsyslog. Tenga
en cuenta que el servicio rsyslog está en ejecución y habilitado para iniciarse en el
momento del arranque.
4. Configure el servicio rsyslog para que no se inicie en el momento de arranque del sistema.
4.1. Deshabilite el servicio rsyslog para que no se inicie en el momento de arranque del
sistema.
356 RH199-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y del proceso de arranque
Evaluación
En workstation, ejecute el script lab services-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab services-review finish para terminar este trabajo
de laboratorio.
RH199-RHEL8.2-es-1-20200928 357
capítulo 9 | Control de servicios y del proceso de arranque
Resumen
En este capítulo, aprendió lo siguiente:
• Se usa el comando systemctl status para determinar el estado de los daemons del sistema
y los servicios de red iniciados por systemd.
• Use rd.break en la línea de comandos del kernel para interrumpir el proceso de arranque
antes de que se entregue el control desde el initramfs. El sistema de archivos root se monta
como solo lectura en /sysroot.
358 RH199-RHEL8.2-es-1-20200928
capítulo 10
Administración de redes
Meta Configure las interfaces de red y la configuración
en servidores Red Hat Enterprise Linux.
RH199-RHEL8.2-es-1-20200928 359
capítulo 10 | Administración de redes
Objetivos
Tras finalizar esta sección, deberá ser capaz de probar y revisar la configuración de red actual con
las utilidades de la línea de comandos.
En el ejemplo anterior, el servidor tiene tres interfaces de red: lo, que es el dispositivo de bucle
invertido que está conectado al propio servidor, y dos interfaces Ethernet, ens3 y ens4.
Para configurar cada interfaz de red correctamente, necesita saber cuál está conectada a qué red.
En muchos casos, sabrá la dirección MAC de la interfaz conectada a cada red, ya sea porque está
impresa físicamente en la tarjeta o el servidor, o porque es una máquina virtual y usted sabe cómo
está configurada. La dirección MAC del dispositivo aparece después de link/ether para cada
interfaz. Así que ya sabes que la tarjeta de red con la dirección MAC 52:54:00:00:00:0a es la
interfaz de red ens3.
360 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
El comando ping6 es la versión de IPv6 de ping en Red Hat Enterprise Linux. Se comunica a
través de IPv6 y toma direcciones IPv6, pero de lo contrario funciona como ping.
RH199-RHEL8.2-es-1-20200928 361
capítulo 10 | Administración de redes
Cuando hace ping a las direcciones de vínculo local y al grupo multidifusión de todos los nodos
de vínculo local (ff02::1), la interfaz de red que se debe usar debe especificarse explícitamente
con un identificador de zona de alcance (como ff02::1%ens3). Si esto se deja afuera, se
muestra el error connect: Invalid argument.
Hacer ping a ff02::1 puede ser útil para buscar otros nodos IPv6 en la red local.
Recuerde que las direcciones de vínculo local de IPv6 pueden ser usadas por otros hosts en el
mismo vínculo, al igual que las direcciones normales.
Esto muestra la tabla de enrutamiento de IPv4. Todos los paquetes que estén destinados
para la red 10.0.0.0/8 se envían directamente al destino mediante la ens4 del dispositivo.
Todos los paquetes que estén destinados para la red 192.0.2.0/24 se envían directamente
al destino mediante la ens3 del dispositivo. Todos los demás paquetes se envían al enrutador
predeterminado que está ubicado en 192.0.2.254, y también mediante la ens3 del dispositivo.
362 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
En este ejemplo, ignore las rutas a las que no se puede acceder que apuntan a redes que no se
usan. Eso deja tres rutas:
1. La red 2001:db8:0:1::/64, que usa la interfaz ens3 (que supuestamente tiene una
dirección en esa red).
2. La red fe80::/64, que usa la interfaz ens3, para la dirección de vínculo local. En un sistema
con múltiples interfaces, hay una ruta a fe80::/64 cada interfaz para cada dirección de
vínculo local.
3. Una ruta predeterminada a todas las redes en Internet IPv6 (la red ::/0) que no tiene una
ruta más específica en el sistema, a través del enrutador en 2001:db8:0:1::ffff, al que se
puede acceder con el dispositivo ens3.
Cada línea de la salida de tracepath representa un router o hop por donde pasa el paquete
entre el origen y el destino final. Se proporciona información adicional como disponible, que
incluye la sincronización en ambos sentidos (RTT) y cualquier cambio en el tamaño de la unidad
de transmisión máxima (MTU). La indicación asymm significa que el tráfico llegó a ese enrutador y
RH199-RHEL8.2-es-1-20200928 363
capítulo 10 | Administración de redes
regresó de ese enrutador usando diferentes rutas (asimétricas). Los enrutadores que se muestran
son los que se usan para el tráfico saliente, no el tráfico de retorno.
El comando ss se usa para mostrar las estadísticas del socket. El comando ss tiene por objeto
reemplazar la herramienta anterior netstat, que es parte del paquete net-tools, que algunos
administradores de sistemas pueden conocer más, pero que no siempre está instalada.
El puerto usado para SSH escucha todas las direcciones IPv4. El “*” se usa para indicar
“todos” cuando se hace referencia a los puertos o las direcciones IPv4.
El puerto usado para SMTP escucha la interfaz de circuito de retorno de la IPv4 127.0.0.1.
La conexión SSH establecida está en la interfaz 172.25.250.10 y se origina de un sistema con
una dirección de 172.25.254.254.
El puerto usado para SSH está atento a todas las direcciones IPv6. Se usa la sintaxis “::” para
representar todas las interfaces de IPv6.
El puerto usado para SMTP presta atención a la interfaz de circuito de retorno de la IPv6 ::1.
Opción Descripción
364 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Opción Descripción
Referencias
Páginas de manual ip-link(8), ip-address(8), ip-route(8), ip(8), ping(8),
tracepath(8), traceroute(8), ss(8) y netstat(8)
RH199-RHEL8.2-es-1-20200928 365
capítulo 10 | Administración de redes
Ejercicio Guiado
Resultados
Identificar las interfaces de la red actual y las direcciones básicas de la red.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas están configurados a fin de usar claves SSH para la autenticación y acceso sin
contraseña para servera.
2.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
366 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
RH199-RHEL8.2-es-1-20200928 367
capítulo 10 | Administración de redes
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab net-validate finish para terminar este ejercicio.
368 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Objetivos
Tras finalizar esta sección, deberá ser capaz de administrar dispositivos y configuraciones de red
con el comando nmcli.
• Solo puede haber una conexión activa para un dispositivo por vez. Pueden existir múltiples
conexiones para que las usen distintos dispositivos o para permitir que una configuración se
modifique para el mismo dispositivo. Si necesita cambiar temporalmente la configuración de
red, en lugar de cambiar la configuración de una conexión, puede cambiar la conexión que está
activa para un dispositivo. Por ejemplo, un dispositivo para una interfaz de red inalámbrica en
una laptop puede usar diferentes conexiones para la red inalámbrica en un sitio de trabajo y para
la red inalámbrica en el hogar.
• La utilidad nmcli se usa para crear y editar archivos de conexión desde la línea de comandos.
El comando nmcli con show muestra una lista de todas las conexiones. Para enumerar solo las
conexiones activas, agregue la opción --active.
RH199-RHEL8.2-es-1-20200928 369
capítulo 10 | Administración de redes
El siguiente comando agrega una conexión nueva llamada eno2 para la interfaz eno2, que obtiene
información de redes IPv4 mediante el uso de DHCP y que se conecta automáticamente en el
inicio. También obtiene configuraciones de red IPv6 al escuchar los anuncios del enrutador en el
vínculo local. El nombre del archivo de configuración se basa en el valor de la opción con-name,
eno2, y se guarda en el archivo /etc/sysconfig/network-scripts/ifcfg-eno2.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2
En el siguiente ejemplo, se crea la conexión eno2 para el dispositivo eno2 con una dirección
IPv4 estática, mediante el uso de la dirección IPv4 y el prefijo de red 192.168.0.5/24 y la
puerta de enlace predeterminada 192.168.0.254; sin embargo, sigue estableciendo la conexión
automática en el inicio y guarda su configuración en el mismo archivo. Debido a las limitaciones de
tamaño de la pantalla, termine la primera línea con un escape \ de shell y complete el comando en
la siguiente línea.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2 \
ipv4.address 192.168.0.5/24 ipv4.gateway 192.168.0.254
Este ejemplo final crea una conexión eno2 para el dispositivo eno2 con direcciones IPv4 estáticas,
mediante el uso de la dirección IPv6, el prefijo de red 2001:db8:0:1::c000:207/64, la puerta
de enlace predeterminada de IPv6 2001:db8:0:1::1, y la dirección IPv4, el prefijo de red
192.0.2.7/24 y la puerta de enlace predeterminada de IPv4 192.0.2.1, pero aún se conecta
de manera automática durante el inicio y almacena su configuración en /etc/sysconfig/
network-scripts/ifcfg-eno2. Debido a las limitaciones de tamaño de la pantalla, termine la
primera línea con un escape \ de shell y complete el comando en la siguiente línea.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2 \
ipv6.address 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 \
ipv4.address 192.0.2.7/24 ipv4.gateway 192.0.2.1
370 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Importante
Use nmcli dev dis device para desactivar una interfaz de red.
Para enumerar los parámetros actuales de una conexión, ejecute el comando nmcli con
show name, donde name es el nombre de la conexión. Las configuraciones en minúsculas son
propiedades estáticas que el administrador puede cambiar. Las configuraciones en mayúscula son
configuraciones activas que se usan provisoriamente para esta instancia de la conexión.
RH199-RHEL8.2-es-1-20200928 371
capítulo 10 | Administración de redes
ipv4.method: manual
ipv4.dns: 192.168.0.254
ipv4.dns-search: example.com
ipv4.addresses: { ip = 192.168.0.2/24, gw =
192.168.0.254 }
ipv4.routes:
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv6.method: manual
ipv6.dns: 2001:4860:4860::8888
ipv6.dns-search: example.com
ipv6.addresses: { ip = 2001:db8:0:1::7/64, gw =
2001:db8:0:1::1 }
ipv6.routes:
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-hostname: --
...output omitted...
El comando nmcli con mod name puede usarse para modificar la configuración de una
conexión. Las modificaciones que se realicen también se almacenan en el archivo /etc/
sysconfig/network-scripts/ifcfg-name para la conexión. Las configuraciones
disponibles se documentan en la página de manual nm-settings(5).
372 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Importante
Si una conexión que obtuvo la información de IPv4 de un servidor DHCPv4 se
modifica para obtenerla de archivos de configuración estática solamente, el
parámetro ipv4.method también debe modificarse de auto a manual.
Del mismo modo, si una conexión que obtuvo su información de IPv6 por SLAAC
o por un servidor DHCPv6 se está modificando para obtenerla solo de archivos de
configuración estática, el parámetro ipv6.method también debe modificarse de
auto o dhcp a manual.
Varias configuraciones pueden tener múltiples valores. Un valor específico puede agregarse a la
lista o eliminarse de la lista para una configuración mediante la adición de un símbolo + o - al inicio
del nombre de la configuración.
Sin embargo, los usuarios regulares que han iniciado sesión en la consola local también pueden
realizar muchos cambios de configuración de red en el sistema. Deben iniciar sesión en el teclado
del sistema para la consola virtual basada en texto o el entorno de escritorio gráfico para obtener
este control. La lógica detrás de esto es que si alguien está físicamente presente en la consola de
la computadora, es probable que se esté usando como una estación de trabajo o computadora
portátil y que deban configurar, activar y desactivar las interfaces de red inalámbricas o por cable
a voluntad. Por el contrario, si el sistema es un servidor en el centro de datos, generalmente los
únicos usuarios que inician sesión localmente en la máquina deben ser los administradores.
Los usuarios regulares que inician sesión usando ssh no tienen acceso para cambiar los permisos
de red sin convertirse en root.
Puedes usar el comando nmcli gen permissions para ver cuáles son sus permisos actuales.
Resumen de comandos
La siguiente tabla es una lista de los comandos nmcli clave abordados en esta sección.
Comando Propósito
RH199-RHEL8.2-es-1-20200928 373
capítulo 10 | Administración de redes
Comando Propósito
nmcli con add con-name name Agrega una conexión nueva con el nombre name.
Referencias
páginas de manual NetworkManager(8), nmcli(1), nmcli-examples(5), nm-
settings(5), hostnamectl(1), resolv.conf(5), hostname(5), ip(8) y ip-
address(8)
374 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Ejercicio Guiado
Resultados
Deberá ser capaz de convertir un sistema de DHCP a configuración estática.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
nota
Si es solicitado por el comando sudo para la contraseña student, ingrese
student como contraseña.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
RH199-RHEL8.2-es-1-20200928 375
capítulo 10 | Administración de redes
376 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
GENERAL.DEVICES: enX
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: no
GENERAL.SPEC-OBJECT: --
GENERAL.VPN: no
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 172.25.250.10/24
IP4.GATEWAY: 172.25.250.254
IP4.ROUTE[1]: dst = 172.25.250.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 172.25.250.254, mt = 100
IP4.DNS[1]: 172.25.250.254
IP6.ADDRESS[1]: fe80::3059:5462:198:58b2/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
4. Cree una conexión estática con la misma dirección IPv4, prefijo de red y puerta de enlace
predeterminada. Asigne el nombre static-addr a la conexión nueva.
RH199-RHEL8.2-es-1-20200928 377
capítulo 10 | Administración de redes
Advertencia
Dado que el acceso al equipo se logra a través de la conexión de red principal,
configurar los valores incorrectos durante la configuración de red puede hacer que
su equipo no pueda encontrarse. Si esto sucede, use el botón Reset (Restablecer)
que está arriba de lo que antes era la pantalla gráfica del equipo e inténtelo de
nuevo.
[student@servera ~]$ sudo nmcli con add con-name "static-addr" ifname enX \
type ethernet ipv4.method manual \
ipv4.address 172.25.250.10/24 ipv4.gateway 172.25.250.254
Connection 'static-addr' (15aa3901-555d-40cb-94c6-cea6f9151634) successfully
added.
378 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
RH199-RHEL8.2-es-1-20200928 379
capítulo 10 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-configure finish para terminar este ejercicio.
380 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de modificar los parámetros de configuración
de red mediante la edición de los archivos de configuración.
RH199-RHEL8.2-es-1-20200928 381
capítulo 10 | Administración de redes
382 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
IPADDR0=172.25.250.10 NAME="static-ens3"
PREFIX0=24 ONBOOT=yes
GATEWAY0=172.25.250.254 UUID=f3e8(...)ad3e
DEFROUTE=yes USERCTL=yes
DNS1=172.25.254.254
En estos parámetros de configuración estáticos, las variables para la dirección IP, el prefijo y la
puerta de enlace tienen un número al final. Esto permite que se asignen varios conjuntos de
valores a la interfaz. La variable DNS también tiene un número que se usa para especificar el
orden de la búsqueda cuando se especifican varios servidores.
RH199-RHEL8.2-es-1-20200928 383
capítulo 10 | Administración de redes
Después de modificar los archivos de configuración, ejecute nmcli con reload para que
NetworkManager lea los cambios de configuración. La interfaz todavía necesita reiniciarse para
que se implementen los cambios.
Referencias
Página de manual nmcli(1)
384 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Ejercicio Guiado
Resultados
Deberá ser capaz de agregar una dirección de red adicional a cada sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
RH199-RHEL8.2-es-1-20200928 385
capítulo 10 | Administración de redes
Si ha realizado ejercicios previos en este capítulo y esto fue cierto para su sistema, también
debería serlo para este ejercicio.
3.1. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
386 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
7.1. En workstation, use el comando ssh para iniciar sesión en serverb con el usuario
student.
7.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
RH199-RHEL8.2-es-1-20200928 387
capítulo 10 | Administración de redes
8.3. En workstation, use el comando ssh para acceder a servera como usuario
student para hacer ping a la nueva dirección de serverb.
388 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-edit finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 389
capítulo 10 | Administración de redes
Objetivos
Tras finalizar esta sección, deberá ser capaz de configurar el nombre de host estático del servidor
y su resolución de nombre y probar los resultados.
Importante
En Red Hat Enterprise Linux 7 y posterior, el nombre de host estático se almacena
en /etc/hostname. Red Hat Enterprise Linux 6 y anterior almacena el nombre de
host como variable en el archivo /etc/sysconfig/network.
390 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
172.25.254.254 classroom.example.com
172.25.254.254 content.example.com
El comando getent hosts hostname puede usarse para probar la resolución de nombre del
host con el archivo /etc/hosts.
• search: una lista de nombres de dominio para probar con un nombre del host corto. Tanto este
como el domain no deben configurarse en el mismo archivo; si esto ocurre, prevalece la última
instancia. Consulte resolv.conf(5) para obtener más detalles.
RH199-RHEL8.2-es-1-20200928 391
capítulo 10 | Administración de redes
nota
Las configuraciones DNS IPv4 e IPv6 estáticas terminan todas como directivas de
servidores de nombres en /etc/resolv.conf. Debe asegurarse de que hay,
como mínimo, un servidor de nombres accesible por IPv4 en la lista (suponiendo
un sistema de pila [stack] doble). Es mejor tener al menos un servidor de nombres
que use IPv4 y un segundo servidor de nombres que use IPv6 en caso de que tenga
problemas de red con su red IPv4 o IPv6.
Importante
DHCP reescribe automáticamente el archivo /etc/resolv.conf a medida que se
inician las interfaces, a menos que usted especifique PEERDNS=no en los archivos
de configuración de interfaz correspondientes. Configure esto con el comando
nmcli.
Referencias
Páginas de manual nmcli(1), hostnamectl(1), hosts(5), getent(1), host(1) y
resolv.conf(5)
392 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Ejercicio Guiado
Resultados
Deberá ser capaz de establecer un nombre de host personalizado y configurar los
parámetros de resolución de nombres.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
RH199-RHEL8.2-es-1-20200928 393
capítulo 10 | Administración de redes
3. Configure un nombre del host estático para que coincida con el nombre del host transitorio.
3.2. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
servera.lab.example.com
4.3. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
servera.lab.example.com
394 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
5.2. Modifique /etc/hosts para que el nombre adicional de class se puede usar para
acceder a la dirección IP 172.25.254.254.
RH199-RHEL8.2-es-1-20200928 395
capítulo 10 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-hostnames finish para terminar este ejercicio.
396 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Trabajo de laboratorio
Administración de redes
Lista de verificación de rendimiento
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
Deberá ser capaz de configurar dos direcciones IPv4 estáticas para la interfaz de red
principal.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran a fin de que usen claves SSH para la autenticación, por lo que no se necesita
una contraseña para iniciar sesión en serverb.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student como
la contraseña.
3. Cree una conexión de red estática nueva con los parámetros de configuración que figuran en
la tabla.
Parámetro Configuración
Dirección IP 172.25.250.11/24
4. Configure la conexión nueva para que se inicie en forma automática. Otras conexiones no
deberían iniciarse automáticamente.
5. Modifique la conexión nueva para que también use la dirección 10.0.1.1/24.
6. Configure el archivo hosts para que pueda hacerse referencia a 10.0.1.1 como privada.
7. Reinicie el sistema.
RH199-RHEL8.2-es-1-20200928 397
capítulo 10 | Administración de redes
Evaluación
En workstation, ejecute el script lab net-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab net-review finish para finalizar este trabajo de
laboratorio.
398 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Solución
Administración de redes
Lista de verificación de rendimiento
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
Deberá ser capaz de configurar dos direcciones IPv4 estáticas para la interfaz de red
principal.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran a fin de que usen claves SSH para la autenticación, por lo que no se necesita
una contraseña para iniciar sesión en serverb.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student como
la contraseña.
3. Cree una conexión de red estática nueva con los parámetros de configuración que figuran en
la tabla.
RH199-RHEL8.2-es-1-20200928 399
capítulo 10 | Administración de redes
Parámetro Configuración
Dirección IP 172.25.250.11/24
Cree el nuevo perfil de conexión lab basado en la información en la tabla descrita en las
instrucciones. Asocie el perfil con el nombre de su interfaz de red que aparece en el resultado
del comando ip link anterior.
[root@serverb ~]# nmcli con add con-name lab ifname enX type ethernet \
ipv4.method manual \
ipv4.address 172.25.250.11/24 ipv4.gateway 172.25.250.254
[root@serverb ~]# nmcli con mod "lab" ipv4.dns 172.25.250.254
4. Configure la conexión nueva para que se inicie en forma automática. Otras conexiones no
deberían iniciarse automáticamente.
400 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
De manera alternativa:
6. Configure el archivo hosts para que pueda hacerse referencia a 10.0.1.1 como privada.
7. Reinicie el sistema.
Evaluación
En workstation, ejecute el script lab net-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab net-review finish para finalizar este trabajo de
laboratorio.
RH199-RHEL8.2-es-1-20200928 401
capítulo 10 | Administración de redes
402 RH199-RHEL8.2-es-1-20200928
capítulo 10 | Administración de redes
Resumen
En este capítulo, aprendió lo siguiente:
• IPv4 es el protocolo de red principal usado en Internet hoy en día. IPv6 pretende ser un
reemplazo final del protocolo de red IPv4. De forma predeterminada, Red Hat Enterprise Linux
opera en un modo de pila (stack) doble, con ambos protocolos en paralelo.
• El nombre del host estático del sistema se guarda en el archivo /etc/hostname. El comando
hostnamectl se usa para modificar o ver el estado del nombre de host del sistema y los
parámetros relacionados. El comando hostname muestra o modifica provisoriamente el nombre
de host del sistema.
RH199-RHEL8.2-es-1-20200928 403
404 RH199-RHEL8.2-es-1-20200928
capítulo 11
Análisis y almacenamiento de
registros
Meta Ubicar e interpretar correctamente registros
de eventos del sistema para la resolución de
problemas.
RH199-RHEL8.2-es-1-20200928 405
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de describir la arquitectura de registro básica
que emplea Red Hat Enterprise Linux para registrar eventos.
Red Hat Enterprise Linux incluye un sistema de registro estándar que se basa en el protocolo
Syslog. Muchos programas usan este sistema para registrar eventos y organizarlos en archivos de
registro. Los servicios systemd-journald y rsyslog se encargan de gestionar los mensajes de
syslog en Red Hat Enterprise Linux 8.
Sin embargo, el servicio rsyslog lee los mensajes de syslog recibidos por systemd-journald
desde el diario a medida que llegan. Luego procesa los eventos del registro del sistema, los
registra en sus archivos de registro o los reenvía a otros servicios de acuerdo con su propia
configuración.
El servicio rsyslog ordena y escribe mensajes de syslog en los archivos de registro que no
persisten en los reinicios en /var/log. El servicio rsyslog clasifica los mensajes de registro en
archivos de registro específicos según el tipo de programa que envió cada mensaje, o instalación, y
la prioridad de cada mensaje de syslog.
406 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
Algunas aplicaciones no usan syslog para administrar sus mensajes de registro,
aunque, por lo general, colocan sus archivos de registro en un subdirectorio de /
var/log. Por ejemplo, el servidor web Apache guarda los mensajes de registro en
archivos en un subdirectorio del directorio /var/log.
Referencias
Páginas de manual systemd-journald.service(8), rsyslogd(8) y
rsyslog.conf(5)
RH199-RHEL8.2-es-1-20200928 407
capítulo 11 | Análisis y almacenamiento de registros
Cuestionario
1. ¿Qué archivo de registro almacena la mayoría de los mensajes de syslog, excepto los
relacionados con la autenticación, el correo, los trabajos programados y la depuración?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
2. ¿Qué archivo de registro almacena los mensajes de syslog relacionados con las
operaciones de seguridad y autenticación en el sistema?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
4. ¿Qué directorio contiene los archivos de syslog que pueden leer las personas?
a. /sys/kernel/debug
b. /var/log/journal
c. /run/log/journal
d. /var/log
408 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
7. ¿Qué archivo almacena mensajes de la consola relacionados con el inicio del sistema?
a. /var/log/messages
b. /var/log/cron
c. /var/log/boot.log
d. /var/log/secure
RH199-RHEL8.2-es-1-20200928 409
capítulo 11 | Análisis y almacenamiento de registros
Solución
1. ¿Qué archivo de registro almacena la mayoría de los mensajes de syslog, excepto los
relacionados con la autenticación, el correo, los trabajos programados y la depuración?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
2. ¿Qué archivo de registro almacena los mensajes de syslog relacionados con las
operaciones de seguridad y autenticación en el sistema?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
4. ¿Qué directorio contiene los archivos de syslog que pueden leer las personas?
a. /sys/kernel/debug
b. /var/log/journal
c. /run/log/journal
d. /var/log
410 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
7. ¿Qué archivo almacena mensajes de la consola relacionados con el inicio del sistema?
a. /var/log/messages
b. /var/log/cron
c. /var/log/boot.log
d. /var/log/secure
RH199-RHEL8.2-es-1-20200928 411
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, deberá ser capaz de interpretar los eventos en los archivos syslog
relevantes para solucionar problemas o revisar el estado del sistema.
En la siguiente tabla, se enumeran las ocho prioridades estándares de syslog, de mayor a menor.
El servicio rsyslog usa el tipo (facility) y la prioridad de los mensajes de registro para determinar
cómo resolverlos. Esto está configurado por reglas en el archivo /etc/rsyslog.conf y
cualquier archivo en el directorio /etc/rsyslog.d que tiene una extensión de nombre de
archivo de .conf. Los paquetes de software pueden agregar reglas fácilmente instalando un
archivo apropiado en el directorio /etc/rsyslog.d.
Cada regla que controla cómo ordenar los mensajes de syslog es una línea en uno de los archivos
de configuración. En el lado izquierdo de cada línea, se indican el tipo (facility) y la gravedad del
mensaje de syslog que se corresponde con la regla. En el lado derecho de cada línea, se indica
en qué archivo se debe guardar el mensaje de registro (o a donde más enviar el mensaje). Un
asterisco (*) es un comodín que coincide con todos los valores.
Por ejemplo, la siguiente línea registraría los mensajes enviados al facility authpriv en cualquier
prioridad para el archivo /var/log/secure:
412 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
authpriv.* /var/log/secure
Los mensajes de registro a veces coinciden con más de una regla en rsyslog.conf. En tales
casos, un mensaje se almacena en más de un archivo de registro. Para limitar los mensajes
almacenados, la palabra clave none en el campo de prioridad señala que no se deben almacenar
mensajes para el tipo (facility) indicado en el archivo dado.
nota
El subsistema de syslog tiene muchas más características que no se incluyen
en este curso. Si desea explorar más a fondo, consulte la página del manual
rsyslog.conf(5) y toda la documentación HTML en /usr/share/doc/
rsyslog/html/index.html contenida en el paquete rsyslog-doc, disponible del
repositorio de AppStream en Red Hat Enterprise Linux 8.
RH199-RHEL8.2-es-1-20200928 413
capítulo 11 | Análisis y almacenamiento de registros
Monitoreo de registros
Para reproducir problemas e inconvenientes, es útil monitorear uno o más archivos de registro para
eventos. El comando tail -f /path/to/file proporciona las últimas 10 líneas del archivo
especificado y continúa ofreciendo líneas nuevas en el archivo a medida que se escriben.
Por ejemplo, para monitorear los intentos fallidos de inicio de sesión, ejecute el comando tail en
un terminal y, luego, en otro terminal, ejecute el comando ssh como el usuario root mientras un
usuario intenta iniciar sesión en el sistema.
414 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
...output omitted...
Feb 10 09:01:13 host sshd[2712]: Accepted password for root from 172.25.254.254
port 56801 ssh2
Feb 10 09:01:13 host sshd[2712]: pam_unix(sshd:session): session opened for user
root by (uid=0)
Para enviar un mensaje al servicio rsyslog que se graba en el archivo de registro /var/log/
boot.log, ejecute el siguiente comando logger:
Referencias
Páginas de manual logger(1), tail(1), rsyslog.conf(5) y logrotate(8)
Manual de rsyslog
RH199-RHEL8.2-es-1-20200928 415
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar el servicio rsyslog para escribir todos los mensajes de
registro con la prioridad debug en el archivo de registro /var/log/messages-debug.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Configure rsyslog en servera para registrar todos los mensajes con la prioridad debug,
o una prioridad más elevada, para cualquier servicio en un archivo de registro /var/log/
messages-debug nuevo mediante el agregado del archivo configuración rsyslog /etc/
rsyslog.d/debug.conf.
2.1. Use el comando sudo -i para cambiar al usuario root. Especifique la contraseña
student para el usuario student si se le solicita cuando ejecute el comando sudo
-i.
*.debug /var/log/messages-debug
Esta línea de configuración captura los mensajes de syslog con cualquier facility y
un nivel debug o de prioridad superior. El servicio rsyslog escribirá esos mensajes
416 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
3. Verifique que todos los mensajes de registro con prioridad debug aparezcan en el archivo /
var/log/messages-debug.
3.1. Use el comando logger con la opción -p para generar un mensaje de registro con
facility user y prioridad debug.
3.2. Use el comando tail para ver los últimos diez mensajes de registro del archivo /
var/log/messages-debug y confirmar que visualiza el mensaje Debug Message
Test (Prueba de mensaje de depuración) entre los otros mensajes de registro.
3.3. Salga de las shells de los usuarios root y student en servera para volver a la shell
del usuario student en workstation.
Finalizar
En workstation, ejecute lab log-configure finish para terminar este ejercicio. Este
script garantiza que el entorno se restaure a un estado limpio.
RH199-RHEL8.2-es-1-20200928 417
capítulo 11 | Análisis y almacenamiento de registros
418 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, deberá ser capaz de encontrar e interpretar las entradas en el diario
(journal) del sistema para solucionar problemas o revisar el estado del sistema.
Importante
En Red Hat Enterprise Linux 8, el directorio /run/log almacena el diario del
sistema de forma predeterminada. El contenido del directorio /run/log se borra
después de un reinicio. Puede cambiar esta configuración, y cómo hacerlo se explica
más adelante en este capítulo.
Para recuperar mensajes de registro del diario, use el comando journalctl. Puede usar este
comando para ver todos los mensajes en el diario o para buscar eventos específicos basados
en una amplia gama de opciones y criterios. Si ejecuta el comando como root, tiene acceso
completo al diario. Los usuarios normales también pueden usar este comando, pero se les puede
restringir la visualización de ciertos mensajes.
RH199-RHEL8.2-es-1-20200928 419
capítulo 11 | Análisis y almacenamiento de registros
El comando journalctl destaca los mensajes de registro importantes: los mensajes con
prioridad notice o warning se muestran en negrita, y los mensajes con prioridad error o una
prioridad mayor se muestran en rojo.
La clave para usar en forma correcta el diario (journal) para la solución de problemas y auditorías
es limitar las búsquedas en el diario (journal) para mostrar solo la salida relevante.
Al igual que el comando tail -f, el comando journalctl -f ofrece las últimas 10 líneas
del diario (journal) del sistema y continúa proporcionando entradas del diario (journal) nuevas
a medida que se escriben en el diario (journal). Para salir del proceso journalctl -f, use la
combinación de teclas Ctrl+C.
420 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Para solucionar problemas, se recomienda filtrar el resultado del diario (journal) en función de la
prioridad de las entradas del diario (journal). El journalctl -p usa el nombre o el número de un
nivel de prioridad y muestra las entradas del diario (journal) del nivel dado o del nivel superior. El
comando journalctl comprende los niveles de prioridad debug, info, notice, warning, err,
crit, alert y emerg.
Ejecute el siguiente comando journalctl para enumerar las entradas del diario (journal) con
prioridad err o prioridad superior:
Ejecute el siguiente comando journalctl para enumerar todas las entradas del diario (journal)
de los registros de hoy.
RH199-RHEL8.2-es-1-20200928 421
capítulo 11 | Análisis y almacenamiento de registros
Ejecute el siguiente comando journalctl para enumerar todas las entradas del diario (journal)
que van del 10-2-2019 20:30:00 al 13-2-2019 12:00:00.
También puede especificar todas las entradas desde un tiempo relativo al presente. Por ejemplo,
para especificar todas las entradas en la última hora, puede usar el siguiente comando:
nota
Puede usar otras especificaciones de tiempo más sofisticadas con las opciones
--since y --until. Para algunos ejemplos, vea la página del manual
systemd.time(7)
Además del contenido visible del diario (journal), existen campos adjuntos a las entradas del
registro que solo pueden verse cuando se activa el resultado de explicación extensa. Para filtrar
el resultado de una consulta del diario (journal), puede usarse cualquier campo adicional que
se muestra. Esto es útil para restringir el resultado de búsquedas complejas para determinados
eventos del diario (journal).
422 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
SYSLOG_FACILITY=3
SYSLOG_IDENTIFIER=systemd
_UID=0
_GID=0
CODE_FILE=../src/core/job.c
CODE_LINE=826
CODE_FUNC=job_log_status_message
JOB_TYPE=start
JOB_RESULT=done
MESSAGE_ID=39f53479d3a045ac8e11786248231fbf
_TRANSPORT=journal
_PID=1
_COMM=systemd
_EXE=/usr/lib/systemd/systemd
_CMDLINE=/usr/lib/systemd/systemd --switched-root --system --deserialize 18
_CAP_EFFECTIVE=3fffffffff
_SELINUX_CONTEXT=system_u:system_r:init_t:s0
_SYSTEMD_CGROUP=/init.scope
_SYSTEMD_UNIT=init.scope
_SYSTEMD_SLICE=-.slice
UNIT=dnf-makecache.service
MESSAGE=Started dnf makecache.
_HOSTNAME=host.lab.example.com
INVOCATION_ID=d6f90184663f4309835a3e8ab647cb0e
_SOURCE_REALTIME_TIMESTAMP=1550748674509128
lines 32239-32275/32275 (END) q
En la siguiente lista, se proporcionan los campos comunes del diario (journal) del sistema que se
pueden usar para buscar líneas relevantes para un proceso o evento en particular.
Es posible combinar más de un campo del diario (journal) del sistema para realizar una búsqueda
detallada con el comando journalctl. Por ejemplo, el siguiente comando journalctl muestra
todas las entradas del diario (journal) relacionadas con la unidad sshd.service systemd de un
proceso con la PID 1182.
nota
Para obtener una lista de los campos más usados del diario (journal), consulte la
página del manual systemd.journal-fields(7).
RH199-RHEL8.2-es-1-20200928 423
capítulo 11 | Análisis y almacenamiento de registros
Referencias
Páginas del manual journalctl(1), systemd.journal-fields(7) y
systemd.time(7)
424 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Deberá ser capaz de buscar en el diario (journal) del sistema las entradas que registran
eventos en función de diferentes criterios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute lab log-query start para comenzar el ejercicio. Este script
asegura que el entorno esté configurado correctamente.
2. Use la coincidencia _PID=1 con el comando journalctl para mostrar solo los eventos
de registro que se originan del proceso systemd que se ejecuta con el identificador de
proceso 1 en servera. Para salir de journalctl, presione q.
nota
El comando journalctl puede producir un resultado diferente en su sistema.
RH199-RHEL8.2-es-1-20200928 425
capítulo 11 | Análisis y almacenamiento de registros
3. Use la coincidencia _UID=81 con el comando journalctl para visualizar todos los
eventos de registro que se originan de un servicio del sistema que se inició con el
identificador de usuario 81 en servera. Para salir de journalctl, presione q.
5. Muestre todos los eventos de registro registrados en los últimos 10 minutos a partir de la
hora actual en servera.
5.1. Use la opción --since con el comando journalctl para visualizar todos los
eventos de registro registrados en los últimos 10 minutos en servera. Para salir de
journalctl, presione q.
426 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
Es posible que esté o no ubicado en la misma zona horaria que el aula. Verifique la
hora en servera y ajuste el valor de --since según corresponda, si es necesario.
RH199-RHEL8.2-es-1-20200928 427
capítulo 11 | Análisis y almacenamiento de registros
Finalizar
En workstation, ejecute lab log-query finish para terminar este ejercicio. Este script
garantiza que el entorno se restaure a un estado limpio.
428 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de configurar el diario (journal) del sistema para
resguardar el registro de eventos cuando se reinicia un servidor.
Puesto que el sistema de archivos /run es temporal y solo existe en la memoria de tiempo de
ejecución, los datos almacenados en él, incluidos los diarios (journals) del sistema, se borran en
el reinicio.
• none: no usa ningún almacenamiento. Se descartan todos los registros, pero el reenvío de
registros aún funcionará como se espera.
La ventaja de los diarios (journals) del sistema almacenados de forma persistente es que los
datos históricos están disponibles de inmediato en el inicio. Sin embargo, incluso cuando el diario
(journal) se almacene de forma persistente, no todos los datos se conservan para siempre. El
diario (journal) tiene un mecanismo de rotación de registro incorporado que se desencadena
mensualmente. Además, de manera predeterminada, los diarios (journals) no pueden tener más
del 10 % del sistema de archivos en el que están ubicados ni dejar menos del 15 % del sistema
de archivos libre. Estos valores se pueden ajustar tanto para el tiempo de ejecución como para
los diarios (journals) persistentes en /etc/systemd/journald.conf. Los límites actuales en
cuanto al tamaño del diario (journal) se registran cuando inicia el proceso systemd-journald.
En la siguiente salida de comando, se muestran las entradas del diario (journal) que reflejan los
límites de tamaño actuales:
RH199-RHEL8.2-es-1-20200928 429
capítulo 11 | Análisis y almacenamiento de registros
nota
En el grep anterior, el símbolo de barra vertical (|) actúa como operador de o.
Es decir, grep coincide con cualquier línea que contenga la cadena Runtime o la
cadena System journal del resultado journalctl. Esto captura los límites de
tamaño actuales en el almacenamiento volátil del diario (journal) (Runtime), así
como en el almacenamiento persistente del diario (journal) (System).
[Journal]
Storage=persistent
...output omitted...
Mientras los diarios (journals) del sistema persisten en el reinicio, se obtiene una gran cantidad
de entradas en el resultado del comando journalctl que incluyen entradas del inicio actual
del sistema así como de los inicios anteriores. Para limitar el resultado a un inicio específico del
430 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
El siguiente comando journalctl recupera las entradas limitadas al segundo inicio del sistema.
El siguiente argumento es significativo solo si el sistema se ha reiniciado al menos dos veces:
El siguiente comando journalctl recupera las entradas limitadas al inicio actual del sistema:
nota
Cuando se depura el bloqueo de un sistema con un diario (journal) persistente,
generalmente es necesario limitar la cola del diario (journal) al reinicio anterior al
bloqueo. La opción -b puede estar acompañada por un número negativo que indica
la cantidad de arranques anteriores del sistema que debe incluir el resultado. Por
ejemplo, journalctl -b -1 limita el resultado solo al inicio anterior.
Referencias
Páginas de manual systemd-journald.conf(5), systemd-journald(8)
RH199-RHEL8.2-es-1-20200928 431
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar el diario (journal) del sistema para preservar sus datos
después de un reinicio.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
432 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
...output omitted...
[Journal]
Storage=persistent
...output omitted...
Tenga en cuenta que la conexión SSH finalizó apenas se reinició el sistema servera.
Finalizar
En workstation, ejecute lab log-preserve finish para terminar este ejercicio. Este script
garantiza que el entorno se restaure a un estado limpio.
RH199-RHEL8.2-es-1-20200928 433
capítulo 11 | Análisis y almacenamiento de registros
434 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de mantener una sincronización de hora precisa
por medio de NTP y configurar la zona horaria para garantizar marcas de tiempo correctas para los
eventos registrados por el diario (journal) y los registros del sistema.
El comando timedatectl muestra una descripción general de los parámetros actuales del
sistema relacionados con la hora, que incluyen la hora actual, la zona horaria y los parámetros de
sincronización de NTP del sistema.
Está disponible una base de datos con las zonas horarias, y puede enumerarse con el comando
timedatectl list-timezones.
Los nombres de las zonas horarias se basan en la base de datos de zonas horarias públicas que
están a cargo de la Autoridad para la Asignación de Números de Internet (IANA). Las zonas
horarias se nombran según el continente u océano; luego, por lo general, pero no siempre, la
ciudad más grande dentro de la región de la zona horaria. Por ejemplo, la mayoría de la zona
horaria de montaña de los EE. UU. se denomina América/Denver.
RH199-RHEL8.2-es-1-20200928 435
capítulo 11 | Análisis y almacenamiento de registros
La elección del nombre correcto puede ser no intuitiva en casos donde las localidades dentro de
una zona horaria tienen normas horarias de aprovechamiento de la luz solar. Por ejemplo, en los
EE. UU., gran parte del estado de Arizona (hora de la zona montañosa de los EE. UU.) no modifica
la hora para aprovechar la luz solar y su huso horario es el de América/Phoenix.
El comando tzselect es práctico para identificar los nombres de la zona horaria zoneinfo
correcta. De manera interactiva, se le formulan preguntas al usuario sobre la ubicación del sistema
y se proporciona el nombre de la zona horaria correcta. No implementa ningún cambio en la
configuración de la zona horaria del sistema.
El superusuario puede cambiar la configuración del sistema para actualizar la zona horaria actual
mediante el comando timedatectl set-timezone. El siguiente comando timedatectl
actualiza la zona horaria actual a America/Phoenix.
nota
En caso de que necesite usar el horario universal coordinado (UTC) en un servidor
en particular, establezca su zona horaria en UTC. El comando tzselect no incluye
el nombre de la zona horaria UTC. Use el comando timedatectl set-timezone
UTC para configurar la zona horaria actual del sistema en UTC.
Use el comando timedatectl set-time para cambiar la hora actual del sistema. La hora se
especifica con el formato "DD-MM-AAAA hh:mm:ss", donde se puede omitir la fecha o la hora. El
siguiente comando timedatectl cambia la hora a 09:00:00.
436 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
En Red Hat Enterprise Linux 8, el comando timedatectl set-ntp se ajustará
independientemente de si el servicio chronyd NTP esté en funcionamiento. Otras
distribuciones de Linux pueden usar esta configuración para ajustar un servicio NTP
o SNTP diferente.
Habilitar o deshabilitar NTP usando otras utilidades en Red Hat Enterprise Linux,
como la aplicación gráfica GNOME Settings, también actualiza esta configuración.
De manera predeterminada, el servicio chronyd usa servidores de NTP Pool Project para la
sincronización de la hora y no necesita otra configuración. Puede ser útil cambiar los servidores
NTP cuando la máquina en cuestión esté en una red aislada.
Existen dos categorías de fuentes de hora, server y peer, que puede declarar en el archivo de
configuración /etc/chrony.conf. La categoría server se encuentra un estrato más arriba que
el servidor NTP local, y la categoría peer está en el mismo estrato. Puede especificarse más de un
server y más de un peer, uno por línea.
El primer argumento de la línea server es la dirección IP o el nombre de DNS del servidor NTP.
A continuación del nombre o de la dirección IP del servidor, puede especificarse una serie de
opciones para el servidor. Se recomienda usar la opción iburst porque, una vez que se inicie el
servicio, se realizarán cuatro mediciones en un período breve a fin de lograr una sincronización del
reloj inicial más precisa.
El comando chronyc actúa como cliente para el servicio chronyd. Después de configurar la
sincronización de NTP, debe verificar que el sistema local esté usando sin problemas el servidor
RH199-RHEL8.2-es-1-20200928 437
capítulo 11 | Análisis y almacenamiento de registros
NTP para sincronizar el reloj del sistema por medio del comando chronyc sources. Para
obtener un resultado más extenso con explicaciones adicionales, use el comando chronyc
sources -v.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 8 6 17 23 -497ns[-7000ns] +/- 956us
Referencias
Páginas de manual timedatectl(1), tzselect(8), chronyd(8),
chrony.conf(5) y chronyc(1)
438 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar el servidor para sincronizar su hora con una fuente de hora de NTP.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. A los fines de la actividad, suponga que el sistema servera se reubica en Haití y, por lo
tanto, usted debe actualizar la zona horaria según corresponda. Use sudo para elevar
los privilegios del usuario student mientras ejecuta el comando timedatectl para
actualizar la zona horaria. Use la contraseña student si se le solicita una.
2.1. Use el comando tzselect para determinar la zona horaria adecuada para Haití.
RH199-RHEL8.2-es-1-20200928 439
capítulo 11 | Análisis y almacenamiento de registros
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 2
Please select a country whose clocks agree with yours.
1) Anguilla 19) Dominican Republic 37) Peru
2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico
3) Argentina 21) El Salvador 39) St Barthelemy
4) Aruba 22) French Guiana 40) St Kitts & Nevis
5) Bahamas 23) Greenland 41) St Lucia
6) Barbados 24) Grenada 42) St Maarten (Dutch)
7) Belize 25) Guadeloupe 43) St Martin (French)
8) Bolivia 26) Guatemala 44) St Pierre & Miquelon
9) Brazil 27) Guyana 45) St Vincent
10) Canada 28) Haiti 46) Suriname
11) Caribbean NL 29) Honduras 47) Trinidad & Tobago
12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is
13) Chile 31) Martinique 49) United States
14) Colombia 32) Mexico 50) Uruguay
15) Costa Rica 33) Montserrat 51) Venezuela
16) Cuba 34) Nicaragua 52) Virgin Islands (UK)
17) Curaçao 35) Panama 53) Virgin Islands (US)
18) Dominica 36) Paraguay
#? 28
The following information has been given:
Haiti
You can make this change permanent for yourself by appending the line
TZ='America/Port-au-Prince'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Port-au-Prince
440 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
2.3. Use el comando timedatectl para verificar que la zona horaria se haya actualizado
a America/Port-au-Prince.
3. Configure el servicio chronyd en servera para sincronizar la hora del sistema con la
fuente de hora de NTP classroom.example.com.
...output omitted...
server classroom.example.com iburst
...output omitted...
4. Verifique que los ajustes de hora en servera estén configurados actualmente para
sincronizarse con la fuente de hora de classroom.example.com en el entorno del aula.
4.1. Use el comando timedatectl para verificar que servera tenga actualmente
habilitada la sincronización horaria.
RH199-RHEL8.2-es-1-20200928 441
capítulo 11 | Análisis y almacenamiento de registros
nota
Si en el resultado anterior se muestra que el reloj no está sincronizado, espere dos
segundos y vuelva a ejecutar el comando timedatectl. La sincronización correcta
de los ajustes de hora con la fuente de hora tarda unos segundos.
4.2. Use el comando chronyc para verificar que el sistema servera esté
sincronizando actualmente sus ajustes de hora con la fuente de hora de
classroom.example.com.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 2 6 377 62 +105us[ +143us] +/- 14ms
Finalizar
En workstation, ejecute lab log-maintain finish para terminar este ejercicio. Este script
garantiza que la zona horaria original se restaure junto con todos los ajustes de hora originales en
servera.
442 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar un nuevo archivo de registro para almacenar todos los mensajes relacionados
con fallas de autenticación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el comando lab log-review grade para confirmar que ha
realizado correctamente este ejercicio.
RH199-RHEL8.2-es-1-20200928 443
capítulo 11 | Análisis y almacenamiento de registros
Finalizar
En workstation, ejecute lab log-review finish para terminar este trabajo de laboratorio.
Este script garantiza que la zona horaria original se restaure junto con todos los ajustes de hora
originales en serverb.
444 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar un nuevo archivo de registro para almacenar todos los mensajes relacionados
con fallas de autenticación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Suponga que el sistema serverb se ha reubicado en Jamaica y, por lo tanto, usted debe
actualizar la zona horaria según corresponda. Use sudo para elevar los privilegios del usuario
student mientras ejecuta el comando timedatectl para actualizar la zona horaria. Use la
contraseña student si se le solicita una.
2.1. Use el comando timedatectl para ver las zonas horarias disponibles y determinar la
zona horaria adecuada para Jamaica.
2.2. Use el comando timedatectl para establecer la zona horaria del sistema serverb
de América/Jamaica.
RH199-RHEL8.2-es-1-20200928 445
capítulo 11 | Análisis y almacenamiento de registros
2.3. Use el comando timedatectl para verificar que la zona horaria se haya establecido
correctamente en América/Jamaica.
3. Visualice todos los eventos de registro registrados en los últimos 30 minutos en serverb.
3.1. Use el comando date para determinar el período para ver las entradas del diario
(journal).
3.2. Use el comando journalctl con las opciones --since y --until para visualizar
todos los eventos de registro registrados en los últimos 30 minutos en serverb. Para
salir de journalctl, presione q.
446 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
authpriv.alert /var/log/auth-errors
4.2. Reinicie el servicio rsyslog para que se apliquen los cambios en el archivo de
configuración.
4.3. Use el comando logger para escribir un nuevo mensaje de registro en el archivo /
var/log/auth-errors. Aplique la opción -p authpriv.alert para generar un
mensaje de registro relevante para los problemas de autenticación y seguridad.
Evaluación
En workstation, ejecute el comando lab log-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab log-review finish para terminar este trabajo de laboratorio.
Este script garantiza que la zona horaria original se restaure junto con todos los ajustes de hora
originales en serverb.
RH199-RHEL8.2-es-1-20200928 447
capítulo 11 | Análisis y almacenamiento de registros
448 RH199-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Resumen
En este capítulo, aprendió lo siguiente:
• La rotación periódica de los archivos de registro evita que llenen el espacio del sistema de
archivos.
• El servicio chronyd ayuda a sincronizar los ajustes de hora con una fuente de hora.
RH199-RHEL8.2-es-1-20200928 449
450 RH199-RHEL8.2-es-1-20200928
capítulo 12
Implementación de funciones
avanzadas de almacenamiento
Meta Crear y administrar volúmenes lógicos que
contengan sistemas de archivos y espacios
de intercambio desde la línea de comandos, y
configurar características de almacenamiento
avanzado con Stratis y VDO.
RH199-RHEL8.2-es-1-20200928 451
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
Definiciones de LVM
Dispositivos físicos
Los dispositivos físicos son los dispositivos de almacenamiento usados para guardar los
datos almacenados en un volumen lógico. Estos son dispositivos en bloques y podrían
ser particiones de discos, discos enteros, arreglos RAID o discos SAN. Un dispositivo
debe inicializarse como un volumen físico de LVM para poder ser usado con LVM. Todo el
dispositivo se usará como un volumen físico.
452 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Importante
En los siguientes ejemplos, se usa el dispositivo vdb y sus particiones para ilustrar
comandos LVM. En la práctica, estos ejemplos deberían usar los dispositivos
correctos para el disco y las particiones del disco usados por el sistema. Use
los comandos lsblk, blkid o cat /proc/partitions para identificar los
dispositivos en su sistema.
RH199-RHEL8.2-es-1-20200928 453
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Use parted, gdisk o fdisk para crear una partición para usar con LVM. Configure siempre el
tipo de partición en Linux LVM (LVM Linux) en las particiones de LVM; use 0x8e para particiones
MBR. Si es necesario, use partprobe para registrar la nueva partición con el kernel.
Use pvcreate para etiquetar la partición (u otro dispositivo físico) como volumen físico. El
comando pvcreate divide el volumen físico en extensiones físicas (PE) de un tamaño fijo, por
ejemplo, bloques de 4 MiB. Puede etiquetar varios dispositivos al mismo tiempo con nombres de
dispositivos delimitados por espacios como argumentos para pvcreate.
Esto etiquetará dispositivos /dev/vdb2 y /dev/vdb1 como PV, listos para la asignación en un
grupo de volúmenes.
Use vgcreate para recopilar uno o más volúmenes físicos en un grupo de volúmenes. Un grupo
de volúmenes es el equivalente funcional de un disco duro; creará volúmenes lógicos a partir del
pool (conjunto) de extensiones físicas libres en el grupo de volúmenes.
Esto crea un VG denominado vg01 que tiene el tamaño combinado, en unidades de PE, de los dos
PV: /dev/vdb2 y /dev/vdb1.
Un VG solo necesita crearse si no existe ninguno. Se pueden crear más VG por motivos
administrativos para administrar el uso de PV y LV. O bien, los VG existentes se pueden ampliar
para alojar nuevos LV cuando sea necesario.
Use lvcreate para crear un nuevo volumen lógico desde las extensiones físicas disponibles en un
grupo de volúmenes. Como mínimo, la línea de comandos de lvcreate incluye la opción -n para
454 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
configurar el nombre del LV, la opción -L para establecer el tamaño del LV en bytes o la opción -
l para establecer el tamaño del LV en extensiones y el nombre del grupo de volúmenes que aloja
este volumen lógico.
Esto crea un LV denominado lv01, con un tamaño de 700 MiB, en el VG vg01. Este comando
fallará si el grupo de volúmenes no tiene una cantidad suficiente de extensiones físicas libres
para el tamaño solicitado. También tenga en cuenta que el tamaño se redondeará a un factor del
tamaño de la extensión física si el tamaño no puede coincidir exactamente.
Puede especificar el tamaño con la opción -L, que espera tamaños en bytes, mebibytes
(megabytes binarios, 1048576 bytes), gibibytes (gigabytes binarios), o similar. O puede usar la
opción -l, que espera tamaños especificados como un número de extensiones físicas.
• lvcreate -L 128M: Cambia el tamaño del volumen lógico a exactamente 128 MiB.
• lvcreate -l 128 : Cambia el tamaño del volumen lógico a exactamente 128 extensiones.
El número total de bytes depende del tamaño del bloque de extensiones físicas en el volumen
físico subyacente.
Importante
Diferentes herramientas muestran el nombre del volumen lógico, ya sea usando
el nombre tradicional /dev/vgname/lvname o el nombre del mapeador de
dispositivos del kernel /dev/mapper/vgname-lvname.
Use mkfs para crear un sistema de archivos XFS en el nuevo volumen lógico. O cree un sistema de
archivos basado en su sistema de archivos preferido, por ejemplo, ext4.
Para hacer que el sistema de archivos esté disponible después de los reinicios, realice los
siguientes pasos:
nota
El montaje de un volumen lógico por nombre es equivalente al montaje por UUID
porque LVM encuentra sus volúmenes físicos basados en un UUID incluso si
inicialmente los agrega al grupo de volúmenes por nombre.
RH199-RHEL8.2-es-1-20200928 455
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
• Ejecute mount /mnt/data para montar el sistema de archivos que acaba de agregar en /
etc/fstab.
Traslade todos los datos que se deben conservar a otro sistema de archivos. Use el comando
umount para desmontar el sistema de archivos y, luego, eliminar cualquier entrada de /etc/
fstab asociada a este sistema de archivos.
Advertencia
Al eliminar un volumen lógico, se destruyen todos los datos almacenados en este.
Realice una copia de seguridad de los datos o trasládelos antes de eliminar el
volumen lógico.
Desmonte el sistema de archivos del LV antes de ejecutar este comando. El comando solicita
confirmación antes de eliminar el LV.
Las extensiones físicas del LV se liberan y están disponibles para ser asignadas a LV existentes o
nuevos en el grupo de volúmenes.
Los volúmenes físicos del VG se liberan y están disponibles para ser asignados a VG existentes o
nuevos en el sistema.
Use pvremove para eliminar volúmenes físicos que ya no son necesarios. Use una lista delimitada
por espacios de dispositivos del PV para eliminar más de uno a la vez. Este comando elimina los
metadatos del PV de la partición (o disco). Ahora, la partición está libre para una nueva asignación
o para ser formateada.
456 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Es también el factor de multiplicación que se usa en el cálculo del tamaño de cualquier valor
informado en las unidades de PE, como Free PE (PE libre); por ejemplo: 26 PE x 4 MiB (el
PE Size [Tamaño de PE]) da 104 MiB de espacio libre. El tamaño de un volumen lógico se
redondea a un factor de unidades de PE.
Grupos de volúmenes
Use vgdisplay para visualizar información sobre grupos de volúmenes (GV). Para mostrar
información sobre todos los grupos de volúmenes, use el comando sin argumentos. Para mostrar
información sobre un grupo de volúmenes específico, pase el nombre del VG al comando.
RH199-RHEL8.2-es-1-20200928 457
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Cur PV 2
Act PV 2
VG Size 1016.00 MiB
PE Size 4.00 MiB
Total PE 254
Alloc PE / Size 175 / 700.00 MiB
Free PE / Size 79 / 316.00 MiB
VG UUID 3snNw3-CF71-CcYG-Llk1-p6EY-rHEv-xfUSez
Volúmenes lógicos
Use lvdisplay para visualizar información sobre volúmenes lógicos (LV). Si no proporciona
ningún argumento al comando muestra información sobre todos los LV, si proporciona el nombre
de un dispositivo del LV como un argumento, el comando muestra información sobre ese
dispositivo específico.
LV Path (Ruta de LV) muestra el nombre del dispositivo del volumen lógico.
Es posible que algunas herramientas informen el nombre del dispositivo como /dev/
mapper/vgname-lvname; ambos representan el mismo LV.
VG Name (Nombre de VG) muestra el grupo de volúmenes desde donde se asigna el LV.
LV Size (Tamaño de LV) muestra el tamaño total del LV. Use herramientas del sistema de
archivos para determinar el espacio libre y el espacio usado para el almacenamiento de datos.
Current LE (LE actual) muestra la cantidad de extensiones lógicas usadas por este LV. Una
LE generalmente se asigna a una extensión física del VG y, por lo tanto, al volumen físico.
458 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Referencias
páginas de manual lvm(8), pvcreate(8), vgcreate(8), lvcreate(8),
pvremove(8), vgremove(8), lvremove(8), pvdisplay(8), vgdisplay(8),
lvdisplay(8), fdisk(8), gdisk(8), parted(8), partprobe(8) y mkfs(8)
RH199-RHEL8.2-es-1-20200928 459
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
3.1. Use parted para crear dos particiones de 256 MiB y configúrelas con el tipo Linux
LVM.
460 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
3.2. Use udevadm settle para que el sistema registre las nuevas particiones.
4. Use pvcreate para agregar las dos nuevas particiones como PV.
RH199-RHEL8.2-es-1-20200928 461
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
8.1. Como prueba final, copie algunos archivos en /data y verifique cuántos se copiaron.
8.3. pvdisplay muestra información sobre cada uno de los volúmenes físicos. De forma
opcional, incluya el nombre del dispositivo para limitar detalles a un PV específico.
462 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Hay 63 PE, de las cuales 26 están libres para la asignación para LV en el futuro y 37
están asignadas actualmente a LV. Esto se traduce a los siguientes valores de MiB:
Revise los valores de LV Path (Ruta de LV), LV Name (Nombre de LV), VG Name
(Nombre de VG), LV Status (Estado de LV), LV Size (Tamaño de LV) y Current
LE (LE actual) (extensiones lógicas, que se asignan a extensiones físicas).
8.6. El comando mount muestra todos los dispositivos montados y cualquier opción de
montaje. Debe incluir /dev/servera_01_vg/servera_01_lv.
nota
Muchas herramientas informan en cambio el nombre del mapeador de dispositivos,
/dev/mapper/servera_01_vg-servera_01_lv; es el mismo volumen lógico.
8.7. df -h muestra espacio libre legible para el ser humano. De forma opcional, incluye el
punto de montaje para limitar detalles a ese sistema de archivos.
Estos valores, permitidos para metadatos del sistema de archivos, son los esperados.
RH199-RHEL8.2-es-1-20200928 463
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Finalizar
En workstation, ejecute el script lab lvm-creating finish para terminar este ejercicio.
Este script elimina el almacenamiento configurado en servera durante el ejercicio.
464 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• Ampliar un grupo de volúmenes (VG) con pvcreate y vgextend, y usar vgdisplay para
verificar la salida.
Puede eliminar los volúmenes físicos no usados de un grupo de volúmenes. Esto se denomina
reducción del grupo de volúmenes. Primero, use el comando pvmove para trasladar datos desde
extensiones de un volumen físico hasta extensiones de otros volúmenes físicos en el grupo
de volúmenes. De esta manera, se puede agregar un nuevo disco a un grupo de volúmenes
existentes, se pueden trasladar los datos desde un disco más antiguo o más lento hacia el disco
nuevo y se puede eliminar el disco viejo del grupo de volúmenes. Puede hacer esto mientras los
volúmenes lógicos del grupo de volúmenes están en uso.
Importante
En los siguientes ejemplos, se usa el dispositivo vdb y sus particiones para ilustrar
comandos LVM. En la práctica, use los dispositivos apropiados para el disco y las
particiones de disco en su propio sistema.
Al igual que en la creación de un nuevo grupo de volúmenes, debe crear y preparar una nueva
partición para usar como volumen físico si no hay ninguna ya preparada.
RH199-RHEL8.2-es-1-20200928 465
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Use vgextend para agregar el nuevo volumen físico al grupo de volúmenes. Use el nombre del
VG y el nombre del dispositivo del PV como argumentos para vgextend.
Use vgdisplay para confirmar que las extensiones físicas adicionales estén disponibles. Revise el
Free PE / Size (PE libre/tamaño) en la salida. No debe ser cero.
Use pvmove PV_DEVICE_NAME para reubicar cualquier extensión física del volumen físico que
desee eliminar a otros volúmenes físicos en el grupo de volúmenes. Los otros volúmenes físicos
deben tener una cantidad suficiente de extensiones libres para aceptar este traslado. Esto solo es
posible si hay suficientes extensiones libres en el VG y si todas corresponden a otros PV.
Este comando traslada las PE desde /dev/vdb3 a otros PV con PE libres en el mismo VG.
Advertencia
Antes de usar pvmove, efectúe una copia de seguridad de los datos en los
volúmenes lógicos del grupo de volúmenes. Una pérdida de energía imprevista
durante la operación puede hacer que el grupo de volúmenes quede en un estado
incoherente. Esto provocaría la pérdida de datos en volúmenes lógicos en el grupo
de volúmenes.
Esto elimina el PV /dev/vdb3 del VG vg01 y ahora puede agregarse a otro VG. O se puede usar
pvremove para dejar de usar el dispositivo como un PV de forma permanente.
466 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Use vgdisplay para verificar que haya suficientes extensiones físicas disponibles:
Revise el Free PE / Size (PE libre/tamaño) en la salida. Confirme que el grupo de volúmenes
tenga suficiente espacio libre para la extensión del LV. Si no hay suficiente espacio disponible,
amplíe el grupo de volúmenes como corresponda. Consulte “Ampliación y reducción de un grupo
de volúmenes”.
Esto aumenta el tamaño del volumen lógico lv01 en 300 MiB. Observe el signo "(+)" delante del
tamaño: significa agregar este valor al tamaño existente; de lo contrario, el valor define el tamaño
final del LV.
Al igual que con lvcreate, existen diferentes métodos para especificar el tamaño: la opción -
l espera la cantidad de extensiones físicas como argumento. La opción -L espera tamaños en
bytes, mebibytes, gibibytes y similares.
Ampliación de ejemplos de LV
Comando Resultados
lvextend -l +128 Agrega 128 extensiones al tamaño actual del volumen lógico.
lvextend -L 128M Cambia el tamaño del volumen lógico a exactamente 128 MiB.
RH199-RHEL8.2-es-1-20200928 467
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Comando Resultados
lvextend -L +128M Agrega 128 MiB al tamaño actual del volumen lógico.
Use xfs_growfs mountpoint para ampliar el sistema de archivos para que ocupe el
LV ampliado. El sistema de archivos de destino se debe montar cuando use el comando
xfs_growfs. Puede seguir usando el sistema de archivos mientras se está cambiando el tamaño.
nota
Un error común es ejecutar lvextend y olvidarse de ejecutar xfs_growfs. Una
alternativa a ejecutar estos pasos de forma consecutiva es incluir la opción -r con
el comando lvextend. Esto modifica el tamaño del sistema de archivos después
de que el LV se amplíe, usando fsadm(8). Funciona con varios sistemas de archivos
diferentes.
Use vgdisplay VGNAME para verificar que el grupo de volúmenes tenga una cantidad suficiente
de extensiones físicas disponibles.
Use resize2fs /dev/vgname/lvname para ampliar el sistema de archivos para que ocupe el
nuevo LV ampliado. El sistema de archivos se puede montar y usar mientras se ejecuta el comando
de extensión. Puede incluir la opción -p para monitorear el progreso de la operación de cambio de
tamaño.
468 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
nota
La principal diferencia entre xfs_growfs y resize2fs es el argumento que se
pasó para identificar el sistema de archivos. xfs_growfs toma el punto de montaje
y resize2fs toma el nombre del volumen lógico.
Use vgdisplay vgname para verificar que haya una cantidad suficiente de extensiones físicas
disponibles.
Advertencia
Su sistema debe tener suficiente espacio libre en la memoria o en el espacio de
intercambio para aceptar cualquier cosa que deba paginar cuando el espacio de
intercambio en el volumen lógico está desactivado.
Referencias
Páginas del manual: lvm(8), pvcreate(8), pvmove(8), vgdisplay(8),
vgextend(8), vgreduce(8), vgdisplay(8), vgextend(8), vgreduce(8),
lvextend(8), fdisk(8), gdisk(8), parted(8), partprobe(8), xfs_growfs(8)
y resize2fs(8) swapoff(8) swapon(8) mkswap(8)
RH199-RHEL8.2-es-1-20200928 469
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Cambiar el tamaño del volumen lógico mientras el sistema de archivos aún está montado y
en uso.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
3. Use vgdisplay para determinar si el VG tiene suficiente espacio libre para ampliar el LV
hasta un tamaño total de 700 MiB.
470 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Total PE 126
Alloc PE / Size 100 / 400.00 MiB
Free PE / Size 26 / 104.00 MiB
VG UUID OBBAtU-2nBS-4SW1-khmF-yJzi-z7bD-DpCrAV
Hay solo 104 MiB disponibles (26 PE x extensiones de 4 MiB) y necesita al menos 300 MiB
para tener 700 MiB en total. Necesita ampliar el VG.
Para una posterior comparación, use df para registrar el espacio libre en el disco actual:
4.1. Use parted para crear una partición adicional de 512 MiB y configúrela con el tipo
Linux LVM.
4.2. Use udevadm settle para que el sistema registre la nueva partición.
RH199-RHEL8.2-es-1-20200928 471
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
nota
El ejemplo especifica el tamaño exacto para crear el LV final, pero podría haber
especificado la cantidad de espacio adicional deseada:
8. Use xfs_growfs para ampliar el sistema de archivos XFS hasta el resto del espacio libre
del LV.
9. Use df y ls | wc para revisar el nuevo tamaño del sistema de archivos y verifique que los
archivos existentes anteriormente aún estén presentes.
472 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Finalizar
En workstation, ejecute el comando lab lvm-extending finish para terminar este
ejercicio. Este script elimina el almacenamiento configurado en servera durante el ejercicio.
RH199-RHEL8.2-es-1-20200928 473
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Objetivos
Tras completar esta sección, debería ser capaz de administrar múltiples capas de almacenamiento
con la administración de almacenamiento local Stratis.
Importante
Stratis está disponible como preestreno tecnológico. Para obtener información
sobre el alcance de soporte de Red Hat para funciones de vista previa de la
tecnología, consulte el documento Alcance del soporte de las prestaciones de
tecnología [https://access.redhat.com/support/offerings/techpreview].
Se recomienda a los clientes que implementen Stratis que envíen sus comentarios a
Red Hat.
En Stratis, los sistemas de archivos se compilan desde los conjuntos de dispositivos de disco
compartidos usando un concepto conocido como aprovisionamiento ligero. En lugar de asignar
inmediatamente espacio físico de almacenamiento al sistema de archivos cuando se crea, Stratis
dinámicamente asigna ese espacio del conjunto a medida que el sistema de archivos almacena
más datos. Por lo tanto, puede parecer que el sistema de archivos tiene un tamaño de 1 TiB, pero
solo puede tener 100 GiB de almacenamiento real, que se le asignó realmente desde el conjunto.
Puede crear múltiples conjuntos con diferentes dispositivos de almacenamiento. Desde cada pool
(conjunto), puede crear uno o más sistemas de archivos. Actualmente, puedes crear hasta 224
sistemas de archivos por pool (conjunto).
Los componentes que conforman un sistema de archivos administrado por Stratis se crean a partir
de componentes estándar de Linux. Internamente, Stratis se implementa mediante el uso de la
infraestructura del asignador de dispositivos que también se usa para implementar LVM, y los
sistemas de archivos gestionados por Stratis se formatean con XFS.
474 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Advertencia
Los sistemas de archivos creados por Stratis solo deben volver a configurarse con
herramientas y comandos de Stratis.
RH199-RHEL8.2-es-1-20200928 475
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
• Crear pools (conjuntos) de uno o más dispositivos de bloque con el comando stratis pool
create.
• Usar el comando stratis pool list para ver la lista de pools (conjuntos) disponibles.
Advertencia
El comando stratis pool list es muy importante porque le muestra cuánto
espacio de almacenamiento está en uso (y, por lo tanto, cuánto aún está disponible)
en los conjuntos.
• Usar el comando stratis pool add-data para agregar dispositivos de bloque adicionales a
un pool (conjunto).
• Usar el comando stratis blockdev list para ver los dispositivos de bloque de un pool
(conjunto).
476 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
• Usar el comando stratis filesystem list para ver la lista de sistemas de archivos
disponibles.
Advertencia
El comando df informará que los nuevos sistemas de archivos XFS administrados
por Stratis tienen un tamaño de 1 TiB, independientemente de la cantidad de
almacenamiento físico que esté actualmente asignada al sistema de archivos.
Debido a que el sistema de archivos se aprovisiona de forma ligera, es posible
que el conjunto no tenga suficiente almacenamiento real para hacer una copia
de seguridad de todo el sistema de archivos, especialmente si otros sistemas de
archivos en el conjunto usan todo el almacenamiento disponible.
• Puede crear una snapshot de un sistema de archivos administrado por Stratis con el comando
stratis filesystem snapshot. Las capturas de instantáneas son independientes de los
sistemas de archivos de origen.
RH199-RHEL8.2-es-1-20200928 477
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Importante
Si no incluye la opción de montaje x-systemd.requires=stratisd.service
en /etc/fstab para cada sistema de archivos Stratis, la máquina no se iniciará
correctamente y se abortará en caso de emergency.target la próxima vez que se
reinicie.
Referencias
Para obtener más información, consulte el capítulo Gestión de almacenamiento local
en capas con Stratis de la Guía de configuración y administración de sistemas de
archivos con Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-
single/configuring_and_managing_file_systems/
Almacenamiento de Stratis
https://stratis-storage.github.io/
478 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Verificar que los volúmenes Stratis crezcan dinámicamente para admitir crecimiento de
datos en tiempo real.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
RH199-RHEL8.2-es-1-20200928 479
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
480 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
RH199-RHEL8.2-es-1-20200928 481
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
482 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
[root@servera
~]# mount /stratis/stratispool1/stratis-filesystem1-snap /stratisvol-snap
9.6. Confirme que aún puede acceder al archivo que eliminó de stratis-filesystem1
con la instantánea stratis-filesystem1-snap.
11. Elimine el sistema de archivos con aprovisionamiento ligero (thin provisioned) stratis-
filesystem1 y su instantánea stratis-filesystem1-snap del sistema.
Finalizar
En workstation, ejecute el comando lab advstorage-stratis finish para terminar
este ejercicio. Este script elimina las particiones y los archivos creados durante el ejercicio para
garantizar que el entorno quede limpio.
RH199-RHEL8.2-es-1-20200928 483
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
484 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Compresión y desduplicación de
almacenamiento con VDO
Objetivos
Tras completar esta sección, debería ser capaz de optimizar el uso del espacio de almacenamiento
con VDO para comprimir y desduplicar datos en dispositivos de almacenamiento.
VDO aplica tres fases a los datos en el siguiente orden para reducir la huella en los dispositivos de
almacenamiento:
1. La eliminación de bloque cero filtra los bloques de datos que contienen solo ceros (0) y
registra la información de esos bloques solo en los metadatos. Los bloques de datos distintos
de cero se pasan a la siguiente fase de procesamiento. Esta fase habilita la función de
aprovisionamiento ligero (thin provisioning) en los dispositivos de VDO.
2. La desduplicación elimina los bloques de datos redundantes. Cuando crea múltiples copias
de los mismos datos, VDO detecta los bloques de datos duplicados y actualiza los metadatos
para usar esos bloques duplicados como referencias al bloque de datos original sin crear
bloques de datos redundantes. El módulo del kernel del servicio de desduplicación universal
RH199-RHEL8.2-es-1-20200928 485
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
(UDS) comprueba la redundancia de los datos a través de los metadatos que mantiene. Este
módulo de kernel se envía como parte del VDO.
3. La compresión es la última fase. El módulo de kernel kvdo comprime los bloques de datos con
la compresión LZ4 y los agrupa en bloques de 4 KB.
Para crear un volumen de VDO, especifique un dispositivo de bloque y el nombre del dispositivo
lógico que VDO presenta al usuario. O puede especificar el tamaño lógico del volumen de VDO.
El tamaño lógico del volumen de VDO puede ser mayor que el tamaño físico del dispositivo de
bloque real.
Dado que los volúmenes de VDO se aprovisionan de forma ligera (thin provisioned), los usuarios
solo pueden ver el espacio lógico en uso y desconocen el espacio físico real disponible. Si
no especifica el tamaño lógico al crear el volumen, VDO asume el tamaño físico real como el
tamaño lógico del volumen. Esta relación 1:1 entre la asignación del tamaño lógico y el tamaño
físico proporciona un mejor rendimiento, pero también un uso menos eficiente del espacio de
almacenamiento. De acuerdo con los requisitos de su infraestructura, debe priorizar el rendimiento
o la eficiencia del espacio.
Cuando el tamaño lógico de un volumen de VDO es mayor que el tamaño físico real, debe
monitorear de forma proactiva las estadísticas del volumen para ver el uso real con el comando
vdostats --verbose.
Habilitación de VDO
Instale los paquetes vdo y kmod-kvdo para habilitar VDO en el sistema.
Si omite el tamaño lógico, el volumen de VDO resultante tiene el mismo tamaño que su dispositivo
físico.
Cuando el volumen de VDO está en su lugar, puede formatearlo con el tipo de sistema de archivos
deseado y montarlo conforme a la jerarquía del sistema de archivos en su sistema.
486 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
El comando vdo list muestra la lista de volúmenes de VDO que se han iniciado actualmente.
Puede iniciar y detener un volumen de VDO con los comandos vdo start y vdo stop,
respectivamente.
Referencias
Para obtener más información, consulte el capítulo Cómo empezar con VDO
de la Guía de desduplicación y compresión de almacenamiento de Red Hat
Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-
single/deduplicating_and_compressing_storage/
RH199-RHEL8.2-es-1-20200928 487
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Ejercicio Guiado
Compresión y desduplicación de
almacenamiento con VDO
En este ejercicio, creará un volumen de VDO, lo formateará con un sistema de archivos,
lo montará, almacenará datos en él e investigará el impacto de la compresión y la
desduplicación en el espacio de almacenamiento realmente usado.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un volumen con el optimizador de datos virtual, formatearlo con un tipo de sistema
de archivos y montar un sistema de archivos en él.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Cree el volumen de VDO vdo1, con el dispositivo /dev/vdd. Establezca su tamaño lógico
en 50 GB.
2.2. Confirme que el paquete vdo esté instalado con el comando yum.
488 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
2.4. Verifique la disponibilidad del volumen vdo1 con el comando vdo list.
4. Asigne al volumen vdo1 el formato de tipo de sistema de archivos XFS y móntelo en /mnt/
vdo1.
4.1. Use el comando udevadm para verificar que se haya creado el nuevo archivo de
dispositivo VDO.
4.2. Asigne al volumen vdo1 el formato del sistema de archivos XFS con el comando
mkfs.
4.5. Verifique que el volumen vdo1 esté correctamente montado con el comando mount.
RH199-RHEL8.2-es-1-20200928 489
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
5.1. Vea las estadísticas iniciales y el estado del volumen con el comando vdostats.
Observe que 3 GB del volumen ya están en uso porque cuando se crea, el volumen
VDO reserva 3-4 GB para sí mismo. También observe que el valor 99% en el campo
Space saving% (% de ahorro de espacio) indica que no ha creado ningún contenido
hasta el momento en el volumen, lo que contribuye a todo el espacio del volumen
guardado.
Observe que el valor del campo Used (Usado) aumentó de 3,0G a 3,4G porque
copió un archivo en el volumen, y eso ocupa un poco de espacio. Además, observe
que el valor del campo Space saving% (% de ahorro de espacio) disminuyó de 99%
a 5% porque inicialmente no había contenido en el volumen, lo que contribuía al poco
uso del espacio del volumen y al gran ahorro de espacio del volumen hasta que creó
un archivo. El ahorro de espacio del volumen es considerablemente bajo porque creó
una copia única del archivo en el volumen y no hay nada que desduplicar.
490 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Finalizar
En workstation, ejecutelab advstorage-vdo finish para terminar este ejercicio. Este
script elimina los archivos creados durante el ejercicio para garantizar que el entorno quede limpio.
RH199-RHEL8.2-es-1-20200928 491
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Verificar que los volúmenes Stratis crezcan dinámicamente para admitir crecimiento de
datos en tiempo real.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
492 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
labstratisvol para que persista tras los reinicios. Cree un archivo denominado labfile1
que contenga el texto Hello World! en el sistema de archivos labfs. No olvide usar la
opción de montaje x-systemd. requires=stratisd.service en /etc/fstab.
8. Verifique que el sistema de archivos con aprovisionamiento ligero (thin provisioned) labfs
crece dinámicamente a medida que crecen los datos en el sistema de archivos agregando
labfile2 de 2 GiB.
9. Cree una instantánea denominada labfs-snap del sistema de archivos labfs. La
instantánea le permite acceder a cualquier archivo que se elimina de labfs.
10. Cree el volumen de VDO labvdo con el dispositivo /dev/vdd. Establezca su tamaño lógico
en 50 GB.
11. Monte el volumen labvdo en /labvdovol con el sistema de archivos XFS
para que persista tras los reinicios. No olvide usar la opción de montaje x-
systemd.requires=vdo.service en /etc/fstab.
12. Cree tres copias del mismo archivo denominado /root/install.img en el volumen
labvdo. Compare las estadísticas del volumen para verificar la desduplicación y la
compresión de datos que tienen lugar en el volumen.
13. Reinicie serverb. Verifique que el volumen labvdo esté montado en /labvdovol después
de que el sistema se inicie nuevamente.
Evaluación
En workstation, ejecute el comando lab advstorage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecutelab advstorage-review finish para terminar este ejercicio.
Este script elimina las particiones y los archivos creados durante el ejercicio para garantizar que el
entorno quede limpio.
RH199-RHEL8.2-es-1-20200928 493
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Verificar que los volúmenes Stratis crezcan dinámicamente para admitir crecimiento de
datos en tiempo real.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
494 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
5. Cree un pool (conjunto) de Stratis labpool que contiene el dispositivo de bloque /dev/
vdb.
5.1. Cree el pool (conjunto) de Stratis labpool con el comando stratis pool create.
6.3. Use el comando stratis blockdev list para mostrar los dispositivos de bloque
que ahora son miembros de labpool.
RH199-RHEL8.2-es-1-20200928 495
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
labstratisvol para que persista tras los reinicios. Cree un archivo denominado labfile1
que contenga el texto Hello World! en el sistema de archivos labfs. No olvide usar la
opción de montaje x-systemd. requires=stratisd.service en /etc/fstab.
Observe el uso actual de labfs. Este uso del sistema de archivos aumenta a pedido en
los siguientes pasos.
7.4. Edite /etc/fstab para que el sistema de archivos con aprovisionamiento ligero (thin
provisioned)labfs se monte en el momento de arranque. Use el UUID que determinó
en el paso anterior. A continuación, se muestra la línea que debe agregar a /etc/
fstab. Puede usar el comando vi /etc/fstab para editar el archivo.
7.6. Monte el sistema de archivos con aprovisionamiento ligero (thin provisioned) labfs
con el comando mount para confirmar que el archivo /etc/fstab contiene las
entradas correspondientes.
496 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
8. Verifique que el sistema de archivos con aprovisionamiento ligero (thin provisioned) labfs
crece dinámicamente a medida que crecen los datos en el sistema de archivos agregando
labfile2 de 2 GiB.
8.1. Vea el uso actual de labfs con el comando stratis filesystem list.
8.2. Cree un archivo de 2 GiB en labfs con el comando dd. Puede tardar hasta un minuto
para que se complete el comando.
8.3. Verifique que el uso de labfs ha aumentado con el comando stratis filesystem
list.
9.1. Cree una instantánea de labfs con el comando stratis filesystem snapshot.
Puede tardar hasta un minuto para que se complete el comando.
RH199-RHEL8.2-es-1-20200928 497
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
9.6. Confirme que aún puede acceder al archivo que eliminó labfs con la instantánea
labfs-snap.
10. Cree el volumen de VDO labvdo con el dispositivo /dev/vdd. Establezca su tamaño lógico
en 50 GB.
10.2. Verifique la disponibilidad del volumen labvdo con el comando vdo list.
11.1. Formatee el volumen labvdo con el sistema de archivos XFS con el comando mkfs.
11.5. Edite /etc/fstab para que labvdo se monte en el momento de arranque. Use el
UUID del volumen que determinó en el paso anterior. A continuación, se muestra la
498 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
línea que debe agregar a /etc/fstab. Puede usar el comando vi /etc/fstab para
editar el archivo.
11.6. Monte el volumen labvdo con el comando mount para confirmar que el archivo /etc/
fstab contiene las entradas correspondientes.
12. Cree tres copias del mismo archivo denominado /root/install.img en el volumen
labvdo. Compare las estadísticas del volumen para verificar la desduplicación y la
compresión de datos que tienen lugar en el volumen.
12.1. Vea las estadísticas iniciales y el estado del volumen con el comando vdostats.
Observe que 3 GB del volumen ya están en uso porque cuando se crea, el volumen
VDO reserva 3-4 GB para sí mismo. También observe que el valor 99% en el campo
Space saving% (% de ahorro de espacio) indica que no ha creado ningún contenido
hasta el momento en el volumen, lo que contribuye a todo el espacio del volumen
guardado.
Observe que el valor del campo Used (Usado) aumentó de 3,0G a 3,4G porque copió
un archivo en el volumen, y eso ocupa un poco de espacio. Además, observe que el
valor del campo Space saving% (% de ahorro de espacio) disminuyó de 99% a 5%
porque inicialmente no había contenido en el volumen, lo que contribuía al poco uso del
espacio del volumen y al gran ahorro de espacio del volumen hasta que creó un archivo
allí. El ahorro de espacio del volumen es bastante bajo porque creó una copia única del
archivo en el volumen y no hay nada que desduplicar.
RH199-RHEL8.2-es-1-20200928 499
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
13. Reinicie serverb. Verifique que el volumen labvdo esté montado en /labvdovol después
de que el sistema se inicie nuevamente.
nota
Nota: Si en un reinicio, serverb no arranca con un prompt de inicio de sesión
regular, sino que indica "Dar la contraseña root para mantenimiento (o presione
Control-D para continuar):" es probable que haya cometido un error en /etc/
fstab. Después de proporcionar la contraseña root de redhat , tendrá que volver
a montar el sistema de archivos raíz como lectura/escritura con:
Evaluación
En workstation, ejecute el comando lab advstorage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecutelab advstorage-review finish para terminar este ejercicio.
Este script elimina las particiones y los archivos creados durante el ejercicio para garantizar que el
entorno quede limpio.
500 RH199-RHEL8.2-es-1-20200928
capítulo 12 | Implementación de funciones avanzadas de almacenamiento
Resumen
En este capítulo, aprendió lo siguiente:
• Los volúmenes físicos, los grupos de volúmenes y los volúmenes lógicos se administran
mediante diversas herramientas, como pvcreate, vgreduce y lvextend.
• Los volúmenes lógicos se pueden formatear con un sistema de archivos o como espacio de
intercambio (swap), que se pueden configurar para montarse o iniciarse cuando arranca el
sistema.
• Stratis proporciona una forma integrada de ensamblar almacenamiento físico en conjuntos que
se pueden asignar automáticamente a sistemas de archivos.
• El optimizador de datos virtual (VDO) está diseñado para reducir el costo de almacenamiento
mediante la optimización de la eficiencia del almacenamiento, gracias a la eliminación de
bloques de ceros, la desduplicación de datos y la compresión de datos.
RH199-RHEL8.2-es-1-20200928 501
502 RH199-RHEL8.2-es-1-20200928
capítulo 13
RH199-RHEL8.2-es-1-20200928 503
capítulo 13 | Programación de tareas futuras
Objetivos
Después de finalizar esta sesión, debe programar comandos para que se ejecuten en una
programación de repetición usando el archivo crontab y directorios del sistema.
Los trabajos recurrentes del sistema se definen en dos ubicaciones: el archivo /etc/crontab
y los archivos dentro del directorio /etc/cron.d/. Siempre debe crear sus archivos crontab
personalizados bajo el directorio /etc/cron.d para programar trabajos recurrentes del sistema.
Coloque el archivo crontab personalizado en /etc/cron.d para evitar que se sobrescriba
si se produce alguna actualización del paquete al proveedor de /etc/crontab, que puede
sobrescribir los contenidos existentes en /etc/crontab. Los paquetes que requieren trabajos
recurrentes del sistema colocan sus archivos crontab en /etc/cron.d/ que contiene las
entradas de trabajo. Los administradores también usan esta ubicación para agrupar trabajos
relacionados en un solo archivo.
El sistema crontab también incluye repositorios para scripts que necesitan ejecutarse cada hora,
día, semana y mes. Estos repositorios son directorios llamados /etc/cron.hourly/, /etc/
cron.daily/, /etc/cron.weekly/ y /etc/cron.monthly/. Una vez más, estos directorios
contienen scripts de shell ejecutables, no archivos crontab.
504 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Importante
Recuerde hacer que todos los scripts que coloque en estos directorios sean
ejecutables. Si un script no es ejecutable, no se ejecutará. Para hacer un script
ejecutable, use el comando chmod +x script_name.
nota
En el pasado, un servicio separado llamado anacron se usaba para manejar el
archivo /etc/anacrontab, pero en Red Hat Enterprise Linux 7 y posterior, el
servicio crond regular analiza este archivo.
Hay diferentes archivos en /var/spool/anacron/ para cada uno de los trabajos diarios,
semanales y mensuales para determinar si un trabajo en particular se ha ejecutado. Cuando crond
comienza un trabajo desde /etc/anacrontab, actualiza los sellos de hora de esos archivos.
El mismo sello de hora se usa para determinar cuándo se ejecutó un trabajo por última vez. La
sintaxis de /etc/anacrontab es diferente a la de los archivos de configuración de crontab
regulares. Contiene exactamente cuatro campos por línea, como se detalla a continuación.
El intervalo en días para el trabajo que se ejecuta en una programación de repetición. Este
campo acepta un entero o una macro como su valor. Por ejemplo, la macro @daily es
equivalente al entero 1, lo que significa que el trabajo se ejecuta diariamente. De manera
similar, la macro @weekly es equivalente al entero 7, lo que significa que el trabajo se ejecuta
diariamente.
Cantidad de tiempo que el daemon crond debe esperar antes de iniciar este trabajo.
• Comando (Comando)
El archivo /etc/anacrontab también contiene declaraciones variables del entorno que usan
la sintaxis NAME=value. De especial interés es la variable START_HOURS_RANGE, que especifica
el intervalo de tiempo para que se ejecuten los trabajos. Los trabajos no se inician fuera de este
RH199-RHEL8.2-es-1-20200928 505
capítulo 13 | Programación de tareas futuras
...output omitted...
[Unit]
Description=Run system activity accounting tool every 10 minutes
[Timer]
OnCalendar=*:00/10
[Install]
WantedBy=sysstat.service
Importante
No modifique ningún archivo de configuración de la unidad bajo el directorio /usr/
lib/systemd/system porque cualquier actualización al paquete del proveedor
del archivo de configuración puede anular los cambios de configuración que realizó
en ese archivo. Por lo tanto, haga una copia del archivo de configuración de la
unidad que desea cambiar bajo el directorio /etc/systemd/system y, luego,
modifique la copia para que los cambios de configuración que realice con respecto
a una unidad no se anulen con ninguna actualización del paquete del proveedor.
Si existen dos archivos con el mismo nombre bajo los directorios /usr/lib/
systemd/system y /etc/systemd/system, systemd analiza el archivo bajo el
directorio /etc/systemd/system.
506 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Referencias
Páginas del manual crontab(5),anacron(8),anacrontab(5), systemd.time(7),
systemd.timer(5) y crond(8)
RH199-RHEL8.2-es-1-20200928 507
capítulo 13 | Programación de tareas futuras
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Programar un trabajo del sistema recurrente para contar el número de usuarios activos
• Actualizar la unidad de temporizador systemd que recopila los datos de actividad del
sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
3. Programe un trabajo del sistema recurrente que genere un mensaje de registro que indique
la cantidad de usuarios activos actualmente en el sistema. El trabajo debe ejecutarse
diariamente. Puede usar el comando w -h | wc -l para recuperar el número de usuarios
actualmente activos en el sistema. También, use el comando logger para generar el
mensaje de registro.
508 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
#!/bin/bash
USERCOUNT=$(w -h | wc -l)
logger "There are currently ${USERCOUNT} active users"
3.2. Use el comando chmod para habilitar el permiso ejecutable (x) en /etc/
cron.daily/usercount.
Complete!
Importante
No debe editar archivos bajo el directorio /usr/lib/systemd. Con systemd,
puede copiar el archivo de la unidad al directorio /etc/systemd/system y editar
esa copia. El proceso de systemd analiza su copia personalizada en lugar del
archivo bajo el directorio /usr/lib/systemd.
...
# Activates activity collector every 2 minutes
RH199-RHEL8.2-es-1-20200928 509
capítulo 13 | Programación de tareas futuras
[Unit]
Description=Run system activity accounting tool every 2 minutes
[Timer]
OnCalendar=*:00/02
[Install]
WantedBy=sysstat.service
4.5. Use el comando systemctl para activar la unidad del temporizador sysstat-
collect.timer.
4.6. Use el comando while para esperar hasta que el archivo binario se cree bajo el
directorio /var/log/sa. Espere a que regrese su prompt de shell.
4.7. Use el comando ls -l para verificar que el archivo binario bajo el directorio /var/
log/sa se modificó en los últimos dos minutos.
510 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Finalizar
En workstation, ejecute lab scheduling-system finish para terminar este ejercicio. Este
script elimina los archivos creados durante el ejercicio para garantizar que el entorno quede limpio.
RH199-RHEL8.2-es-1-20200928 511
capítulo 13 | Programación de tareas futuras
Objetivos
Después de finalizar esta sesión, debe ser capaz de habilitar y deshabilitar los temporizadores de
systemd y configurar un temporizador que administre archivos temporales.
Para mantener un sistema ejecutándose de forma ordenada, es necesario que estos directorios
y archivos se creen cuando no existen, dado que los daemons y scripts podrían contar con que
estos estén allí, y que los archivos antiguos se purguen de modo que no puedan llenar espacio en
el disco ni proporcionar información errónea.
Red Hat Enterprise Linux 7 y posteriores incluyen una nueva herramienta llamada systemd-
tmpfiles, que proporciona un método estructurado y configurable para administrar directorios y
archivos temporales.
Cuando systemd inicia un sistema, una de las primeras unidades de servicio iniciadas es
systemd-tmpfiles-setup. Este servicio ejecuta el comando systemd-tmpfiles --create
--remove. Este comando lee los archivos de configuración de /usr/lib/tmpfiles.d/
*.conf, /run/tmpfiles.d/*.conf y /etc/tmpfiles.d/*.conf. Todos los archivos y
directorios marcados para la eliminación en esos archivos de configuración se eliminarán, y todos
los archivos y directorios marcados para la creación (o arreglos de permisos) se crearán con los
permisos correctos si es necesario.
Los archivos de configuración de la unidad del temporizador systemd tienen una sección
[Timer] que indica con qué frecuencia debe iniciarse el servicio con el mismo nombre.
Use el siguiente comando systemctl para ver los contenidos del archivo de configuración de la
unidad systemd-tmpfiles-clean.timer.
512 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
RH199-RHEL8.2-es-1-20200928 513
capítulo 13 | Programación de tareas futuras
Cree el directorio /home/student si aún no existe. Si existe, vacíe todos los contenidos. Cuando
systemd-tmpfiles --clean se ejecute, elimine todos los archivos a los que no se haya
accedido, ni se hayan modificado ni cambiado en más de un día.
• /etc/tmpfiles.d/*.conf
• /run/tmpfiles.d/*.conf
• /usr/lib/tmpfiles.d/*.conf
nota
Cuando evalúe configuraciones nuevas o modificadas, puede ser útil solo aplicar los
comandos de un archivo de configuración. Esto se puede lograr si se especifica el
nombre del archivo de configuración en la línea de comandos.
514 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Referencias
Páginas del manual: systemd-tmpfiles(8), tmpfiles.d(5), stat(1), stat(2) y
systemd.timer(5).
RH199-RHEL8.2-es-1-20200928 515
capítulo 13 | Programación de tareas futuras
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
516 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
2.4. Use el comando systemd-tmpfiles --clean para verificar que el archivo /etc/
tmpfiles.d/tmp.conf contenga la configuración correcta.
Debido a que el comando anterior no devolvió ningún error, confirma que los ajustes
de configuración son correctos.
3. Agregue una nueva configuración que asegure que el directorio /run/momentary exista
con la propiedad del usuario y del grupo establecida en root. Los permisos octales para el
directorio deben ser 0700. La configuración debe purgar los archivos de este directorio que
no se hayan usado en los últimos 30 segundos.
Debido a que el comando anterior no devolvió ningún error, confirma que los ajustes
de configuración son correctos.
3.3. Use el comando ls para verificar que el directorio /run/momentary se crea con los
permisos, el propietario y el propietario del grupo adecuados.
RH199-RHEL8.2-es-1-20200928 517
capítulo 13 | Programación de tareas futuras
4.2. Use el comando sleep para configurar su prompt de shell para que no regrese
durante 30 segundos.
4.3. Después de que vuelva a aparecer el prompt de shell, use el comando systemd-
tmpfiles --clean para limpiar archivos obsoletos de /run/momentary, sobre la
base de la regla mencionada en /etc/tmpfiles.d/momentary.conf.
Finalizar
On workstation, ejecute lab scheduling-tempfiles finish para terminar este ejercicio.
Este script elimina los archivos creados durante el ejercicio para garantizar que el entorno quede
limpio.
518 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Cuestionario
3. ¿Qué archivo de configuración define la configuración de los trabajos del sistema que
se ejecutan de forma diaria, semanal y mensual?
a. /etc/crontab
b. /etc/anacrontab
c. /etc/inittab
d. /etc/sysconfig/crond
RH199-RHEL8.2-es-1-20200928 519
capítulo 13 | Programación de tareas futuras
Solución
3. ¿Qué archivo de configuración define la configuración de los trabajos del sistema que
se ejecutan de forma diaria, semanal y mensual?
a. /etc/crontab
b. /etc/anacrontab
c. /etc/inittab
d. /etc/sysconfig/crond
520 RH199-RHEL8.2-es-1-20200928
capítulo 13 | Programación de tareas futuras
Resumen
En este capítulo, aprendió lo siguiente:
• Los trabajos recurrentes del sistema ejecutan tareas en una programación de repetición.
• Los trabajos recurrentes del sistema realizan tareas administrativas en una programación de
repetición que tiene impacto en todo el sistema.
RH199-RHEL8.2-es-1-20200928 521
522 RH199-RHEL8.2-es-1-20200928
capítulo 14
Acceso al almacenamiento
conectado a la red
Meta Acceder al almacenamiento conectado a la red con
el protocolo NFS.
RH199-RHEL8.2-es-1-20200928 523
capítulo 14 | Acceso al almacenamiento conectado a la red
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• Montar un recurso compartido de NFS con el comando mount o configurando el archivo /etc/
fstab.
La versión predeterminada de NFS en Red Hat Enterprise Linux 8 es 4.2. Se admiten las versiones
principales de NFSv4 y NFSv3. NFSv2 ya no se admite. NFSv4 usa solo el protocolo TCP para
comunicarse con el servidor; las versiones anteriores de NFS podían usar TCP o UDP.
Los servidores NFS exportan recursos compartidos (directorios). Los clientes NFS montan un
recurso compartido exportado a un punto de montaje local (directorio), que debe existir. Los
recursos compartidos de NFS se pueden montar de diversas maneras:
1. Identificar: El administrador del sistema cliente de NFS puede identificar los recursos
compartidos de NFS disponibles de diversas maneras:
El administrador del servidor NFS puede proporcionar detalles de exportación, incluidos los
requisitos de seguridad.
Como alternativa, el administrador del cliente puede identificar los recursos compartidos de
NFSv4 al montar el directorio root del servidor NFS y al explorar los directorios exportados.
Haga esto como usuario root. El acceso a recursos compartidos que usan Kerberos será
denegado, pero el nombre del recurso compartido (directorio) estará visible. Otros directorios
compartidos se podrán explorar.
524 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
2. Punto de montaje: Use mkdir para crear un punto de montaje en una ubicación adecuada.
3. Montar: Al igual que con los sistemas de archivos en particiones, los recursos compartidos
de NFS deben montarse para estar disponibles. Para montar un recurso compartido de NFS,
seleccione una de las siguientes opciones. En cada caso, debe ejecutar estos comandos como
superusuario, ya sea iniciando sesión como root o con el comando sudo.
RH199-RHEL8.2-es-1-20200928 525
capítulo 14 | Acceso al almacenamiento conectado a la red
nota
Desmontar un recurso compartido no elimina su entrada /etc/fstab. A menos
que elimine o comente la entrada, el recurso compartido de NFS se volverá a
montar en el próximo inicio del sistema o cuando se reinicie el servicio de cliente
NFS.
Referencias
Páginas del manual mount(8), umount(8), fstab(5), mount.nfs(8) y
nfsconf(8)
526 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Ejercicio Guiado
Administración de almacenamiento
conectado a la red con NFS
Lista de verificación de rendimiento
En este ejercicio, modificará el archivo /etc/fstab para montar de forma persistente una
exportación de NFS en el momento del arranque.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Una empresa de transporte usa un servidor central, serverb, para alojar una serie de documentos
y directorios compartidos. Los usuarios de servera, que son todos miembros del grupo admin,
necesitan acceso al recurso compartido NFS montado de forma persistente.
Información importante:
• Los miembros del grupo admin (admin1, sysmanager1) tienen acceso de lectura y escritura al
directorio compartido /shares/public.
RH199-RHEL8.2-es-1-20200928 527
capítulo 14 | Acceso al almacenamiento conectado a la red
1.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
2.2. En servera, use el comando mount para verificar que el recurso compartido NFS
/share/public exportado por serverb se monta correctamente en el punto de
montaje /public.
2.4. Explore las opciones de comando mount para el recurso compartido NFS montado.
528 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
4. Una vez que servera haya finalizado el reinicio, inicie sesión en servera con el usuario
admin1 y pruebe el recurso compartido NFS montado de forma persistente.
RH199-RHEL8.2-es-1-20200928 529
capítulo 14 | Acceso al almacenamiento conectado a la red
Finalizar
En workstation, ejecute el script lab netstorage-nfs finish para terminar este ejercicio.
530 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
• Los usuarios no necesitan tener privilegios root para ejecutar los comandos mount y umount
• Los recursos compartidos de NFS no están conectados permanentemente como las entradas
en /etc/fstab, lo que libera recursos de red y sistemas.
• El servicio de automontaje se configura del lado del cliente; no se requiere configuración del
lado del servidor.
• El servicio de automontaje usa las mismas opciones que el comando mount, incluidas las
opciones de seguridad.
• autofs crea y elimina puntos de montaje indirectos, lo que elimina la gestión manual.
• NFS es el sistema de archivos de red predeterminado del servicio de automontaje, pero otros
sistemas de archivos de red pueden montarse automáticamente.
Crear un automontaje
La configuración de un automontaje es un proceso de varios pasos:
RH199-RHEL8.2-es-1-20200928 531
capítulo 14 | Acceso al almacenamiento conectado a la red
Este paquete contiene todo lo necesario para usar el servicio de automontaje para recursos
compartidos de NFS.
El nombre del archivo de asignación maestra es arbitrario (aunque suele tener un sentido),
pero debe tener una extensión de .autofs para que el subsistema lo reconozca. Puede
colocar varias entradas en un solo archivo de asignación maestra; como alternativa, puede
crear varios archivos de asignación maestra, cada uno con sus propias entradas agrupadas de
forma lógica.
/shares /etc/auto.demo
Esta entrada usa el directorio /shares como la base para futuros automontajes indirectos.
El archivo /etc/auto.demo contiene los detalles de montaje. Use un nombre de archivo
absoluto. El archivo auto.demo debe crearse antes de comenzar el servicio autofs.
3. Cree los archivos de asignación. Cada archivo de asignación identifica el punto de montaje,
las opciones de montaje y la ubicación de origen que se montará para un conjunto de
automontajes.
• Conocido como la "clave" en las páginas del manual, el punto de montaje se crea y elimina
automáticamente con el servicio autofs. En este caso, el punto de montaje totalmente
calificado es /shares/work (consulte el archivo de asignación maestra). El directorio /
shares y el directorio /shares/work se crean y eliminan según sea necesario mediante
el servicio autofs.
En este ejemplo, el punto de montaje local refleja la estructura de directorios del servidor,
pero esto no es necesario; el punto de montaje local puede tener cualquier nombre. El
servicio autofs no impone una estructura de nombres específica en el cliente.
• Las opciones de montaje comienzan con un carácter de guión (-) y se separan por comas
sin espacios en blanco. Las opciones de montaje disponibles para el montaje manual
de un sistema de archivos están disponibles al realizar el montaje automático. En este
532 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Algunas opciones útiles específicas del servicio de automontaje son -fstype= y -strict.
Use fstype para especificar el tipo de sistema de archivos, por ejemplo nfs4 o xfs, y use
strict para tratar errores como fatales cuando monte sistemas de archivos.
• La ubicación de origen para los recursos compartidos de NFS sigue el patrón host:/
pathname; en este ejemplo, serverb:/shares/work. Para que este montaje automático
tenga éxito, el servidor NFS, serverb, debe exportar el directorio con acceso de lectura
y escritura, y el usuario que solicita el acceso debe tener permisos de archivo estándar
de Linux en el directorio. Si serverb exporta el directorio con acceso de solo lectura,
entonces el cliente obtendrá acceso de solo lectura a pesar de que solicitó acceso de
lectura/escritura.
Asignaciones directas
Las asignaciones directas se usan para asignar un recurso compartido de NFS a un punto de
montaje de ruta absoluta existente.
Para usar puntos de montaje asignados directamente, el archivo de asignación maestra puede
tener la siguiente apariencia:
/- /etc/auto.direct
Todas las entradas de asignación directa usan /- como el directorio de base. En este caso, el
archivo de asignación que contiene los detalles de montaje es /etc/auto.direct.
El punto de montaje (o clave) es siempre una ruta absoluta. El resto del archivo de asignación usa
la misma estructura.
En este ejemplo, el directorio /mnt existe y no lo administra autofs. El servicio autofs creará y
eliminará automáticamente el directorio completo /mnt/docs.
RH199-RHEL8.2-es-1-20200928 533
capítulo 14 | Acceso al almacenamiento conectado a la red
Para continuar con el ejemplo anterior, si serverb:/shares exporta dos o más subdirectorios y
se puede acceder a estos usando las mismas opciones de montaje, el contenido del archivo /etc/
auto.demo podría verse del siguiente modo:
* -rw,sync serverb:/shares/&
Cuando un usuario intenta acceder a /shares/work, la clave * (que es work en este ejemplo)
reemplaza el símbolo & en la ubicación de origen y serverb:/shares/work se monta. Al igual
que con el ejemplo indirecto, autofs crea y elimina automáticamente el directorio work.
Referencias
Páginas del manual: autofs(5), automount(8), auto.master(5) y
mount.nfs(8)
534 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Un proveedor de servicios de Internet usa un servidor central, serverb, para alojar directorios
compartidos que contienen documentos importantes que deben estar disponibles a pedido.
Cuando los usuarios inician sesión en servera necesitan acceso a los directorios compartidos
montados automáticamente.
Información importante:
• El grupo operators está compuesto por los usuarios operator1 y operator2. Tienen
acceso de lectura y escritura a los directorios compartidos /shares/indirect/west, /
shares/indirect/central y /shares/indirect/east.
RH199-RHEL8.2-es-1-20200928 535
capítulo 14 | Acceso al almacenamiento conectado a la red
1.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
2. Configure una asignación directa de montaje automático en servera con los recursos
compartidos de serverb. Cree la asignación directa con los archivos denominados /etc/
auto.master.d/direct.autofs para la asignación maestra y /etc/auto.direct
para el archivo de asignación. Use el directorio /external como el punto de montaje
principal en servera.
2.1. Pruebe el servidor NFS y comparta antes de proceder con la configuración del
servicio de automontaje.
536 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
/- /etc/auto.direct
3. Configure una asignación indirecta de montaje automático en servera con los recursos
compartidos de serverb. Cree la asignación indirecta con los archivos denominados
/etc/auto.master.d/indirect.autofs para la asignación maestra y /etc/
auto.indirect para el archivo de asignación. Use el directorio /internal como el
punto de montaje principal en servera.
3.1. Pruebe el servidor NFS y comparta antes de proceder con la configuración del
servicio de automontaje.
/internal /etc/auto.indirect
* -rw,sync,fstype=nfs4 serverb.lab.example.com:/shares/indirect/&
RH199-RHEL8.2-es-1-20200928 537
capítulo 14 | Acceso al almacenamiento conectado a la red
5.1. Después de que la máquina servera haya terminado de arrancar, inicie sesión en
servera con el usuario student.
538 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
nota
Notará que en una asignación indirecta de automontaje, incluso si se encuentra
en el punto de montaje asignado, debe llamar a cada uno de los subdirectorios
o archivos compartidos a pedido para obtener acceso a ellos. En una asignación
directa del servicio de automontaje, después de abrir el punto de montaje asignado,
obtendrá acceso a los directorios y al contenido configurado en el directorio
compartido.
RH199-RHEL8.2-es-1-20200928 539
capítulo 14 | Acceso al almacenamiento conectado a la red
total 0
drwxrws---. 2 root operators 24 Apr 7 23:34 central
drwxrws---. 2 root operators 24 Apr 7 23:34 east
drwxrws---. 2 root operators 24 Apr 7 23:34 west
Finalizar
En workstation, ejecute el script lab netstorage-autofs finish para terminar este
ejercicio.
540 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Una empresa de soporte de TI usa un servidor central, serverb, para alojar algunos directorios
compartidos en /remote/shares para sus grupos y usuarios. Los usuarios deben ser capaces
de iniciar sesión y tener sus directorios compartidos montados a pedido y listos para usar, en el
directorio /shares en servera.
Información importante:
• El grupo managers está compuesto por los usuarios manager1 y manager2. Tienen acceso de
lectura y escritura al directorio compartido /shares/management.
• El grupo production está compuesto por los usuarios dbuser1 y sysadmin1. Tienen acceso
de lectura y escritura al directorio compartido /shares/production.
• El grupo operators está compuesto por los usuarios contractor1 y consultant1. Tienen
acceso de lectura y escritura al directorio compartido /shares/operation.
RH199-RHEL8.2-es-1-20200928 541
capítulo 14 | Acceso al almacenamiento conectado a la red
Evaluación
En workstation, ejecute el comando lab netstorage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el comando lab netstorage-review finish para terminar este
ejercicio.
542 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Una empresa de soporte de TI usa un servidor central, serverb, para alojar algunos directorios
compartidos en /remote/shares para sus grupos y usuarios. Los usuarios deben ser capaces
de iniciar sesión y tener sus directorios compartidos montados a pedido y listos para usar, en el
directorio /shares en servera.
Información importante:
• El grupo managers está compuesto por los usuarios manager1 y manager2. Tienen acceso de
lectura y escritura al directorio compartido /shares/management.
• El grupo production está compuesto por los usuarios dbuser1 y sysadmin1. Tienen acceso
de lectura y escritura al directorio compartido /shares/production.
• El grupo operators está compuesto por los usuarios contractor1 y consultant1. Tienen
acceso de lectura y escritura al directorio compartido /shares/operation.
RH199-RHEL8.2-es-1-20200928 543
capítulo 14 | Acceso al almacenamiento conectado a la red
1.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
2. Configure una asignación indirecta de montaje automático en servera con los recursos
compartidos de serverb. Cree una asignación indirecta con los archivos denominados /
etc/auto.master.d/shares.autofs para la asignación maestra y /etc/auto.shares
para el archivo de asignación. Use el directorio /remote como el punto de montaje
principal en servera. Reinicie servera para determinar si el servicio autofs se inicia
automáticamente.
2.1. Pruebe el servidor NFS antes de proceder con la configuración del servicio de
automontaje.
544 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
3. Pruebe la configuración de autofs con los distintos usuarios. Cuando finalice, cierre sesión
en servera.
3.1. Después de que la máquina servera haya terminado de arrancar, inicie sesión en
servera con el usuario student.
RH199-RHEL8.2-es-1-20200928 545
capítulo 14 | Acceso al almacenamiento conectado a la red
3.5. Explore las opciones de mount para el recurso compartido NFS montado
automáticamente.
546 RH199-RHEL8.2-es-1-20200928
capítulo 14 | Acceso al almacenamiento conectado a la red
(rw,relatime,vers=4.2,rsize=262144,wsize=262144,namlen=255,
sync,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.25.250.10,
local_lock=none,addr=172.25.250.11)
Evaluación
En workstation, ejecute el comando lab netstorage-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el comando lab netstorage-review finish para terminar este
ejercicio.
RH199-RHEL8.2-es-1-20200928 547
capítulo 14 | Acceso al almacenamiento conectado a la red
Resumen
En este capítulo, aprendió cómo hacer lo siguiente:
• Configurar el servicio de automontaje con asignaciones directas e indirectas, así como describir
sus diferencias.
548 RH199-RHEL8.2-es-1-20200928
capítulo 15
Administración de la seguridad
de redes
Meta Controlar las conexiones de red a los servicios
mediante el firewall del sistema.
RH199-RHEL8.2-es-1-20200928 549
capítulo 15 | Administración de la seguridad de redes
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de aceptar o rechazar las conexiones de red a
los servicios del sistema por medio de las reglas de firewalld.
Presentación de firewalld
Firewalld es un administrador de firewall dinámico, un front-end para el marco (framework)
nftables que usa el comando nft. Hasta la introducción de nftables, firewalld usaba el
comando iptables para configurar netfilter de forma directa, como una alternativa mejorada
del servicio de iptables. En RHEL 8, firewalld sigue siendo el front-end recomendado, ya
que gestiona conjuntos de reglas de firewall por medio de nft. Firewalld sigue siendo capaz
de leer y gestionar los archivos de configuración y los conjuntos de reglas de iptables y usa
xtables-nft-multi para traducir objetos de iptables directamente a reglas y objetos de
nftables. Si bien esto no se aconseja, firewalld se puede configurar para retornar al back-
end de iptables para casos de usos complejos en los que los conjuntos de reglas existentes de
iptables no se pueden procesar correctamente con traducciones de nft.
550 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
del firewall al clasificar todo el tráfico de la red en zonas. En función de los criterios (como la
dirección IP de la fuente de un paquete o la interfaz de red entrante), el tráfico se desvía a las
reglas de firewall para la zona adecuada. Cada zona tiene su propia lista de puertos y servicios que
están abiertos o cerrados.
nota
En el caso de equipos portátiles u otras máquinas que cambian regularmente las
redes, NetworkManager se puede usar para configurar automáticamente la zona
de firewall para una conexión. Las zonas se personalizan con reglas adecuadas para
conexiones particulares.
Firewalld verifica la dirección de origen para cada paquete que ingresa al sistema. Si esa dirección
de origen está asignada a una zona específica, rigen las reglas de esa zona. Si la dirección de
origen no está asignada a una zona, firewalld asocia el paquete con la zona para la interfaz de
red entrante, y rigen las reglas para esa zona. Si la interfaz de red no está asociada con una zona
por algún motivo, firewalld asocia el paquete con la zona predeterminada.
La zona predeterminada no es una zona separada, sino una designación para una zona existente.
Inicialmente, firewalld designa la zona public (pública) como la zona predeterminada y asigna
la interfaz de bucle invertido de lo a la zona trusted (de confianza).
La mayoría de las zonas permiten el tráfico a través del firewall que relaciona una lista de puertos
y protocolos particulares (como 631/udp) o servicios predefinidos (como ssh). Si el tráfico
no relaciona un puerto y protocolo o servicio permitidos, generalmente se rechaza. (La zona
trusted [de confianza], que permite todo el tráfico de forma predeterminada, es una excepción a
esto).
Zonas predefinidas
Firewalld cuenta con zonas predefinidas, cada una de las cuales se puede personalizar. De
forma predeterminada, todas las zonas permiten todo el tráfico entrante que sea parte de una
comunicación iniciada por el sistema y todo el tráfico saliente. En la siguiente tabla, se detalla esta
configuración de zona inicial.
home (inicio) Rechaza el tráfico entrante a menos que esté relacionado con tráfico
saliente o que relacione los servicios predefinidos ssh, mdns, ipp-
client, samba-client o dhcpv6-client.
RH199-RHEL8.2-es-1-20200928 551
capítulo 15 | Administración de la seguridad de redes
internal Rechaza el tráfico entrante a menos que esté relacionado con tráfico
(interna) saliente o que relacione los servicios predefinidos ssh, mdns, ipp-
client, samba-client o dhcpv6-client (lo mismo que la zona
home para empezar).
work (trabajo) Rechaza el tráfico entrante a menos que esté relacionado con tráfico
saliente o que relacione los servicios predefinidos ssh, ipp-client o
dhcpv6-client.
public Rechaza el tráfico entrante, a menos que esté relacionado con tráfico
(pública) saliente o que relacione los servicios predefinidos ssh o dhcpv6-
client. La zona predeterminada para interfaces de red recientemente
agregadas.
external Rechaza el tráfico entrante, a menos que esté relacionado con tráfico
(externa) saliente o que relacione el servicio predefinido ssh. El tráfico IPv4
saliente reenviado a través de esta zona es enmascarado para que
luzca como si se hubiera originado desde la dirección IPv4 de la
interfaz de red saliente.
dmz Rechaza el tráfico entrante, a menos que esté relacionado con tráfico
saliente o que relacione el servicio predefinido ssh.
block (bloqueo) Rechaza todo el tráfico entrante, a menos que esté relacionado con
tráfico saliente.
drop (caída) Deja caer todo el tráfico entrante, a menos que esté relacionado con
tráfico saliente (ni siquiera responde con errores ICMP).
Para conocer una lista de las zonas predefinidas disponibles y sus usos previstos, consulte
firewalld.zones(5).
Servicios predefinidos
Firewalld incluye un número de servicios predefinidos. Estas definiciones de servicio lo ayudan a
identificar servicios de red particulares que puede configurar. En lugar de tener que buscar los
puertos relevantes para el servicio samba-client, por ejemplo, puede especificar el servicio
samba-client compilado previamente para configurar los puertos y protocolos correctos. En la
siguiente tabla, se detallan los servicios predefinidos que se emplean en la configuración inicial de
zonas de firewall.
552 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
mdns Resolución del nombre del enlace local DNS (mDNS) multidifusión
(multicast). Tráfico a 5353/udp a las direcciones de multidifusión
(multicast) 224.0.0.251 (IPv4) o ff02::fb (IPv6).
nota
Muchos servicios predefinidos se incluyen en el paquete firewalld. Use firewall-
cmd --get-services para enumerarlos. Los archivos de configuración para los
servicios predefinidos se encuentran en /usr/lib/firewalld/services, en un
formato definido por firewalld.zone(5).
Haga clic en la opción Networking (Redes) en el menú de navegación izquierdo para mostrar la
sección Firewall en la página principal de redes. Haga clic en el enlace de Firewall para acceder a
la lista de servicios permitidos.
RH199-RHEL8.2-es-1-20200928 553
capítulo 15 | Administración de la seguridad de redes
Los servicios permitidos que se muestran en la lista son aquellos servicios que el firewall permite
actualmente. Haga clic en la flecha (>) a la izquierda del nombre del servicio para ver los detalles
del servicio. Para agregar un servicio, haga clic en el botón Add Services... (Agregar servicios) en
la esquina superior derecha de la página de Firewall Allowed Services (Servicios permitidos).
La página Add Services (Agregar servicios) muestra los servicios predefinidos disponibles.
554 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
Para seleccionar un servicio, desplácese por la lista o seleccione una opción en el cuadro de
texto Filter Services (Filtrar servicios). En el siguiente ejemplo, la cadena http se ingresa en el
cuadro de texto de búsqueda para buscar servicios que contengan esa cadena, es decir, servicios
relacionados con la web. Seleccione la casilla de verificación a la izquierda de los servicios para que
el firewall los permita. Haga clic en el botón Add Services (Agregar servicios) para completar el
proceso.
RH199-RHEL8.2-es-1-20200928 555
capítulo 15 | Administración de la seguridad de redes
La interfaz vuelve a la página de Firewall Allowed Services (Servicios permitidos), donde puede
revisar la lista actualizada de servicios permitidos.
556 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
RH199-RHEL8.2-es-1-20200928 557
capítulo 15 | Administración de la seguridad de redes
Los siguientes ejemplos de comandos configuran la zona predeterminada para dmz, asignan
todo el tráfico proveniente de la red 192.168.0.0/24 a la zona internal (interna) y abren los
puertos de red para el servicio mysql en la zona internal (interna).
nota
En situaciones donde la sintaxis básica de firewalld no es suficiente, también
puede agregar rich-rules (reglas enriquecidas), una sintaxis más expresiva, para
escribir reglas complejas. Si aun así la sintaxis de las reglas enriquecidas no es
suficiente, también puede usar reglas de Direct Configuration (Configuración
directa), la sintaxis de nft sin formato mezclada con las reglas de firewalld.
Referencias
Páginas del manual: firewall-cmd(1), firewalld(1), firewalld.zone(5),
firewalld.zones(5) y nft(8)
558 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
Ejercicio Guiado
Resultados
Debe ser capaz de configurar reglas de firewall para controlar el acceso a los servicios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use SSH para iniciar sesión en servera con el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. En el sistema servera, asegúrese de que tanto el paquete httpd como el paquete mod_ssl
estén instalados. Estos paquetes proporcionan el servidor web Apache que usted protegerá
con un firewall, y las extensiones necesarias para que el servidor web sirva contenido
mediante SSL.
RH199-RHEL8.2-es-1-20200928 559
capítulo 15 | Administración de la seguridad de redes
5. Salga de servera.
6. En workstation, intente acceder a su servidor web en servera por medio del puerto no
cifrado 80/TCP y del puerto encapsulado SSL 443/TCP. Ambos intentos deberían fallar.
560 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
8.3. Verifique que el estado del servicio firewall esté habilitado y en ejecución.
9.5. Haga clic en el botón Add Services... (Agregar servicios) ubicado en el margen
superior derecho de la página de Firewall.
RH199-RHEL8.2-es-1-20200928 561
capítulo 15 | Administración de la seguridad de redes
9.7. Haga clic en el botón Add Services (Agregar servicios) ubicado en el margen inferior
derecho de la interfaz de usuario de Add Services (Agregar servicios).
nota
Si usa Firefox para conectarse al servidor web, le solicitará la verificación del
certificado del host si pasa el firewall satisfactoriamente.
Finalizar
En workstation, ejecute el script lab netsecurity-firewalls finish para terminar este
ejercicio.
562 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
Trabajo de laboratorio
Resultados
Deberá ser capaz de configurar el firewall y los ajustes de SELinux en un host del servidor
web.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Su empresa ha decidido ejecutar una nueva aplicación web. Esta aplicación escucha en puertos
80/TCP y 1001/TCP. El puerto 22/TCP para el acceso mediante ssh también debe estar
disponible. Todos los cambios que hace deben persistir en un reinicio.
Importante: La interfaz gráfica usada en el entorno de Aprendizaje en línea de Red Hat necesita
un puerto 5900/TCP para permanecer disponible también. Este puerto también es conocido
bajo el nombre del servicio vnc-server. Si accidentalmente bloquea su acceso a serverb,
puede intentar recuperar el acceso al usar ssh para su máquina serverb desde su máquina
workstation o restablecer su máquina serverb. Si elige restablecer su máquina serverb,
debe ejecutar los scripts de configuración para este trabajo de laboratorio nuevamente. La
configuración de sus máquinas ya incluye una zona personalizada denominada ROL que abre estos
puertos.
1. En workstation, pruebe acceder al servidor web predeterminado en
http://serverb.lab.example.com y al host virtual en http://
serverb.lab.example.com:1001.
2. Inicie sesión en serverb para determinar qué está impidiendo el acceso a los servidores
web.
3. Configure SELinux para que permita que el servicio httpd escuche en el puerto 1001/TCP.
4. En workstation, pruebe acceder al servidor web predeterminado en
http://serverb.lab.example.com y al host virtual en http://
serverb.lab.example.com:1001.
5. Inicie sesión en serverb para determinar si los puertos correctos están asignados al firewall.
RH199-RHEL8.2-es-1-20200928 563
capítulo 15 | Administración de la seguridad de redes
Evaluación
En workstation, ejecute el comando lab netsecurity-review grade para confirmar que
ha realizado correctamente este ejercicio del trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab netsecurity-review finish para terminar este
ejercicio.
564 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
Solución
Resultados
Deberá ser capaz de configurar el firewall y los ajustes de SELinux en un host del servidor
web.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Su empresa ha decidido ejecutar una nueva aplicación web. Esta aplicación escucha en puertos
80/TCP y 1001/TCP. El puerto 22/TCP para el acceso mediante ssh también debe estar
disponible. Todos los cambios que hace deben persistir en un reinicio.
Importante: La interfaz gráfica usada en el entorno de Aprendizaje en línea de Red Hat necesita
un puerto 5900/TCP para permanecer disponible también. Este puerto también es conocido
bajo el nombre del servicio vnc-server. Si accidentalmente bloquea su acceso a serverb,
puede intentar recuperar el acceso al usar ssh para su máquina serverb desde su máquina
workstation o restablecer su máquina serverb. Si elige restablecer su máquina serverb,
debe ejecutar los scripts de configuración para este trabajo de laboratorio nuevamente. La
configuración de sus máquinas ya incluye una zona personalizada denominada ROL que abre estos
puertos.
1. En workstation, pruebe acceder al servidor web predeterminado en
http://serverb.lab.example.com y al host virtual en http://
serverb.lab.example.com:1001.
RH199-RHEL8.2-es-1-20200928 565
capítulo 15 | Administración de la seguridad de redes
2. Inicie sesión en serverb para determinar qué está impidiendo el acceso a los servidores
web.
2.1. En workstation, abra una sesión de SSH en serverb como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
2.4. Investigue los motivos que hicieron que el servicio httpd.service no se haya podido
iniciar.
566 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
2.5. Use el comando sealert para verificar si SELinux está impidiendo que el servicio
httpd haga referencia al puerto 1001/TCP.
...output omitted...
3. Configure SELinux para que permita que el servicio httpd escuche en el puerto 1001/TCP.
3.2. Use el comando semanage para hacer referencia al puerto 1001/TCP con el tipo
http_port_t.
3.3. Confirme si ese puerto 1001/TCP está enlazado con el tipo de puerto http_port_t.
RH199-RHEL8.2-es-1-20200928 567
capítulo 15 | Administración de la seguridad de redes
5. Inicie sesión en serverb para determinar si los puertos correctos están asignados al firewall.
5.3. Si el paso anterior no estableció la zona public (pública) nuevamente como la zona
predeterminada, corríjala con el siguiente comando:
568 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
5.4. Determine los puertos abiertos listados en la zona de red public (pública).
RH199-RHEL8.2-es-1-20200928 569
capítulo 15 | Administración de la seguridad de redes
Evaluación
En workstation, ejecute el comando lab netsecurity-review grade para confirmar que
ha realizado correctamente este ejercicio del trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab netsecurity-review finish para terminar este
ejercicio.
570 RH199-RHEL8.2-es-1-20200928
capítulo 15 | Administración de la seguridad de redes
Resumen
En este capítulo, aprendió lo siguiente:
• El subsistema netfilter permite a los módulos del kernel inspeccionar cada paquete
que atraviese el sistema. Se inspeccionan todos los paquetes de red entrantes, salientes o
reenviados.
RH199-RHEL8.2-es-1-20200928 571
572 RH199-RHEL8.2-es-1-20200928
capítulo 16
Ejecución de contenedores
Meta Obtener, ejecutar y administrar servicios livianos
simples como contenedores en un único servidor
de Red Hat Enterprise Linux.
RH199-RHEL8.2-es-1-20200928 573
capítulo 16 | Ejecución de contenedores
574 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de explicar qué es un contenedor y cómo usar uno
para administrar e implementar aplicaciones con dependencias y librerías de software con soporte.
En Red Hat Enterprise Linux, los sistemas de paquetes como RPM se usan para ayudar a
administrar las dependencias de las aplicaciones. Cuando instala el paquete httpd, el sistema
RPM garantiza que también se instalen las librerías y las demás dependencias correspondientes
para ese paquete.
Los contenedores de software son una forma de empaquetar aplicaciones para simplificar la
implementación y la administración.
Ambas tecnologías aíslan las librerías de aplicaciones y los recursos de tiempo de ejecución del
sistema operativo del host o del hipervisor y viceversa.
RH199-RHEL8.2-es-1-20200928 575
capítulo 16 | Ejecución de contenedores
Los contenedores y las máquinas virtuales son diferentes en la forma en que interactúan con el
hardware y el sistema operativo subyacente.
Virtualización:
• Permite que varios sistemas operativos se ejecuten simultáneamente en una única plataforma
de hardware.
• Usa un hipervisor para dividir el hardware en varios sistemas de hardware virtuales, lo que
permite que varios sistemas operativos se ejecuten en paralelo.
• Comparten el mismo kernel del sistema operativo, aíslan los procesos de aplicaciones
contenedorizadas del resto del sistema y usan cualquier software compatible con ese kernel.
• Requieren muchos menos recursos de hardware que las máquinas virtuales, lo que también les
permite iniciarse y detenerse rápidamente, además de reducir los requisitos de almacenamiento.
nota
Es posible que algunas aplicaciones no sean adecuadas para ejecutarse como un
contenedor. Por ejemplo, en general, es posible que las aplicaciones que acceden a
información de hardware de bajo nivel necesiten un acceso de hardware más directo
que los contenedores.
576 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
nota
Para obtener un análisis más exhaustivo de la arquitectura y seguridad del
contenedor, consulte el informe técnico "Diez capas de seguridad de contenedores"
[https://www.redhat.com/en/resources/container-security-openshift-cloud-
devops-whitepaper].
Por lo general, los contenedores son temporales, o efímeros. Puede guardar de forma permanente
los datos generados por un contenedor en ejecución en un almacenamiento persistente, pero los
contenedores, por lo general, se ejecutan cuando es necesario; luego, se detienen y se eliminan.
Se inicia un nuevo proceso de contenedor la próxima vez que se necesita un contenedor en
particular.
Las imágenes de contenedores empaquetan una aplicación junto con todas sus dependencias,
tales como:
Las imágenes de contenedores son archivos inalterables o inmutables, que incluyen todo el código
requerido y las dependencias para ejecutar un contenedor.
Un mejor diseño ejecuta cada componente, el servidor web, la base de datos y el sistema de
mensajería en contenedores separados. De esta manera, las actualizaciones y el mantenimiento de
los componentes de las aplicaciones individuales no afectan otros componentes ni la stack (pila)
de aplicaciones.
RH199-RHEL8.2-es-1-20200928 577
capítulo 16 | Ejecución de contenedores
Estas herramientas son compatibles con Open Container Initiative (OCI). Se pueden usar para
administrar los contenedores de Linux creados por motores de contenedores compatibles
con OCI, como Docker. Estas herramientas están diseñadas específicamente para ejecutar
contenedores en Red Hat Enterprise Linux en un host de contenedores de un solo nodo.
En este capítulo, usará los comandos podman y skopeo para ejecutar y administrar contenedores
e imágenes de contenedores existentes.
nota
El uso de buildah para crear sus propias imágenes de contenedores no está
incluido en el alcance de este curso, pero se trata en el curso de capacitación de
Red Hat Red Hat OpenShift I: contenedores y kubernetes (DO180).
Los contenedores rootless son más seguros, pero tienen algunas restricciones. Por ejemplo,
los contenedores rootless no pueden publicar sus servicios de red a través de los puertos con
privilegios del host de contenedores (los puertos inferiores a 1024).
Puede ejecutar contenedores directamente como root, si es necesario, pero esto debilita la
seguridad del sistema si un error permite que un atacante comprometa el contenedor.
578 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
• Es posible que los desarrolladores necesiten un flujo de trabajo automatizado para ofrecer
nuevas versiones de aplicaciones a los clientes de forma transparente y segura.
Red Hat proporciona una distribución de Kubernetes denominada Red Hat OpenShift. OpenShift
es un conjunto de componentes y servicios modulares desarrollado sobre la base de una
infraestructura de Kubernetes. Agrega características adicionales, como administración remota
basada en la Web, multiinquilino (multitenancy), monitoreo y auditoría, administración del ciclo de
vida de la aplicación e instancias de autoservicio para desarrolladores, entre otras.
Red Hat OpenShift no está incluido en el alcance de este curso, pero puede obtener más
información sobre este en https://www.openshift.com.
nota
En una empresa, los contenedores individuales no se ejecutan generalmente desde
la línea de comandos. En cambio, se prefiere ejecutar contenedores en producción
mediante una plataforma basada en Kubernetes, como Red Hat OpenShift.
Sin embargo, es posible que necesite usar comandos para trabajar con
contenedores e imágenes de forma manual o a escala pequeña. Para ello,
puede instalar un conjunto de herramientas de contenedores en un sistema
Red Hat Enterprise Linux 8.
Este capítulo se centra en este caso de uso para ayudarlo a comprender mejor
los conceptos básicos subyacentes de los contenedores, cómo funcionan y cómo
pueden ser útiles.
Referencias
Páginas del manual cgroups(7), namespaces(7), seccomp(2).
RH199-RHEL8.2-es-1-20200928 579
capítulo 16 | Ejecución de contenedores
Cuestionario
1. ¿Qué herramienta proporciona Red Hat Enterprise Linux que se usa para ejecutar
contenedores?
a. buildah
b. container
c. podman
d. skopeo
2. ¿Cuáles de los siguientes son los dos enunciados que describen la tecnología de
contenedores? (Elija dos opciones).
a. Los contenedores empaquetan sistemas operativos completos, como las máquinas
virtuales.
b. Los contenedores ejecutan un conjunto de uno o más procesos que están aislados del
resto del sistema.
c. Cada contenedor incluye su propio kernel.
d. Los contenedores proporcionan una forma estándar de empaquetar aplicaciones para
facilitar la implementación y la administración.
3. ¿Cuáles de los siguientes son los dos enunciados verdaderos sobre las imágenes de
contenedores? (Elija dos opciones).
a. Las imágenes de contenedores empaquetan una aplicación con todas las dependencias
del tiempo de ejecución que necesita.
b. Las imágenes de contenedores que funcionan con Docker no pueden funcionar con
Podman.
c. Las imágenes de contenedores solo se pueden ejecutar en un host de contenedores que
se instala con la misma versión exacta del software en la imagen.
d. Las imágenes de contenedores sirven como modelos para crear contenedores.
4. ¿Cuáles son las tres tecnologías core (centrales) que se usan para implementar
contenedores en Red Hat Enterprise Linux? (Elija tres opciones).
a. Código de hipervisor para alojar máquinas virtuales.
b. Grupos de control (cgroups) para administrar recursos.
c. Espacios de nombres (Namespaces) para aislar procesos.
d. Sistema operativo completo para compatibilidad con el host de contenedores.
e. SELinux y Seccomp para la seguridad.
580 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Solución
1. ¿Qué herramienta proporciona Red Hat Enterprise Linux que se usa para ejecutar
contenedores?
a. buildah
b. container
c. podman
d. skopeo
2. ¿Cuáles de los siguientes son los dos enunciados que describen la tecnología de
contenedores? (Elija dos opciones).
a. Los contenedores empaquetan sistemas operativos completos, como las máquinas
virtuales.
b. Los contenedores ejecutan un conjunto de uno o más procesos que están aislados del
resto del sistema.
c. Cada contenedor incluye su propio kernel.
d. Los contenedores proporcionan una forma estándar de empaquetar aplicaciones para
facilitar la implementación y la administración.
3. ¿Cuáles de los siguientes son los dos enunciados verdaderos sobre las imágenes de
contenedores? (Elija dos opciones).
a. Las imágenes de contenedores empaquetan una aplicación con todas las dependencias
del tiempo de ejecución que necesita.
b. Las imágenes de contenedores que funcionan con Docker no pueden funcionar con
Podman.
c. Las imágenes de contenedores solo se pueden ejecutar en un host de contenedores que
se instala con la misma versión exacta del software en la imagen.
d. Las imágenes de contenedores sirven como modelos para crear contenedores.
4. ¿Cuáles son las tres tecnologías core (centrales) que se usan para implementar
contenedores en Red Hat Enterprise Linux? (Elija tres opciones).
a. Código de hipervisor para alojar máquinas virtuales.
b. Grupos de control (cgroups) para administrar recursos.
c. Espacios de nombres (Namespaces) para aislar procesos.
d. Sistema operativo completo para compatibilidad con el host de contenedores.
e. SELinux y Seccomp para la seguridad.
RH199-RHEL8.2-es-1-20200928 581
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de instalar las herramientas de administración de
contenedores y ejecutar un contenedor rootless simple.
El módulo container-tools incluye paquetes de software que instalan varias herramientas. Las
herramientas usadas en este capítulo son podman y skopeo.
nota
De manera predeterminada, el sistema instala las herramientas de flujo rápido,
container-tools:rhel8 que se basan en la versión de la versión anterior
estable de las herramientas del contenedor cada tres meses.
Puede usar un registro público que contenga imágenes de terceros o puede usar un registro
privado controlado por su organización. El origen de las imágenes de contenedores es importante.
Al igual que cualquier otro paquete de software, debe saber si puede confiar en el código de la
imagen de contenedor. Los diferentes registros tienen diferentes políticas sobre si proporcionan,
evalúan y prueban las imágenes de contenedores que se les envían, y cómo lo hacen.
Red Hat distribuye las imágenes de contenedores certificadas a través de dos registros de
contenedores principales a los que puede acceder con sus credenciales de inicio de sesión de
Red Hat.
582 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
nota
En el aula se ejecuta un registro privado basado en Red Hat Quay para proporcionar
imágenes de contenedores. Consulte https://access.redhat.com/products/red-hat-
quay para obtener más información sobre este software.
registry_name/user_name/image_name:tag
Ejecución de contenedores
Para ejecutar un contenedor en su sistema local, primero debe extraer una imagen de contenedor.
Use Podman para extraer una imagen de un registro. Debe usar siempre el nombre de la imagen
completamente calificado cuando descarga imágenes. El comando podman pull extrae la
imagen que usted especifica del registro y la guarda localmente:
Después de descargarla, Podman almacena las imágenes localmente y se las puede listar con el
comando podman images:
RH199-RHEL8.2-es-1-20200928 583
capítulo 16 | Ejecución de contenedores
Para ejecutar un contenedor a partir de esta imagen, use el comando podman run. Cuando
ejecuta un comando podman run, crea e inicia un nuevo contenedor a partir de una imagen
de contenedor. Use las opciones -it para interactuar con el contenedor, si es necesario. Las
opciones -it asignan un terminal al contenedor y le permiten enviar pulsaciones de teclas a este.
Importante
Si ejecuta un contenedor con el nombre de la imagen completamente calificado,
pero la imagen aún no está almacenada localmente, el comando podman run
primero extrae la imagen del registro y, luego, se ejecuta.
nota
Muchos indicadores de Podman también tienen una forma larga alternativa; algunos
de estos se explican a continuación.
nota
Tenga en cuenta que la etiqueta latest se supone cuando no se especifica
ninguna etiqueta explícitamente.
584 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
VERSION="8.2 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.2"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.2 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.2:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
También puede ejecutar un comando rápido en un contenedor sin interactuar con él y, luego,
eliminar el contenedor una vez que se haya completado el comando. Para ello, use podman run
--rm seguido de la imagen de contenedor y un comando.
RH199-RHEL8.2-es-1-20200928 585
capítulo 16 | Ejecución de contenedores
Tenga en cuenta que el nombre de usuario y el ID dentro del contenedor son diferentes del
nombre de usuario y el ID en la máquina del host:
[root@ef2550ed815d /]# id
uid=0(root) gid=0(root) groups=0(root)
[root@ef2550ed815d /]# exit
exit
[user@host ~]$ id
uid=1000(user) gid=1000(user) groups=1000(user),10(wheel)
Referencias
Páginas del manual podman-pull(1), podman-images(1) y podman-run(1).
586 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Ejercicio Guiado
Resultados
Deberá ser capaz de instalar herramientas de administración de contenedores y usarlas para
ejecutar un contenedor.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
RH199-RHEL8.2-es-1-20200928 587
capítulo 16 | Ejecución de contenedores
4. Extraiga una imagen de contenedor del registro con el nombre completamente calificado
con el comando podman pull.
6. Enumere los procesos en ejecución dentro del contenedor. Solo verá aquellos procesos que
se ejecutan en el contenedor. No verá ningún otro proceso que se esté ejecutando en el
servidor.
bash-4.4$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
default 1 6.6 0.1 12020 3120 pts/0 Ss 21:52 0:00 /bin/bash
default 6 0.0 0.1 44596 3296 pts/0 R+ 21:52 0:00 ps aux
bash-4.4$ id
uid=1001(default) gid=0(root) groups=0(root)
bash-4.4$ exit
exit
588 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Finalizar
En la máquina workstation, ejecute el script lab containers-basic finish para terminar
este ejercicio.
RH199-RHEL8.2-es-1-20200928 589
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de buscar, recuperar, inspeccionar y administrar
imágenes de contenedores obtenidas de un registro de contenedores remoto y almacenadas en su
servidor.
[registries.search]
registries = ['registry.redhat.io', 'quay.io', 'docker.io']
# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
#
[registries.block]
registries = []
Importante
Para un usuario normal (rootless) de Podman, este archivo se almacena en el
directorio $HOME/.config/containers. Los valores de configuración en
este archivo reemplazan la configuración de todo el sistema en el archivo /etc/
containers/registries.conf.
590 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
El comando podman info muestra la información de configuración para Podman, incluidos sus
registros configurados.
Seguridad de registros
Los registros no seguros se enumeran en la sección [registries.insecure] del archivo
registries.conf. Si un registro se detalla como no seguro, las conexiones a ese registro no
están protegidas con cifrado TLS. Si un registro admite búsqueda y no es seguro, puede mostrarse
en [registries.search] y en [registries.insecure].
Los registros de contenedores también se pueden configurar para requerir autenticación. Como
se analizó anteriormente, usa el comando podman login para iniciar sesión en un registro de
contenedores que requiere autenticación.
RH199-RHEL8.2-es-1-20200928 591
capítulo 16 | Ejecución de contenedores
Ejecute el mismo comando con la opción --no-trunc para ver descripciones de imágenes más
largas:
En la siguiente tabla, se muestran algunas otras opciones útiles para el comando podman
search:
Opción Descripción
592 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Opción Descripción
• is-automated=<true|false>:
mostrar solo las imágenes creadas
automáticamente.
• is-official=<true|false>: mostrar
solo las imágenes marcadas como oficiales.
El uso de este repositorio proporciona a los clientes una capa de protección y confiabilidad contra
vulnerabilidades conocidas que podrían generarse por imágenes no sometidas a pruebas. El
comando estándar podman es compatible con los repositorios a los que hace referencia Red Hat
Container Catalog.
nota
El comando skopeo inspect puede inspeccionar diferentes formatos de imagen
de diferentes fuentes, como registros remotos o directorios locales. El mecanismo
de transporte docker:// le indica a skopeo que consulte un registro de imágenes
de contenedores.
RH199-RHEL8.2-es-1-20200928 593
capítulo 16 | Ejecución de contenedores
Cuando una imagen actualizada está disponible, el publicador cambia la etiqueta latest para
asociarla con la nueva imagen. Aún puede acceder a una imagen anterior si hace referencia a su
etiqueta de versión específica y puede ejecutar contenedores a partir de ella. También puede
eliminar la imagen anterior, extraer la imagen más reciente y usar solo la imagen más reciente
(actualizada) para ejecutar contenedores.
Por ejemplo, las imágenes proporcionadas por Red Hat se benefician de la larga experiencia
de Red Hat en la administración de vulnerabilidades de seguridad y defectos en Red Hat
Enterprise Linux y otros productos. El equipo de seguridad de Red Hat refuerza y controla estas
imágenes de alta calidad. Se reconstruyen cuando se descubren nuevas vulnerabilidades y pasan
por un proceso de control de calidad.
Para eliminar una imagen almacenada localmente, use el comando podman rmi.
594 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Referencias
Páginas del manual podman-search(1), podman-inspect(1) y skopeo(1).
RH199-RHEL8.2-es-1-20200928 595
capítulo 16 | Ejecución de contenedores
Ejercicio Guiado
Resultados
Deberá ser capaz de buscar, recuperar, inspeccionar y eliminar imágenes de contenedores
obtenidas de un registro de contenedores remoto y almacenadas en su servidor.
Andes De Comenzar
En la máquina workstation, ejecute el comando lab containers-managing start.
Este comando ejecuta un script de inicio para determinar si la máquina servera es
accesible en la red. Además, verifica y configura el registro de contenedores y garantiza que
la imagen de contenedor usada para este ejercicio esté almacenada allí.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
[[registry]]
location = "registry.lab.example.com"
insecure = true
blocked = false
3. Busque en el registro imágenes con un nombre que comience con "ubi" mediante el
comando podman search.
596 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
5. Use el comando skopeo inspect para ver información sobre una imagen en el registro
antes de descargarla.
El siguiente comando skopeo inspect es muy extenso y debe ingresarse como una sola
línea.
RH199-RHEL8.2-es-1-20200928 597
capítulo 16 | Ejecución de contenedores
"HTTPD_TLS_CERT_PATH=/etc/httpd/tls",
"HTTPD_VAR_RUN=/var/run/httpd",
"HTTPD_DATA_PATH=/var/www",
"HTTPD_DATA_ORIG_PATH=/var/www",
"HTTPD_LOG_PATH=/var/log/httpd"
],
"Entrypoint": [
"container-entrypoint"
],
"Cmd": [
"/usr/bin/run-httpd"
],
"WorkingDir": "/opt/app-root/src",
...output omitted...
6. Extraiga una imagen de contenedor del registro con el comando podman pull.
8. Use el comando podman inspect para ver información acerca de una imagen
almacenada localmente.
598 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
10. Ejecute el comando podman images para verificar que se elimine la imagen almacenada
localmente.
RH199-RHEL8.2-es-1-20200928 599
capítulo 16 | Ejecución de contenedores
Finalizar
En la máquina workstation, ejecute el script lab containers-managing finish para
terminar este ejercicio.
600 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de ejecutar contenedores con opciones
avanzadas, enumerar los contenedores que se ejecutan en el sistema e iniciar, detener y finalizar
contenedores.
Configuración de contenedores
Usó el comando podman run para iniciar contenedores a partir de imágenes de contenedores
en otro ejercicio. Cuando ejecuta un contenedor, inicia un proceso dentro del nuevo contenedor.
El proceso podría ser una aplicación, como un servidor web o de base de datos. Es posible que
esta aplicación necesite comunicarse con otros sistemas a través de la red y, por lo tanto, puede
necesitar configuración.
Para proporcionar acceso de red al contenedor, los clientes deben conectarse a los puertos en el
host de contenedores que pasan el tráfico de red a través de los puertos en el contenedor. Para
configurar el contenedor, a menudo puede pasar al contenedor algunas variables de entorno con
parámetros personalizados en lugar de modificar la imagen de contenedor.
Por ejemplo, puede mapear el puerto 8000 en el host del contenedor al puerto 8080 en el
contenedor. Es posible que el contenedor esté ejecutando un proceso httpd que escucha en
el puerto 8080. Por lo tanto, el tráfico enviado al puerto del host de contenedores 8000 sería
recibido por el servidor web que se ejecuta en el contenedor.
Configure un mapeo de puertos con podman run mediante el uso de la opción -p. Toma dos
números de puerto separados por dos puntos, el puerto en el host de contenedores, seguido por
el puerto en el contenedor.
RH199-RHEL8.2-es-1-20200928 601
capítulo 16 | Ejecución de contenedores
Puede usar el comando podman port con un nombre o ID de contenedor para enumerar
sus mapeos de puertos, o la opción -a para enumerar todos los mapeos de puertos en uso.
En el siguiente ejemplo, se enumeran todos los mapeos de puertos definidos en el host de
contenedores, y, en la salida, se muestra que el puerto 8000 en el host de contenedores se mapea
al puerto 8080/tcp en el contenedor que tiene el ID que comienza con 4a24ee199b90.
También debe asegurarse de que el firewall en su host de contenedores permita que los clientes
externos se conecten a su puerto mapeado. En el ejemplo anterior, es posible que también deba
agregar el puerto 8000/tcp a las reglas de firewall actuales en el host de contenedores:
Importante
Un contenedor rootless no puede abrir un puerto en el host de contenedores
inferior a 1024 (un "puerto privilegiado"). Es decir, -p 80:8080 no funcionará
normalmente para un contenedor que sea ejecutado por un usuario que no sea
root. Esta es una restricción para los usuarios que no sean root en un sistema
Linux. Para mapear un puerto en el host de contenedores inferior a 1024 a un puerto
de contenedores, debe ejecutar podman como usuario root o realizar otros ajustes
en el sistema.
Para obtener información sobre las variables que están disponibles y sus funciones, use el
comando podman inspect para inspeccionar la imagen de contenedor. Por ejemplo, esta es una
imagen de contenedor de uno de los registros de Red Hat:
602 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
La etiqueta url apunta a una página web en Red Hat Container Catalog que documenta las
variables de entorno y otra información acerca de cómo usar la imagen de contenedor. La etiqueta
usage (uso) proporciona un ejemplo de un comando podman típico para ejecutar la imagen.
En la página provista en los documentos de etiquetas url para esta imagen, se muestra que el
contenedor usa el puerto 3306 para el servidor de la base de datos y que las siguientes variables
de entorno están disponibles para configurar el servicio de base de datos:
MYSQL_USER
Nombre de usuario para la cuenta MySQL que se creará
MYSQL_PASSWORD
Contraseña para la cuenta de usuario
MYSQL_DATABASE
Nombre de la base de datos
MYSQL_ROOT_PASSWORD
Contraseña para el usuario root (opcional)
Use el comando podman run con la opción -e para pasar variables de entorno a un proceso
dentro del contenedor. En el siguiente ejemplo, el entorno y las opciones de puerto aplican los
parámetros de configuración al contenedor.
Administración de contenedores
Crear e iniciar un contenedor es solo el primer paso del ciclo de vida del contenedor. Este ciclo
de vida también incluye detener, reiniciar o eliminar el contenedor. Los usuarios también pueden
examinar el estado y los metadatos del contenedor para fines de depuración, actualización o
informes.
RH199-RHEL8.2-es-1-20200928 603
capítulo 16 | Ejecución de contenedores
nota
Al crear contenedores, podman se cancela si el nombre del contenedor ya está en
uso, incluso si el contenedor está en estado stopped (detenido). Esta protección
evita que los nombres de contenedores estén duplicados.
Importante
Si un contenedor que se detiene usa una imagen de contenedor, la imagen no se
puede eliminar con podman rmi ni podman image rm, a menos que incluya la
opción -f, que eliminará todos los contenedores que usan la imagen en primer
lugar.
604 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
El comando podman rm elimina un contenedor del host. El contenedor debe detenerse, a menos
que incluya la opción -f, que también elimina los contenedores en ejecución. El comando podman
rm -a elimina todos los contenedores detenidos del host. Se imprimen los ID de contenedor de
cualquier contenedor que se elimine.
El comando podman kill envía señales de UNIX al proceso principal del contenedor. Estas son
las mismas señales usadas por el comando kill.
Esto puede ser útil si el proceso principal en el contenedor puede realizar acciones cuando recibe
ciertas señales o para solucionar problemas. Si no se especifica ninguna señal, podman kill
envía la señal SIGKILL y finaliza el proceso principal y el contenedor.
Cualquier señal de UNIX puede enviarse al proceso principal. El comando podman kill acepta el
número o el nombre de la señal.
nota
El comando podman stop intenta ejecutar el comando stop para la imagen
de contenedor, pero si el comando falla, envía señales SIGTERM y SIGKILL al
contenedor.
El comando podman exec inicia un proceso adicional dentro de un contenedor que ya está en
ejecución:
RH199-RHEL8.2-es-1-20200928 605
capítulo 16 | Ejecución de contenedores
El ejemplo anterior usa el ID de contenedor para ejecutar el comando. A menudo, es más fácil usar
el nombre del contenedor en su lugar. Si desea conectar una shell interactiva, debe especificar las
opciones -i y -t para abrir una sesión interactiva y asignar un pseudoterminal para la shell.
Podman recuerda el último contenedor usado en cualquier comando. Puede usar la opción -l
para reemplazar el ID o nombre de contenedor anteriores en el comando Podman más reciente.
Referencias
Páginas del manual podman-run(1), podman-exec(1), podman-ps(1), podman-
stop(1), podman-restart(1), podman-kill(1), podman-rm(1), podman-rmi(1),
podman-images(1) y podman-port(1)
606 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Ejercicio Guiado
Resultados
Deberá ser capaz de crear y administrar contenedores.
Andes De Comenzar
En la máquina workstation, ejecute el comando lab containers-advanced start.
Este comando ejecuta un script de inicio para determinar si la máquina servera es
accesible en la red. Además, instala el cliente MariaDB en servera, verifica y configura el
registro de contenedores y garantiza que las imágenes de contenedores usadas para este
ejercicio estén almacenada allí.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
nota
Si inicia un contenedor con podman run y aún no ha extraído la imagen de
contenedor especificada de registry.lab.example.com, el comando enviará
automáticamente la imagen solicitada del registro.
RH199-RHEL8.2-es-1-20200928 607
capítulo 16 | Ejecución de contenedores
Variable Valor
MYSQL_USER user1
MYSQL_PASSWORD redhat
MYSQL_DATABASE items
MYSQL_ROOT_PASSWORD redhat
El siguiente comando podman run es muy extenso y debe ingresarse como una
sola línea. Para su conveniencia, puede copiar y pegar el siguiente comando desde el
archivo /tmp/containers-advanced/create-mydb.txt.
3.2. Confirme que el contenedor se esté ejecutando y publica los puertos correctos con el
comando podman ps.
4.1. Conéctese a MariaDB con el usuario user1 con redhat como contraseña.
Especifique el puerto 3306 y la dirección IP de localhost, que es su host de
contenedores (127.0.0.1).
608 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
4.2. Confirme que existe la base de datos items y, luego, salga de MariaDB.
5. Cree un contenedor que ejecute un servidor HTTP Apache que también inicie una shell de
Bash interactiva en el contenedor. Ejecute un comando mediante la shell del contenedor y,
luego, salga del contenedor y verifique que este ya no se esté ejecutando.
5.1. Cree un contenedor denominado myweb que ejecute un servidor HTTP Apache
2.4 que también inicie una shell interactiva en el contenedor. Use la imagen de
contenedor registry.lab.example.com/rhel8/httpd-24:1-105. El
siguiente comando podman run es muy extenso y debe ingresarse como una sola
línea.
RH199-RHEL8.2-es-1-20200928 609
capítulo 16 | Ejecución de contenedores
6.3. Ejecute el comando podman exec nuevamente, esta vez con la opción (-l) a fin de
usar el ID del contenedor del comando anterior para mostrar el promedio de carga del
sistema.
7. Cree un contenedor con el nombre myquickweb que enumere el contenido del archivo /
etc/redhat-release y, luego, salga y elimine automáticamente el contenedor. Confirme
que el contenedor se haya eliminado.
610 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
El siguiente comando podman run es muy extenso y debe ingresarse como una sola
línea.
7.2. Use el comando podman ps -a para confirmar que se haya eliminado el contenedor
myquickweb. El contenedor myquickweb no debería mostrarse en la salida del
comando podman ps -a.
8.1. Muestre todos los contenedores en ejecución o detenidos. Su salida puede variar.
RH199-RHEL8.2-es-1-20200928 611
capítulo 16 | Ejecución de contenedores
9. Salga de servera.
Finalizar
En la máquina workstation, ejecute el script lab containers-advanced finish para
terminar este ejercicio.
612 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de proporcionar almacenamiento persistente para
los datos del contenedor mediante el montaje de un directorio desde el host del contenedor
dentro de un contenedor en ejecución.
Si debe conservar los datos usados por su contenedor cuando este se reinicie, el almacenamiento
efímero no es suficiente. Por ejemplo, su contenedor podría ser un servidor de base de datos,
y usted debe conservar la base de datos cuando se reinicia el contenedor. Para soportar
aplicaciones contenedorizadas con este requisito, debe proporcionar el contenedor con
almacenamiento persistente.
Por ejemplo, un contenedor de bases de datos puede usar un directorio del host para almacenar
archivos de la base de datos. Si este contenedor de bases de datos falla, puede crear un nuevo
contenedor con el mismo directorio de host y mantener los datos de la base de datos disponibles
para las aplicaciones de clientes. No es importante para el contenedor de base de datos dónde
se almacena este directorio de hosts. Puede residir en cualquier lugar, desde una partición de un
disco duro local hasta un sistema de archivos remoto en red.
La cuenta de usuario que usa la aplicación dentro del contenedor debe tener acceso al directorio
de hosts. Asegúrese de establecer los permisos correctos en el directorio de hosts para que la
aplicación pueda acceder a él.
RH199-RHEL8.2-es-1-20200928 613
capítulo 16 | Ejecución de contenedores
Debe configurar también el directorio de host con el tipo de contexto de SELinux correcto, que
es container_file_t. Podman usa el tipo de contexto de SELinux container_file_t
para controlar a qué archivos del sistema host puede acceder el contenedor. Si hay un error
de seguridad en la capa de contenedores, la protección adicional impide que la aplicación que
se ejecuta dentro del contenedor acceda a los archivos de host que se encuentran fuera del
directorio compartido. Esta protección es particularmente importante para las aplicaciones que se
ejecutan con el usuario root dentro de un contenedor raíz.
Sin esta protección adicional de SELinux, estas aplicaciones tendrían acceso root a todos los
archivos en el sistema host y podrían comprometer tanto el host como los otros contenedores.
Podman puede establecer por usted el contexto de SELinux del directorio de host cuando inicia el
contenedor.
Montaje de un volumen
Después de crear y configurar el directorio del host, el siguiente paso es montar este directorio
en un contenedor. Para montar un directorio de host en un contenedor, agregue la opción --
volume (o -v) al comando podman run y especifique la ruta del directorio de host y la ruta de
almacenamiento del contenedor, separadas por dos puntos:
--volume host_dir:container_dir:Z
Por ejemplo, para usar el directorio de host /home/user/dbfiles para los archivos de la base
de datos MariaDB como /var/lib/mysql dentro del contenedor, use el siguiente comando. El
siguiente comando podman run es muy extenso y debe ingresarse como una sola línea.
Referencias
Página del manual podman-run(1)
614 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Ejercicio Guiado
Resultados
Deberá ser capaz de implementar un contenedor con un almacenamiento persistente.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
RH199-RHEL8.2-es-1-20200928 615
capítulo 16 | Ejecución de contenedores
3. Cree una instancia del contenedor del servidor HTTP Apache con almacenamiento
persistente.
3.2. Cree una instancia del contenedor independiente con el nombre myweb. Redirija el
puerto 8080 en el host local al puerto del contenedor 8080. Monte el directorio
~/webcontent desde el host en el directorio /var/www del contenedor.
Agregue el sufijo :Z a la opción de montaje de volumen para indicar al comando
podman que vuelva a etiquetar el directorio y su contenido. Use la imagen
registry.lab.example.com/rhel8/httpd-24:1-98. El siguiente comando
podman run es muy extenso y debe ingresarse como una sola línea.
4. En el paso anterior, usó la etiqueta 1-98 para seleccionar una versión específica de
la imagen httpd-24. Hay una versión más reciente de esa imagen en el registro
del aula. Use el comando skopeo inspect para obtener los detalles de la imagen
registry.lab.example.com/rhel8/httpd-24 y recuperar la etiqueta para esa
versión. El siguiente comando skopeo inspect es muy extenso y debe ingresarse como
una sola línea.
616 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
En la sección RepoTags, observe que hay una versión más reciente con la etiqueta 1-105.
5. Detenga y elimine el contenedor myweb y, luego, inicie un nuevo contenedor con la etiqueta
de imagen 1-105. Confirme que el contenido web en el almacenamiento persistente no ha
cambiado.
5.2. Vuelva a ejecutar el comando podman run que usó en un paso anterior para iniciar
el contenedor myweb, pero reemplace la etiqueta de imagen 1-98 con 1-105. El
siguiente comando podman run es muy extenso y debe ingresarse como una sola
línea.
5.3. Ejecute el comando podman ps para verificar que el contenedor se esté ejecutando.
Use el comando curl para confirmar que se mantengan los datos del volumen
persistente, incluso si inició un nuevo contenedor.
RH199-RHEL8.2-es-1-20200928 617
capítulo 16 | Ejecución de contenedores
Finalizar
En la máquina workstation, ejecute el script lab containers-storage finish para
terminar este ejercicio.
618 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Objetivos
Tras completar esta sección, deberá ser capaz de iniciar, detener y verificar el estado de un
contenedor como un servicio systemd.
Al crear archivos de unidad de usuario systemd para sus contenedores rootless, puede
administrarlos con comandos systemctl, de manera similar a los servicios normales. Al habilitar
esos servicios, se asegura de que los contenedores asociados se inicien cuando se inicia la
máquina host. Si su contenedor se ejecuta en modo "rootless", puede administrar estos servicios
desde una cuenta de usuario sin privilegios para aumentar la seguridad.
Cuando habilita un servicio de usuario con un usuario que no es root, ese servicio se inicia
automáticamente cuando abre su primera sesión a través de consolas gráficas o de texto o
mediante SSH. El servicio se detiene cuando cierra la última sesión. Este comportamiento difiere
de los servicios del sistema, que se inician cuando el sistema se inicia y se detienen cuando el
sistema se apaga.
Sin embargo, puede cambiar este comportamiento predeterminado y obligar a los servicios
habilitados a que se inicien con el servidor y se detengan durante el apagado mediante la
ejecución del comando loginctl enable-linger. Para revertir la operación, use el comando
loginctl disable-linger. Para ver el estado actual, use el comando loginctl show-
user username con su nombre de usuario como parámetro.
RH199-RHEL8.2-es-1-20200928 619
capítulo 16 | Ejecución de contenedores
Para controlar los nuevos servicios de usuario, use el comando systemctl con la opción --
user. En el siguiente ejemplo, se enumeran los archivos de unidad en el directorio ~/.config/
systemd/user/, se obliga a systemd a volver a cargar su configuración y, luego, se habilita y se
inicia el servicio de usuario myapp.
nota
Para usar los comandos systemctl --user, debe iniciar sesión en la consola o
directamente a través de SSH. Los comandos sudo o su no funcionan.
En la siguiente tabla, se resumen las diferencias entre los servicios de usuario y del sistema
systemd.
Servicios de
$ systemctl --user start UNIT
usuario
$ systemctl --user stop UNIT
620 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
nota
La cuenta que crea para agrupar todos los contenedores debe ser una cuenta
de usuario normal. Cuando crea una cuenta con useradd, el comando reserva
un rango de ID de usuario para los contenedores del usuario en el archivo /etc/
subuid. Sin embargo, cuando crea una cuenta del sistema con la opción --system
(o -r) de useradd, el comando no reserva un rango. Como consecuencia, no
puede iniciar contenedores rootless con cuentas del sistema.
El comando podman generate systemd usa un contenedor como modelo para crear el archivo
de configuración. Después de que se crea el archivo, debe eliminar el contenedor, ya que systemd
espera que el contenedor esté ausente inicialmente.
--name container_name
La opción --name especifica el nombre de un contenedor existente para usar como modelo
para generar el archivo de unidad. Podman también usa ese nombre para compilar el nombre
del archivo de unidad: container-container_name.service.
RH199-RHEL8.2-es-1-20200928 621
capítulo 16 | Ejecución de contenedores
--files
La opción --files le indica a Podman que genere el archivo de unidad en el directorio
actual. Sin la opción, Podman muestra el archivo en su salida estándar.
--new
La opción --new le indica a Podman que configure el servicio systemd para crear el
contenedor cuando se inicie el servicio y eliminarlo cuando este se detenga. En este modo,
el contenedor es efímero y, por lo general, necesita almacenamiento persistente para
conservar los datos. Sin la opción --new, Podman configura el servicio para iniciar y detener
el contenedor existente sin eliminarlo.
En el siguiente ejemplo, se muestran las directivas start (iniciar) y stop (detener) en el archivo de
unidad cuando ejecuta el comando podman generate systemd con la opción --new:
En start (iniciar), systemd ejecuta el comando podman run para crear y, luego, iniciar un
nuevo contenedor.
En stop (detener), systemd ejecuta el comando podman stop para detener el contenedor.
Después de que systemd haya detenido el contenedor, systemd lo elimina mediante el
comando podman rm.
En cambio, en el siguiente ejemplo, se muestran las directivas start (iniciar) y stop (detener)
cuando ejecuta el comando podman generate systemd sin la opción --new:
En start (iniciar), systemd ejecuta el comando podman start para iniciar el contenedor
existente.
En stop (detener), systemd ejecuta el comando podman stop para detener el contenedor.
Tenga en cuenta que systemd no elimina el contenedor.
622 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Importante
Los contenedores administrados con el comando systemctl son controlados por
systemd. systemd monitorea el estado de los contenedores y los reinicia si fallan.
Para permitir que un contenedor se inicie cuando se inicia la máquina host, use el comando
systemctl:
Para deshabilitar el inicio de un contenedor cuando se inicia la máquina host, use el comando
systemctl con la opción disable:
• Cuando cree el archivo de unidad con podman generate systemd, hágalo en el directorio /
etc/systemd/system, en lugar de en el directorio ~/.config/systemd/user.
RH199-RHEL8.2-es-1-20200928 623
capítulo 16 | Ejecución de contenedores
• Cuando configure el servicio del contenedor con systemctl, no usará la opción --user.
Para obtener una demostración, consulte el video de YouTube del canal de videos de Red Hat que
se detalla en las referencias al final de esta sección.
También puede obtener más información sobre Kubernetes y Red Hat OpenShift en https://
www.openshift.com. Allí hay una cantidad de recursos disponibles, que incluyen las formas
de probar OpenShift usted mismo mediante el uso de herramientas como Contenedores de
CodeReady [https://developers.redhat.com/products/codeready-containers/overview]. Consulte
https://www.openshift.com/try para obtener más información.
Referencias
Páginas del manual loginctl(1), systemd.unit(5), systemd.service(5),
subuid(5) y podman-generate-systemd(1)
Qué es OpenShift
https://www.openshift.com/learn/what-is-openshift
Introducción a OpenShift
https://www.openshift.com/try
624 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar cuentas de usuario para que los servicios de usuario systemd se inicien
cuando se inicia la máquina host.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
3. Cree una cuenta de usuario con el nombre contsvc con redhat como contraseña.
Configure la cuenta para acceder al registro de imágenes de contenedores en
RH199-RHEL8.2-es-1-20200928 625
capítulo 16 | Ejecución de contenedores
3.1. Use el comando useradd para crear la cuenta y, luego, use el comando passwd para
establecer la contraseña en redhat.
3.2. Para administrar los servicios de usuario systemd con la cuenta contsvc, debe
iniciar sesión directamente como el usuario contsvc. No puede usar los comandos
su y sudo.
Cierre sesión en servera y, luego, use el comando ssh para iniciar sesión con el
usuario contsvc. Los sistemas se configuran a fin de que usen claves SSH para la
autenticación, por lo que no se necesita una contraseña.
626 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
5.2. Cree el contenedor. Puede copiar y pegar el siguiente comando desde el archivo /
tmp/containers-services/start-container.txt. El siguiente comando
podman run es muy extenso y debe ingresarse como una sola línea.
5.3. Para verificar su trabajo, use el comando curl para acceder al contenido web en el
puerto 8080.
RH199-RHEL8.2-es-1-20200928 627
capítulo 16 | Ejecución de contenedores
6. Cree el archivo de unidad systemd para administrar el contenedor myweb con comandos
systemctl. Cuando finalice, detenga y, luego, elimine el contenedor myweb. Systemd
administra el contenedor y no espera que el contenedor exista inicialmente.
7. Fuerce systemd para que vuelva a cargar su configuración y, luego, habilite e inicie su
nuevo servicio de usuario container-myweb. Para probar su trabajo, detenga y, luego,
inicie el servicio y controle el estado del contenedor con los comandos curl y podman ps.
7.3. Use los comandos podman ps y curl para verificar que el contenedor se esté
ejecutando.
628 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Tome nota del ID del contenedor. Usará esta información para confirmar que
systemd crea un nuevo contenedor cuando reinicia el servicio.
8. Para garantizar que los servicios de usuario para el usuario contsvc se inicien con el
servidor, ejecute el comando loginctl enable-linger. Cuando finalice, reinicie
servera.
8.2. Confirme que la opción Linger esté establecida para el usuario contsvc.
8.3. Cambie al usuario root y, luego, use el comando systemctl reboot para reiniciar
servera.
RH199-RHEL8.2-es-1-20200928 629
capítulo 16 | Ejecución de contenedores
[contsvc@servera user]$ su -
Password: redhat
Last login: Fri Aug 28 07:43:40 EDT 2020 on pts/0
[root@servera ~]# systemctl reboot
Connection to servera closed by remote host.
Connection to servera closed.
[student@workstation ~]$
9. Espere a que se reinicie la máquina servera, que tarda algunos minutos y, luego, inicie
sesión en servera con el usuario contsvc. Confirme que systemd inició el contenedor
myweb y que el contenido web esté disponible.
9.1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
contsvc.
9.2. Use el comando podman ps para confirmar que el contenedor se esté ejecutando.
Finalizar
En la máquina workstation, ejecute el script lab containers-services finish para
terminar este ejercicio.
630 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Trabajo de laboratorio
Ejecución de contenedores
En este trabajo de laboratorio, configurará un contenedor en su servidor que proporciona
un servicio de base de datos MariaDB, almacena su base de datos en un almacenamiento
persistente y se inicia automáticamente con el servidor.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar systemd para que los contenedores se inicien cuando se inicia la máquina
host.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
1. En serverb, instale las herramientas del contenedor. Inicie sesión en serverb con el
usuario student y, luego, use el comando sudo. La contraseña del usuario student es
student.
2. El registro de imágenes de contenedores en registry.lab.example.com almacena la
imagen rhel8/mariadb-103 con varias etiquetas. En serverb, con el usuario podsvc,
enumere esas etiquetas y tome nota de la etiqueta con el número de versión más bajo. Usará
esa etiqueta de imagen para iniciar un contenedor más adelante en este ejercicio.
La contraseña para el usuario podsvc es redhat. Para consultar el registro
registry.lab.example.com, use la cuenta admin con la contraseña redhat321.
3. En serverb, con el usuario podsvc, cree el directorio /home/podsvc/db_data. Prepare
el directorio para que los contenedores tengan acceso de lectura/escritura. Usará este
directorio para el almacenamiento persistente.
4. En serverb, con el usuario podsvc, cree un contenedor de MariaDB independiente
denominado inventorydb. Use la imagen rhel8/mariadb-103 del registro
registry.lab.example.com y especifique la etiqueta con el número de versión más bajo
de esa imagen, que encontró en un paso anterior. Mapee el puerto 3306 en el contenedor al
RH199-RHEL8.2-es-1-20200928 631
capítulo 16 | Ejecución de contenedores
Variable Valor
MYSQL_USER operator1
MYSQL_PASSWORD redhat
MYSQL_DATABASE inventory
MYSQL_ROOT_PASSWORD redhat
Evaluación
Inicie sesión con el usuario student en la máquina workstation y use el comando lab para
calificar su trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un
resultado satisfactorio.
Finalizar
En la máquina workstation, ejecute el script lab containers-services finish para
terminar este ejercicio.
632 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
Solución
Ejecución de contenedores
En este trabajo de laboratorio, configurará un contenedor en su servidor que proporciona
un servicio de base de datos MariaDB, almacena su base de datos en un almacenamiento
persistente y se inicia automáticamente con el servidor.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar systemd para que los contenedores se inicien cuando se inicia la máquina
host.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
1. En serverb, instale las herramientas del contenedor. Inicie sesión en serverb con el
usuario student y, luego, use el comando sudo. La contraseña del usuario student es
student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
RH199-RHEL8.2-es-1-20200928 633
capítulo 16 | Ejecución de contenedores
2.2. Use el comando ssh para iniciar sesión en serverb con el usuario podsvc. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
2.4. Use el comando skopeo inspect para ver información acerca de la imagen
registry.lab.example.com/rhel8/mariadb-103. El siguiente comando
skopeo inspect es muy extenso y debe ingresarse como una sola línea.
634 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
3.2. Establezca el modo de acceso del directorio en 777 para que todos tengan acceso de
lectura/escritura.
Variable Valor
MYSQL_USER operator1
MYSQL_PASSWORD redhat
MYSQL_DATABASE inventory
MYSQL_ROOT_PASSWORD redhat
4.1. Use el comando podman run para crear el contenedor. El siguiente comando podman
run es muy extenso y debe ingresarse como una sola línea.
RH199-RHEL8.2-es-1-20200928 635
capítulo 16 | Ejecución de contenedores
5.1. Si usó sudo o su para iniciar sesión con el usuario podsvc, salga de serverb y use
el comando ssh para iniciar sesión directamente en serverb con el usuario podsvc.
Recuerde que systemd requiere que el usuario abra una sesión directa desde la
consola o a través de SSH.
5.3. Use el comando podman generate systemd para crear el archivo de unidad
systemd desde el contenedor en ejecución.
5.5. Indique a systemd que vuelva a cargar su configuración y, luego, habilite e inicie el
servicio container-inventorydb.
636 RH199-RHEL8.2-es-1-20200928
capítulo 16 | Ejecución de contenedores
5.7. Ejecute el comando loginctl enable-linger para que los servicios de usuario se
inicien automáticamente cuando se inicia el servidor.
Evaluación
Inicie sesión con el usuario student en la máquina workstation y use el comando lab para
calificar su trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un
resultado satisfactorio.
Finalizar
En la máquina workstation, ejecute el script lab containers-services finish para
terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 637
capítulo 16 | Ejecución de contenedores
Resumen
En este capítulo, aprendió lo siguiente:
• Los contenedores proporcionan una manera ligera de distribuir y ejecutar una aplicación y sus
dependencias que pueden entrar en conflicto con el software instalado en el host.
• Los contenedores se ejecutan desde imágenes de contenedores que puede descargar desde un
registro de contenedor o que puede crear usted mismo.
• Podman, provisto por Red Hat Enterprise Linux, ejecuta y administra directamente los
contenedores y las imágenes de contenedores en un único host.
• Los contenedores se pueden ejecutar como root o como contenedores rootless sin privilegios
para una mayor seguridad.
• Puede mapear puertos de red en el host del contenedor para pasar el tráfico a los servicios que
se ejecutan en sus contenedores. También puede usar variables de entorno para configurar el
software en contenedores.
638 RH199-RHEL8.2-es-1-20200928
capítulo 17
Revisión completa
Meta Revisar tareas de RHCSA Rapid Track .
RH199-RHEL8.2-es-1-20200928 639
capítulo 17 | Revisión completa
Revisión completa
Objetivos
Tras finalizar esta sección, los estudiantes deberán haber revisado y actualizado las habilidades y
los conocimientos aprendidos en RHCSA Rapid Track.
Los estudiantes pueden consultar las secciones anteriores en el libro de textos para lecturas
complementarias.
• Iniciar sesión en el sistema Linux en una consola de texto local y ejecutar comandos simples
mediante la shell.
• Configurar la autenticación basada en claves para que una cuenta de usuario inicie sesión en
sistemas remotos de forma segura y sin una contraseña.
• Describir los recursos clave disponibles en el portal de clientes de Red Hat y encontrar
información en la documentación y la base de conocimientos de Red Hat.
• Describir cómo Linux organiza los archivos y los propósitos de diversos directorios en la
jerarquía del sistema de archivos.
• Hacer que varios nombres de archivo hagan referencia al mismo archivo con enlaces duros y
simbólicos (o "blandos").
640 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Cambiar los permisos y la propiedad de los archivos con las herramientas de línea de comandos.
• Controlar los permisos predeterminados de los nuevos archivos creados por los usuarios,
explicar el efecto de los permisos especiales y usar permisos especiales y permisos
predeterminados para configurar el propietario del grupo de archivos creados en un directorio
en particular.
• Describir cómo funciona SELinux y cómo cambiar un servidor entre sus diferentes modos de
cumplimiento.
• Ajustar el tipo SELinux de un archivo para controlar los procesos que pueden acceder a él.
• Realizar una investigación básica y resolución de problemas de los accesos bloqueados por
SELinux.
• Controlar y finalizar los procesos que no están asociados con su shell y forzar la finalización de
las sesiones y los procesos de los usuarios.
• Describir qué es el promedio de carga y determinar los procesos responsables del alto uso de
recursos en un servidor.
• Dar o quitar la prioridad a procesos específicos con los comandos nice y renice.
• Registrar un sistema para su cuenta de Red Hat y asignarle autorizaciones para actualizaciones
de software y servicios de soporte mediante Red Hat Suscription Management.
RH199-RHEL8.2-es-1-20200928 641
capítulo 17 | Revisión completa
• Habilitar y deshabilitar el uso de repositorios Yum de terceros o de Red Hat por parte de un
servidor.
• Enumerar daemons del sistema y los servicios de red iniciados por el servicio systemd y las
unidades socket.
• Controlar los daemons del sistema y los servicios de red con systemctl.
• Iniciar sesión en un sistema y cambiar la contraseña root cuando la actual se haya perdido.
• Probar e inspeccionar la configuración de red actual con las utilidades de la línea de comando
• Configurar el nombre de host estático del servidor y su resolución de nombre, y probar los
resultados
• Describir la arquitectura básica de registro que emplea Red Hat Enterprise Linux para registrar
eventos
642 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Interpretar eventos en archivos syslog relevantes a los fines de resolver problemas o revisar el
estado del sistema
• Buscar e interpretar entradas en el diario del sistema para resolver problemas o revisar el estado
del sistema
• Configurar el diario del sistema para resguardar el registro de eventos cuando se reinicia un
servidor
• Mantener una sincronización de hora precisa por medio de NTP y configurar la zona horaria para
garantizar marcas de tiempo correctas para los eventos registrados por el diario y los registros
del sistema
• Optimizar el uso del espacio de almacenamiento con VDO para comprimir y desduplicar datos
en dispositivos de almacenamiento.
• Montar, usar y desmontar una exportación de NFS desde la línea de comandos y en el arranque.
• Aceptar o rechazar las conexiones de red a los servicios del sistema por medio de las reglas de
firewalld.
RH199-RHEL8.2-es-1-20200928 643
capítulo 17 | Revisión completa
• Explicar qué es un contenedor y cómo usar uno para administrar e implementar aplicaciones con
dependencias y librerías de software que necesitan las aplicaciones para funcionar.
• Ejecutar contenedores con opciones avanzadas, enumerar los contenedores que se ejecutan en
el sistema e iniciar, detener y finalizar contenedores.
• Proporcionar almacenamiento persistente para los datos del contenedor mediante el montaje
de un directorio desde el host del contenedor dentro de un contenedor en ejecución.
644 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora.
Instrucciones
Realice las siguientes tareas en serverb para completar la revisión completa:
Use el comando sudo como el usuario student con student como contraseña para
ejecutar comandos con privilegios.
RH199-RHEL8.2-es-1-20200928 645
capítulo 17 | Revisión completa
• Programe un trabajo recurrente con el usuario student que ejecuta el script /home/
student/backup-home.sh por hora entre las 7 p. m. y las 9 p. m. todos los días excepto
sábados y domingos.
Evaluación
En workstation, ejecute el script lab rhcsa-compreview1 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview1 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
Guarde los archivos o trabajos que desee conservar en otros sistemas y, luego, restablezca
workstation, servera y serverb antes del siguiente ejercicio.
646 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora.
Instrucciones
Realice las siguientes tareas en serverb para completar la revisión completa:
Use el comando sudo como el usuario student con student como contraseña para
ejecutar comandos con privilegios.
RH199-RHEL8.2-es-1-20200928 647
capítulo 17 | Revisión completa
• Programe un trabajo recurrente con el usuario student que ejecuta el script /home/
student/backup-home.sh por hora entre las 7 p. m. y las 9 p. m. todos los días excepto
sábados y domingos.
1.1.
2. Una vez que serverb se haya iniciado, acceda a la consola y observe que el proceso de
arranque se detuvo antes de tiempo. Tómese un momento para especular sobre la posible
causa de este comportamiento.
2.1. Localice el icono de la consola de serverb, según corresponda para el entorno del
aula. Abra la consola.
2.2. Si observa el error, parece que al menos ciertas partes del sistema aún están
funcionando.
2.4. Edite la entrada predeterminada del cargador de arranque en la memoria para iniciar
sesión en modo de emergencia.
Presione e para editar la entrada actual.
2.5. Use las teclas de dirección para navegar hacia la línea que comienza con linux.
Agregue systemd.unit=emergency.target en el final de la línea.
3.1. Vuelva a montar el sistema de archivos / con acceso de lectura-escritura para editarlo.
648 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
3.2. Use el comando mount -a para intentar montar todos los demás sistemas de archivos.
Observe que uno de los sistemas de archivos no se puede montar.
3.3. Edite /etc/fstab para corregir el problema. Elimine o comente la línea incorrecta.
3.5. Verifique que su /etc/fstab ahora sea correcto al intentar montar todas las entradas.
3.6. Reinicie serverb y espere a que el arranque finalice. Ahora el sistema debería arrancar
normalmente.
4.1.
5.1. En workstation, abra una sesión de SSH en serverb con el usuario student.
5.3. Cambie al destino multi-user. Use el comando sudo y, si se le solicita, use student
como la contraseña.
RH199-RHEL8.2-es-1-20200928 649
capítulo 17 | Revisión completa
5.4. Configure serverb para que use el destino multi-user como destino
predeterminado.
5.5. Reinicie serverb para verificar que el destino multi-user esté configurado como
destino predeterminado.
5.6. Después del reinicio, abra una sesión de SSH en serverb como el usuario student.
Verifique que el destino multi-user esté configurado como destino predeterminado.
6. Programe un trabajo recurrente con el usuario student que ejecuta el script /home/
student/backup-home.sh por hora entre las 7 p. m. y las 9 p. m. todos los días excepto
sábados y domingos.
Use el script backup-home.sh para programar el trabajo recurrente. Descargue el script de
copia de seguridad desde http://materials.example.com/labs/backup-home.sh.
6.2. Use el comando crontab -e para abrir el archivo crontab con el editor de texto
predeterminado.
650 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
6.4. Use el comando crontab -l para enumerar los trabajos recurrentes programados.
7.1.
Evaluación
En workstation, ejecute el script lab rhcsa-compreview1 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview1 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
Guarde los archivos o trabajos que desee conservar en otros sistemas y, luego, restablezca
workstation, servera y serverb antes del siguiente ejercicio.
RH199-RHEL8.2-es-1-20200928 651
capítulo 17 | Revisión completa
Trabajo de laboratorio
Configuración y administración de
sistemas de archivos y almacenamiento
En esta revisión, creará un volumen lógico de LVM, montará un sistema de archivos de red,
creará una partición de intercambio (swap) que se activará automáticamente en el arranque,
configurará los archivos temporales no usados para que se limpien del sistema.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar los archivos temporales no usados para que se limpien del sistema.
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora, a menos que
recién los haya restablecido al final del último ejercicio.
Instrucciones
Realice las siguientes tareas en serverb para completar la revisión completa.
• El volumen lógico vol_home debe formatearse con el tipo de sistema de archivos XFS y
montarse en /home-directories de manera persistente.
• Cree una nueva partición de 512 MiB en el disco /dev/vdc para usarla como espacio de
intercambio. Este espacio de intercambio debe activarse automáticamente en el arranque.
652 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Configure su sistema para que use un nuevo directorio llamado /run/volatile para
almacenar archivos temporales. Los archivos en este directorio deben estar sujetos a una
limpieza basada en el tiempo si no se accede a ellos durante más de 30 segundos. Los
permisos octales para el directorio deben ser 0700. Asegúrese de usar el archivo /etc/
tmpfiles.d/volatile.conf para configurar la limpieza basada en el tiempo para los
archivos en /run/volatile.
Evaluación
En workstation, ejecute el script lab rhcsa-compreview2 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview2 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
RH199-RHEL8.2-es-1-20200928 653
capítulo 17 | Revisión completa
Solución
Configuración y administración de
sistemas de archivos y almacenamiento
En esta revisión, creará un volumen lógico de LVM, montará un sistema de archivos de red,
creará una partición de intercambio (swap) que se activará automáticamente en el arranque,
configurará los archivos temporales no usados para que se limpien del sistema.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar los archivos temporales no usados para que se limpien del sistema.
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora, a menos que
recién los haya restablecido al final del último ejercicio.
Instrucciones
Realice las siguientes tareas en serverb para completar la revisión completa.
• El volumen lógico vol_home debe formatearse con el tipo de sistema de archivos XFS y
montarse en /home-directories de manera persistente.
• Cree una nueva partición de 512 MiB en el disco /dev/vdc para usarla como espacio de
intercambio. Este espacio de intercambio debe activarse automáticamente en el arranque.
654 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Configure su sistema para que use un nuevo directorio llamado /run/volatile para
almacenar archivos temporales. Los archivos en este directorio deben estar sujetos a una
limpieza basada en el tiempo si no se accede a ellos durante más de 30 segundos. Los
permisos octales para el directorio deben ser 0700. Asegúrese de usar el archivo /etc/
tmpfiles.d/volatile.conf para configurar la limpieza basada en el tiempo para los
archivos en /run/volatile.
1.1.
2.1.
3.1.
4. Cree un volumen lógico llamado vol_home con la partición de 2 GiB que creó en /dev/vdb.
Asigne al grupo de volúmenes el nombre extra_storage.
RH199-RHEL8.2-es-1-20200928 655
capítulo 17 | Revisión completa
7. Cree una nueva partición de 512 MiB en el disco /dev/vdc para usarla como espacio de
intercambio. Este espacio de intercambio debe activarse automáticamente en el momento
del arranque.
656 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
7.3. Active el espacio de intercambio para que persista después del reinicio. Use el UUID de
la estructura al crear la entrada en /etc/fstab.
8.1.
9. Configure su sistema para que use un nuevo directorio llamado /run/volatile para
almacenar archivos temporales. Los archivos en este directorio deben estar sujetos a una
limpieza basada en el tiempo si no se accede a ellos durante más de 30 segundos. Los
permisos octales para el directorio deben ser 0700. Asegúrese de usar el archivo /etc/
tmpfiles.d/volatile.conf para configurar la limpieza basada en el tiempo para los
archivos en /run/volatile.
RH199-RHEL8.2-es-1-20200928 657
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el script lab rhcsa-compreview2 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview2 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
658 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Configuración y administración de
seguridad del servidor
En esta revisión, configurará la autenticación basada en claves de SSH, cambiará la
configuración del cortafuegos, ajustará el modo de SELinux y un booleano de SELinux, y
solucionará problemas de SELinux.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas para completar la revisión completa:
• Genere claves de SSH para el usuario student en serverb. No proteja la clave privada
con una frase de contraseña.
• Configure serverb para que monte automáticamente el directorio de inicio del usuario
production5 cuando el usuario inicie sesión, con el sistema de archivos de red /home-
directories/production5. Este sistema de archivos de red se exporta desde
servera.lab.example.com. Ajuste el booleano correspondiente de SELinux para que
production5 pueda usar el directorio de inicio montado en NFS en serverb después
de la autenticación basada en claves de SSH. La contraseña del usuario production5 es
redhat.
• En serverb, ajuste la configuración del firewall para que se rechacen las conexiones de
SSH que se originan en servera.
RH199-RHEL8.2-es-1-20200928 659
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el script lab rhcsa-compreview3 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview3 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
Guarde los archivos o trabajos que desee conservar en otros sistemas y restablezca
workstation, servera y serverb.
660 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Configuración y administración de
seguridad del servidor
En esta revisión, configurará la autenticación basada en claves de SSH, cambiará la
configuración del cortafuegos, ajustará el modo de SELinux y un booleano de SELinux, y
solucionará problemas de SELinux.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas para completar la revisión completa:
• Genere claves de SSH para el usuario student en serverb. No proteja la clave privada
con una frase de contraseña.
• Configure serverb para que monte automáticamente el directorio de inicio del usuario
production5 cuando el usuario inicie sesión, con el sistema de archivos de red /home-
directories/production5. Este sistema de archivos de red se exporta desde
servera.lab.example.com. Ajuste el booleano correspondiente de SELinux para que
production5 pueda usar el directorio de inicio montado en NFS en serverb después
de la autenticación basada en claves de SSH. La contraseña del usuario production5 es
redhat.
• En serverb, ajuste la configuración del firewall para que se rechacen las conexiones de
SSH que se originan en servera.
RH199-RHEL8.2-es-1-20200928 661
capítulo 17 | Revisión completa
1.1.
2. Genere claves de SSH para el usuario student en serverb con el comando ssh-keygen.
No proteja la clave privada con una frase de contraseña.
2.1.
3.1. Use el comando ssh-copy-id para transferir la clave pública del par de claves SSH de
student en serverb a student en servera. Use student como la contraseña para
el usuario student, si se le solicita.
662 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
3.2. Use el comando ssh para verificar que el usuario student pueda iniciar sesión en
servera desde serverb sin introducir una contraseña.
...output omitted...
#SELINUX=enforcing
SELINUX=permissive
...output omitted...
4.2. Use el comando sudo systemctl reboot para reiniciar el sistema como el
superusuario.
5. Configure serverb para que monte automáticamente el directorio de inicio del usuario
production5 cuando el usuario inicie sesión, con el sistema de archivos de red /home-
directories/production5. Este sistema de archivos de red se exporta desde
servera.lab.example.com. Ajuste el booleano correspondiente de SELinux para que
production5 pueda usar el directorio de inicio montado en NFS en serverb después
de la autenticación basada en claves de SSH. La contraseña del usuario production5 es
redhat.
5.1. En serverb, use el comando sudo -i para cambiar a la cuenta de usuario root.
RH199-RHEL8.2-es-1-20200928 663
capítulo 17 | Revisión completa
Complete!
/- /etc/auto.production5
5.4. Recupere los detalles del usuario production5 para obtener la ruta del directorio de
inicio.
6.3. Use el comando ssh-keygen para generar claves SSH como production5.
664 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
6.4. Use el comando ssh-copy-id para transferir la clave pública del par de claves SSH
de production5 en servera a production5 en serverb. Use redhat como la
contraseña para el usuario production5, si se le solicita.
6.5. Use la autenticación basada en clave pública SSH en lugar de la autenticación basada
en contraseña para iniciar sesión en serverb como production5. Este comando
debería fallar.
RH199-RHEL8.2-es-1-20200928 665
capítulo 17 | Revisión completa
7.2. Use la autenticación basada en clave pública SSH en lugar de la autenticación basada
en contraseña para iniciar sesión en serverb como production5. Este comando
debe arrojar resultados satisfactorios.
8. En serverb, ajuste la configuración del firewall para que se rechacen las conexiones de SSH
que se originan en servera. El sistema servera usa la dirección IPv4 172.25.250.10.
8.1. Use el comando firewall-cmd para agregar la dirección IPv4 de servera a la zona
de firewalld denominada block.
8.2. Use el comando firewall-cmd --reload para volver a cargar los cambios en la
configuración del firewall.
9. En serverb, investigue y corrija el problema con el daemon HTTPD de Apache, que está
configurado para escuchar en el puerto 30080/TCP, pero que no se puede iniciar. Ajuste la
configuración del firewall según corresponda para que el puerto 30080/TCP esté abierto
para conexiones entrantes.
9.1. Use el comando systemctl para reiniciar el servicio httpd. Este comando no puede
reiniciar el servicio.
9.2. Use el comando systemctl status para investigar el motivo del error del servicio
httpd.
666 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Active: failed (Result: exit-code) since Mon 2019-04-15 06:42:41 EDT; 5min ago
Docs: man:httpd.service(8)
Process: 27313 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited,
status=1/FAILURE)
Main PID: 27313 (code=exited, status=1/FAILURE)
Status: "Reading configuration..."
Observe el error de permiso en la salida anterior, lo que significa que el daemon httpd
no pudo vincularse con el puerto 30080/TCP. La política de SELinux puede ser una
restricción potencial para que una aplicación se vincule con un puerto. Presione q para
salir del comando systemctl anterior.
9.3. Use el comando sealert para determinar si una política de SELinux está impidiendo
que httpd se vincule con el puerto 30080/TCP.
RH199-RHEL8.2-es-1-20200928 667
capítulo 17 | Revisión completa
9.4. Use el comando semanage port para establecer el contexto apropiado de SELinux
en el puerto 30080/TCP para que httpd se vincule con él.
9.5. Use el comando systemctl para reiniciar httpd. Este comando debe reiniciar el
servicio correctamente.
Evaluación
En workstation, ejecute el script lab rhcsa-compreview3 grade para confirmar que ha
realizado correctamente este ejercicio. Corrija los errores informados y vuelva a ejecutar el script
hasta obtener un resultado satisfactorio.
Finalizar
En workstation, ejecute lab rhcsa-compreview3 finish para terminar este ejercicio. Este
script elimina los archivos y recursos creados durante el ejercicio para garantizar que el entorno
esté limpio.
Guarde los archivos o trabajos que desee conservar en otros sistemas y restablezca
workstation, servera y serverb.
668 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Ejecución de contenedores
En esta revisión, configurará un contenedor en su servidor que proporciona contenido web
desde el almacenamiento persistente y se inicia automáticamente con el servidor.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar systemd para que los contenedores se inicien cuando se inicia la máquina
host.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
Realice las siguientes tareas en serverb con el usuario containers para completar la
revisión integral:
RH199-RHEL8.2-es-1-20200928 669
capítulo 17 | Revisión completa
Evaluación
Inicie sesión con el usuario student en la máquina workstation y use el comando lab rhcsa-
compreview4 grade para calificar su trabajo. Corrija los errores informados y vuelva a ejecutar
el comando hasta obtener un resultado satisfactorio.
Finalizar
Con el usuario student en la máquina workstation, use el comando lab rhcsa-
compreview4 finish para terminar este ejercicio.
670 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Ejecución de contenedores
En esta revisión, configurará un contenedor en su servidor que proporciona contenido web
desde el almacenamiento persistente y se inicia automáticamente con el servidor.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar systemd para que los contenedores se inicien cuando se inicia la máquina
host.
Andes De Comenzar
En la máquina workstation, inicie sesión con el usuario student con la contraseña
student.
Instrucciones
Realice las siguientes tareas en serverb con el usuario containers para completar la
revisión integral:
RH199-RHEL8.2-es-1-20200928 671
capítulo 17 | Revisión completa
1.1. Use el comando ssh para iniciar sesión en serverb con el usuario containers. Los
sistemas se configuran a fin de que usen claves SSH para la autenticación, por lo que
no se necesita una contraseña.
1.2. Use el comando sudo -i para cambiar al usuario root. La contraseña para el usuario
containers es redhat.
672 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
3.2. Use el comando podman run para crear el contenedor. El siguiente comando podman
run es muy extenso y debe ingresarse como una sola línea.
3.3. Use el comando curl para confirmar que el servidor HTTP Apache se esté ejecutando.
4. En serverb, con el usuario containers, configure systemd para que el contenedor web
se inicie automáticamente con el servidor.
RH199-RHEL8.2-es-1-20200928 673
capítulo 17 | Revisión completa
4.1. Si usó sudo o su para iniciar sesión con el usuario containers, salga de serverb
y use el comando ssh para iniciar sesión directamente en serverb con el usuario
containers.
4.3. Use el comando podman generate systemd para crear el archivo de unidad
systemd desde el contenedor en ejecución.
4.5. Indique a systemd que vuelva a cargar su configuración y, luego, habilite e inicie el
servicio container-web.
4.7. Ejecute el comando loginctl enable-linger para que los servicios de usuario se
inicien automáticamente con el servidor.
674 RH199-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Evaluación
Inicie sesión con el usuario student en la máquina workstation y use el comando lab rhcsa-
compreview4 grade para calificar su trabajo. Corrija los errores informados y vuelva a ejecutar
el comando hasta obtener un resultado satisfactorio.
Finalizar
Con el usuario student en la máquina workstation, use el comando lab rhcsa-
compreview4 finish para terminar este ejercicio.
RH199-RHEL8.2-es-1-20200928 675
676 RH199-RHEL8.2-es-1-20200928