Professional Documents
Culture Documents
The contents of this course and all its modules and related materials, including handouts to audience members, are ©
2023 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, OpenShift, Fedora, Hibernate, Ansible, RHCA, RHCE,
RHCSA, Ceph, and Gluster are trademarks or registered trademarks of Red Hat, Inc. or its subsidiaries 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 Hewlett Packard Enterprise Development LP or its subsidiaries in the United
States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is a trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open
source or commercial project.
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: Adarsh Krishnan, David Sacco, Hemant Chauhan, Roberto Velazquez, Sajith
Eyamkuzhy, Samik Sanyal, Yuvaraj Balaraju
Convenciones del documento xi
.............................................................................................................................. xi
Introducción xiii
Red Hat System Administration I ............................................................................... xiii
Orientación sobre el entorno del aula ........................................................................ xiv
Realización de ejercicios de laboratorio .................................................................... xviii
RH124-RHEL9.0-es-5-20230516 vii
Gestión de cuentas de usuarios locales ..................................................................... 179
Ejercicio Guiado: Gestión de cuentas de usuarios locales ............................................. 182
Gestión de cuentas de grupos locales ...................................................................... 185
Ejercicio Guiado: Gestión de cuentas de grupos locales .............................................. 188
Gestión de contraseñas de usuarios .......................................................................... 191
Ejercicio Guiado: Gestión de contraseñas de usuarios ................................................. 196
Trabajo de laboratorio: Gestión de usuarios y grupos locales ........................................ 201
Resumen ............................................................................................................. 207
viii RH124-RHEL9.0-es-5-20230516
Edición de archivos de configuración de red .............................................................. 401
Ejercicio Guiado: Edición de archivos de configuración de red ..................................... 405
Configuración de nombres de host y resolución de nombre ........................................ 409
Ejercicio Guiado: Configuración de nombres de host y resolución de nombre ................. 413
Trabajo de laboratorio: Gestión de redes ................................................................... 417
Resumen .............................................................................................................. 422
12. Instalación y actualización de paquetes de software 423
Registro de sistemas para Soporte de Red Hat ......................................................... 424
Cuestionario: Registro de sistemas para Soporte de Red Hat ...................................... 428
Explicación y revisión de paquetes de software RPM ................................................. 430
Ejercicio Guiado: Explicación y revisión de paquetes de software RPM ......................... 436
Instalación y actualización de paquetes de software con DNF ..................................... 440
Ejercicio Guiado: Instalación y actualización de paquetes de software con DNF .............. 449
Habilitar repositorios de software con DNF ............................................................... 454
Ejercicio Guiado: Habilitar repositorios de software con DNF ....................................... 457
Trabajo de laboratorio: Instalación y actualización de paquetes de software .................... 461
Resumen ............................................................................................................. 467
13. Acceso a los sistemas de archivos de Linux 469
Identificación de dispositivos y sistemas de archivos .................................................. 470
Cuestionario: Identificación de dispositivos y sistemas de archivos ............................... 474
Montaje y desmontaje de sistemas de archivos ......................................................... 476
Ejercicio Guiado: Montaje y desmontaje de sistemas de archivos ................................. 480
Localización de archivos en el sistema ..................................................................... 483
Ejercicio Guiado: Localización de archivos en el sistema .............................................. 491
Trabajo de laboratorio: Acceso a los sistemas de archivos de Linux .............................. 494
Resumen ............................................................................................................. 499
14. Análisis de servidores y soporte 501
Análisis y gestión de servidores remotos .................................................................. 502
Ejercicio Guiado: Análisis y gestión de servidores remotos ........................................... 515
Creación de un informe de diagnóstico ..................................................................... 519
Ejercicio Guiado: Creación de un informe de diagnóstico ............................................ 527
Detección y resolución de problemas con Red Hat Insights ......................................... 529
Cuestionario: Detección y resolución de problemas con Red Hat Insights ...................... 536
Resumen ............................................................................................................. 538
15. Revisión exhaustiva 539
Revisión exhaustiva ............................................................................................... 540
Trabajo de laboratorio: Gestionar archivos desde la línea de comandos ......................... 544
Trabajo de laboratorio: Gestión de usuarios y grupos, permisos y procesos .................... 552
Trabajo de laboratorio: Configuración y gestión de un servidor .................................... 559
Trabajo de laboratorio: Gestión de redes .................................................................. 565
Trabajo de laboratorio: Montaje de sistemas de archivos y búsqueda de archivos ............. 571
RH124-RHEL9.0-es-5-20230516 ix
x RH124-RHEL9.0-es-5-20230516
Convenciones del documento
Admoniciones
En los cursos de capacitación de Red Hat, se usan las siguientes
admoniciones:
Referencias
En las 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. Ignorar una nota no debería tener consecuencias
negativas, pero podría pasarse por alto algún truco que puede
simplificar una tarea.
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 estas
admoniciones no provocará pérdida de datos, pero podría causar
irritación y frustración.
Advertencia
No se deben ignorar las advertencias. Es muy probable que ignorar
estas admoniciones provoque pérdida de datos.
Lenguaje inclusivo
La capacitación de Red Hat actualmente está revisando su uso del lenguaje
en diversas áreas para ayudar a eliminar cualquier término que pueda ser
ofensivo. Se trata de un proceso continuo y requiere la alineación con los
productos y servicios que se abordan en los cursos de capacitación de
Red Hat. Red Hat agradece su paciencia durante este proceso.
RH124-RHEL9.0-es-5-20230516 xi
xii RH124-RHEL9.0-es-5-20230516
Introducción
RH124-RHEL9.0-es-5-20230516 xiii
Introducción
En este curso, el sistema de cómputo principal usado para las actividades prácticas de aprendizaje
es workstation. Los estudiantes también usan otras dos máquinas para estas actividades:
servera y serverb. Estos tres sistemas se encuentran en el dominio DNS lab.example.com.
Todos los sistemas de cómputo 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.
xiv RH124-RHEL9.0-es-5-20230516
Introducción
La función principal de bastion es actuar como enrutador entre la red que conecta las máquinas
de los estudiantes y la red del aula. Si bastion está apagada, las máquinas de los estudiantes
solo podrán acceder a sistemas en la red de estudiantes individuales.
nota
Al iniciar sesión en serverao serverb es posible que vea un mensaje sobre la
activación de cockpit. Puede ignorar los mensajes.
[student@serverb ~]$
RH124-RHEL9.0-es-5-20230516 xv
Introducción
Estados de la máquina
Estado de la Descripción
máquina virtual
CREATE Crea el aula de ROLE. Crea e inicia todas las máquinas virtuales
necesarias para esta aula. La creación puede tardar varios minutos en
completarse.
CREATING Se están creando las máquinas virtuales del aula de ROLE. Crea e
inicia todas las máquinas virtuales que son necesarias para esta aula.
La creación puede tardar varios minutos en completarse.
DELETE Elimina el aula de ROLE. Destruye todas las máquinas virtuales del
aula. Se perderá todo el trabajo guardado en los discos del
sistema.
xvi RH124-RHEL9.0-es-5-20230516
Introducción
Acciones de la máquina
OPEN CONSOLE Se conecta con la consola del sistema de la máquina virtual en una
nueva pestaña del explorador. Puede iniciar sesión directamente en
la máquina virtual y ejecutar los comandos cuando sea necesario.
Habitualmente, debe iniciar sesión solo en la máquina virtual
workstation y usar desde allí ssh para conectarse con las otras
máquinas virtuales.
ACTION > Shutdown Apaga la máquina virtual correctamente y preserva el contenido del
disco.
ACTION > Power Off Fuerza el apagado de la máquina virtual al tiempo que preserva el
contenido del disco. Esto equivale a desenchufar una máquina física.
Al inicio de un ejercicio, si se le indica que restablezca el nodo de una máquina virtual, haga clic en
ACTION > Reset (ACCIÓN > Reiniciar) solo para esa 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 > Reset en cada máquina virtual de la lista.
Si desea que el entorno del aula vuelva a su estado original al inicio del curso, haga clic en DELETE
(ELIMINAR) para suprimir el entorno del aula completo. Después de eliminar el trabajo de
laboratorio, haga clic en CREATE para aprovisionar un nuevo conjunto de sistemas del aula.
Advertencia
La operación DELETE (ELIMINAR) no puede deshacerse. Se perderá todo el
trabajo que haya completado en el entorno del aula.
Para ajustar los temporizadores, ubique los dos botones + en la parte inferior de la página de
gestión del curso. Haga clic en el botón + de detención automática para agregar otra hora al
temporizador de detención automática. Haga clic en el botón + de eliminación automática para
agregar otro día al temporizador de eliminación automática. La detención automática tiene un
tiempo máximo de 11 horas, y la eliminación automática un tiempo máximo de 14 días. Preste
atención y mantenga los temporizadores configurados mientras trabaja, de forma tal que el
entorno no se apague de manera imprevista. Tenga cuidado de no establecer los temporizadores
en tiempos innecesariamente prolongados, ya que podría perder el tiempo de suscripción
asignado.
RH124-RHEL9.0-es-5-20230516 xvii
Introducción
• Un ejercicio guiado es un ejercicio práctico que sigue a una sección de presentación. Lo guía
paso a paso para realizar un procedimiento.
• Un cuestionario se suele usar para corroborar el aprendizaje de los conocimientos o cuando una
actividad práctica resulta poco práctica por algún otro motivo.
• Un trabajo de laboratorio al final del capítulo es una actividad práctica que se puede calificar
para ayudarlo a verificar su aprendizaje. Usted trabajará en una serie de pasos de alto nivel, los
cuales están basados en los ejercicios guiados de ese capítulo, pero los pasos no lo guiarán en
cada comando. Se proporciona una solución con un tutorial paso a paso.
• Se usa un trabajo de laboratorio con revisión integral al final del curso. También es una actividad
práctica que se puede calificar y puede abarcar el contenido de todo el curso. Usted trabaja en
una especificación de lo que debe lograr en la actividad, sin recibir los pasos específicos para
hacerlo. Reiteramos: se proporciona una solución con un tutorial paso a paso que cumple la
especificación.
Para preparar su entorno de laboratorio al inicio de cada actividad práctica, ejecute el comando
lab start con el nombre de actividad especificado de las instrucciones de la actividad. Del
mismo modo, al final de cada actividad práctica, ejecute el comando lab finish con el mismo
nombre de actividad para eliminar todo después de la actividad. Cada actividad práctica tiene un
nombre único dentro de un curso.
Las acciones son start (iniciar), grade (calificar) o finish (finalizar). Todos los ejercicios
soportan las acciones start y finish. Solo los trabajos de laboratorio al final del capítulo y los
trabajos de laboratorio con revisión integral soportan la acción grade.
start
La acción start verifica los recursos necesarios para comenzar un ejercicio. Esto podría
incluir los ajustes de configuración, la creación de recursos, la verificación de los servicios con
requisitos previos y la verificación de los resultados necesarios de los ejercicios anteriores.
Puede realizar un ejercicio en cualquier momento, incluso sin realizar los ejercicios anteriores.
grade
Para las actividades calificables, la acción grade dirige el comando lab para evaluar su
trabajo y muestra una lista de criterios de calificación con un estado PASS o FAIL para cada
uno. Para que el estado sea PASS en todos los criterios, corrija los errores y vuelva a ejecutar
la acción grade.
finish
La acción finish elimina los recursos que se configuraron durante el ejercicio. Puede realizar
un ejercicio tantas veces como desee.
xviii RH124-RHEL9.0-es-5-20230516
Introducción
El comando lab soporta el autocompletado con tab. Por ejemplo, para enumerar todos los
ejercicios que puede iniciar, ingrese lab start y, luego, presione la tecla Tab dos veces.
RH124-RHEL9.0-es-5-20230516 xix
xx RH124-RHEL9.0-es-5-20230516
capítulo 1
RH124-RHEL9.0-es-5-20230516 1
capítulo 1 | Introducción a Red Hat Enterprise Linux
¿Qué es Linux?
Objetivos
Definir y explicar el propósito de Linux, el código abierto, las distribuciones de Linux y Red Hat
Enterprise Linux.
Linux tiene un uso generalizado en todo el mundo. Los usuarios de Internet interactúan con
aplicaciones Linux y sistemas de servidor web a diario, navegando por la World Wide Web y usando
sitios de comercio electrónico para comprar y vender productos.
Sin embargo, Linux se usa para mucho más que Internet. Linux gestiona los sistemas de punto
de venta y los mercados de valores del mundo, y también se usa en los televisores inteligentes
y en los sistemas de entretenimiento durante el vuelo, además se ejecuta en las principales
500 supercomputadoras del mundo. Linux proporciona las tecnologías centrales que impulsan
la revolución de la nube y las herramientas usadas para desarrollar la próxima generación de
aplicaciones de microservicios basadas en contenedores, tecnologías de almacenamiento basado
en software y soluciones de grandes volúmenes de datos (big data).
En el centro de datos moderno, Linux y Microsoft Windows son los sistemas operativos
predominantes. El uso de Linux continúa expandiéndose en espacios empresariales, de nube y de
dispositivos. Debido a su adopción generalizada, tiene muchas razones para aprender Linux:
• Un usuario de Windows necesita interoperar con los sistemas y las aplicaciones de Linux.
• En el desarrollo de aplicaciones, Linux suele alojar la aplicación o su tiempo de ejecución.
• En la computación en la nube, las instancias de la nube privada y pública usan Linux como el
sistema operativo.
• Las aplicaciones móviles y los dispositivos de Internet de las cosas (IoT) suelen ejecutarse en
Linux.
• Al buscar nuevas oportunidades de carrera de TI, hay mucha demanda de habilidades de Linux.
Ser de código abierto significa que puede ver todo el funcionamiento de un programa o
sistema. También se pueden probar cambios y compartirlos libremente para que otros los usen.
El modelo de código abierto facilita el desarrollo de mejoras, lo que acelera la innovación.
• Linux proporciona una interfaz de línea de comandos (CLI) para un acceso sencillo y un scripting
poderoso.
Linux se desarrolla en torno a la filosofía de diseño básica de que los usuarios pueden
realizar todas las tareas de administración desde la CLI. Esto facilita la automatización, la
implementación y el aprovisionamiento, así como simplifica la administración de sistemas locales
2 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
Los componentes del sistema se pueden actualizar y mejorar cuando sea necesario. Un sistema
Linux puede ser una estación de trabajo de desarrollo de uso general o un dispositivo de
software deliberadamente minimizado.
El código fuente es el conjunto de instrucciones legibles que se usan para hacer un programa.
El código puede estar en formato interpretativo, como un script, o compilarse en un archivo
ejecutable binario que la computadora ejecuta directamente. Al crear el código fuente, se le
aplican los derechos de autor, y su titular controla los términos bajo los cuales se puede copiar,
adaptar y distribuir el software. Los usuarios pueden usar el software de acuerdo con su licencia de
software.
Otros tipos de software tienen un código fuente de "propiedad" o "de código fuente cerrado"
que solo la persona, el equipo o la organización que lo crearon pueden verlo, cambiarlo o
distribuirlo. Por lo general, las licencias propietarias restringen al usuario a ejecutar el programa y
proporcionan acceso limitado o nulo a la fuente.
El software de código abierto es diferente. Cuando el titular de los derechos de autor proporciona
software con una licencia de código abierto, otorga a los usuarios el derecho de ejecutar el
programa y también de ver, modificar, compilar y redistribuir el código fuente a otros sin pagar
regalías. La licencia de código abierto promueve la colaboración, el intercambio, la transparencia
y la innovación rápida, ya que alienta a otras personas a realizar modificaciones y mejoras en el
software, así como a compartirlas con los demás.
El software de código abierto aún se puede proporcionar para su uso con fines comerciales. El
código abierto es una parte crítica de las operaciones comerciales de muchas organizaciones.
Algunas licencias de código abierto permiten que el código se vuelva a usar en productos de
propiedad. Cualquiera puede vender el código fuente abierto, pero las verdaderas licencias
de código abierto generalmente permiten que el cliente redistribuya el código fuente.
Los proveedores de código abierto, como Red Hat, proporcionan ayuda comercial con la
implementación, el soporte y la ampliación de soluciones basadas en productos de código abierto.
RH124-RHEL9.0-es-5-20230516 3
capítulo 1 | Introducción a Red Hat Enterprise Linux
Hay dos clases generales de licencias de código abierto que son particularmente importantes:
• Las licencias copyleft, que están diseñadas para fomentar que el código se mantenga abierto.
• Las licencias permisivas, que están diseñadas para maximizar la reusabilidad del código.
Las licencias copyleft o de "uso compartido para todos" requieren que cualquier persona que
distribuya el código fuente, con o sin cambios, deba extender esta libertad para que los demás
también puedan copiar, cambiar y distribuir el código. La ventaja de las licencias copyleft es que
ayudan a que el código existente y las mejoras a ese código sigan siendo de código abierto, para
aumentar la cantidad de código fuente abierto disponible. Las licencias copyleft más comunes
son la Licencia Pública General de GNU (GNU General Public License, GPL) y la Licencia Pública
General Reducida de GNU (GNU Lesser General Public License, LGPL).
Las licencias permisivas están diseñadas para maximizar la reusabilidad del código fuente.
Usted puede usar el código fuente para cualquier propósito siempre que se conserven las
declaraciones de derechos de autor y de licencia, incluso al volver a usar ese código bajo licencias
más restrictivas o incluso de propiedad exclusiva. Si bien las licencias permisivas facilitan la
reusabilidad del código, se arriesga a fomentar mejoras exclusivas. Algunos ejemplos de licencias
permisivas son la licencia MIT/X11, la licencia BSD simplificada y la licencia de software Apache 2.0.
En 1991, un estudiante graduado, llamado Linus Torvalds, desarrolló un kernel tipo UNIX y lo
denominó Linux, con licencia de software de código abierto bajo la GPL. El kernel es el núcleo del
sistema operativo, que gestiona el hardware, la memoria y la programación de los programas en
ejecución. El kernel de Linux se complementa con otro software de código abierto, incluidas las
utilidades y los programas del Proyecto GNU, una interfaz gráfica del sistema X Window de MIT. El
kernel de Linux también incluye otros componentes de código abierto, como el servidor de correo
Sendmail y el servidor web HTTP Apache, para convertirse en un sistema operativo completo de
código abierto parecido a UNIX.
Un desafío importante para los usuarios de Linux es reunir todas estas piezas de software
de muchas fuentes. Los primeros desarrolladores de Linux proporcionaron una distribución
de herramientas precompiladas y probadas que los usuarios pudieran descargar y usar para
configurar los sistemas Linux rápidamente.
Existen muchas distribuciones de Linux, cada una con diferentes objetivos y criterios de soporte.
Por lo general, las distribuciones tienen muchas características comunes:
4 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
La función de Red Hat es ayudar a los clientes a conectarse con la comunidad de código abierto y
sus partners para usar con eficacia las soluciones de software de código abierto. Red Hat participa
activamente en la comunidad de código abierto y la respalda. Los muchos años de experiencia han
convencido a la empresa de la importancia del código abierto para el futuro de la industria de TI.
• Red Hat participa al apoyar proyectos individuales de código abierto. Aporta código, tiempo de
desarrollo, recursos y otros medios de apoyo, a menudo en colaboración con desarrolladores de
otras distribuciones de Linux para mejorar la calidad general del software para todos.
• Red Hat auspicia e integra proyectos de código abierto en una distribución dirigida por la
comunidad, Fedora. Fedora proporciona un entorno de trabajo libre que puede servir como
laboratorio de desarrollo y espacio de prueba para las funciones que se incorporan a sus
productos CentOS Stream y RHEL.
• Red Hat estabiliza el software CentOS Stream para garantizar que esté listo para el soporte y la
estandarización a largo plazo, y lo integra en su distribución lista para usos empresariales, RHEL.
RH124-RHEL9.0-es-5-20230516 5
capítulo 1 | Introducción a Red Hat Enterprise Linux
Fedora
Fedora es un proyecto comunitario que produce y lanza un sistema operativo integral y gratuito
basado en Linux. Red Hat patrocina a la comunidad de Fedora y trabaja con sus representantes
para integrar el último software upstream en una distribución segura y de rápida actualización. El
proyecto Fedora contribuye al mundo del código abierto, y todos pueden participar.
Fedora prioriza la innovación y la excelencia por encima de la estabilidad a largo plazo. Las
principales actualizaciones ocurren cada seis meses y pueden traer cambios significativos.
Fedora admite versiones durante aproximadamente un año, lo que significa las dos últimas
actualizaciones, lo que lo hace menos adecuado para el uso de producción compatible. Fedora
sigue siendo la fuente de innovación para todo el ecosistema de Enterprise Linux. En general,
los paquetes comienzan en Fedora y se incluyen en CentOS Stream solo cuando se consideran
maduros en cuanto a estabilidad, seguridad, rendimiento y demanda de los clientes.
Por lo general, los paquetes de EPEL se crean con respecto a las versiones de RHEL. EPEL Next
es un repositorio adicional para que los encargados del mantenimiento de paquetes creen en
CentOS Stream. Este repositorio es útil cuando CentOS Stream contiene una nueva base de
datos de librería RHEL, o si un paquete EPEL tiene un requisito de compilación de versión mínima
que ya está en CentOS Stream pero aún no en RHEL.
6 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
Flujo de CentOS
CentOS Stream es el proyecto upstream para RHEL. El desarrollo de la próxima versión de
RHEL es transparente y está abierto a las contribuciones de la comunidad que pueden influir
directamente en la próxima versión. Los parches que se envían a CentOS Stream se integran
más rápido en RHEL para permitir cambios significativos durante el ciclo de vida de la versión
actual de RHEL. CentOS Stream es una distribución de distribución e integración continua, con
compilaciones nocturnas probadas y estables.
El proyecto CentOS da la bienvenida a colaboradores de todo el mundo, para dar a los derivados
de RHEL la oportunidad de contribuir a CentOS Stream para su propio beneficio. El proyecto
CentOS también tiene como objetivo promover el software de código abierto sostenible que
responda más rápido a las vulnerabilidades de seguridad, las tecnologías emergentes y los
requisitos cambiantes de los clientes.
nota
Antes de 2019, CentOS Linux era una distribución disponible de forma gratuita y sin
soporte creada por la comunidad a partir del código fuente de Red Hat después de
cada versión principal de RHEL. Aunque la comunidad de CentOS disfrutaba de un
clon de RHEL disponible de forma gratuita, este modelo tenía desventajas. Por lo
general, las contribuciones de los desarrolladores a CentOS Linux no se exportaban
a Fedora o RHEL sin un considerable esfuerzo duplicado. Además, se produjeron
retrasos significativos entre una versión de RHEL y su compilación de distribución
de CentOS correspondiente, con un retraso similar para las correcciones críticas
de seguridad, controlador y ajuste de RHEL. Red Hat cambió al modelo CentOS
Stream para abordar estos problemas.
Una ventaja de CentOS Stream es que, como fuente para el desarrollo de RHEL,
está disponible en las mismas arquitecturas que RHEL, incluidas Intel/AMD x86_64,
ARM64, IBM Power e IBM Z.
Red Hat crea versiones principales de RHEL directamente desde el proyecto de desarrollo
continuo de CentOS Stream, que se obtiene de Fedora. A diferencia del modelo de desarrollo de
RHEL anterior, las versiones se compilaron internamente con menos transparencia y la fuente se
proporcionó solo para la compilación como CentOS Linux después de la versión de RHEL. Ahora,
el nuevo modelo de desarrollo de CentOS Stream está abierto y disponible para todos, para
recibir comentarios y contribuciones, y el código está preparado para ser el próximo lanzamiento
importante de RHEL.
RH124-RHEL9.0-es-5-20230516 7
capítulo 1 | Introducción a Red Hat Enterprise Linux
RHEL usa un modelo de soporte basado en suscripción y no cobra tarifas de licencia por software
de código abierto. Las suscripciones de soporte de Red Hat proporcionan soporte de productos,
mantenimiento, actualizaciones, parches de seguridad y acceso a la base de conocimiento del
portal de clientes, utilidades y versiones descargables de productos de Red Hat.
En la siguiente tabla, se enumeran algunas diferencias clave entre Fedora, CentOS Stream y
RHEL.
Certificaciones de seguridad No No Sí
Opciones gratuitas Sí Sí Sí
Herramientas de administración No No Sí
8 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
Con UBI, los desarrolladores pueden centrar sus esfuerzos en su aplicación en la imagen de
contenedor. UBI es un conjunto de imágenes base y un conjunto de imágenes de aplicaciones
(como python, ruby, node.js, httpd o nginx). UBI también consta de un conjunto de repositorios
RPM desde los cuales puede actualizar cualquier imagen base de UBI para incluir las
dependencias del paquete que su aplicación requiere.
Como se muestra en la figura, Fedora 34 es la base de código original para RHEL 9 y para
CentOS Stream 9. A medida que se actualizan los paquetes, se envían a CentOS Stream y a la
compilación nocturna de RHEL. Las líneas continuas indican distribuciones o compilaciones que
están disponibles para uso público.
De manera similar a la relación entre Fedora Rawhide y Fedora, CentOS Stream es el entorno de
desarrollo continuo para preparar la próxima versión secundaria de RHEL. Red Hat realiza pruebas
exhaustivas de hardware, integración, dependencia y rendimiento antes de lanzar la próxima
distribución pública de RHEL.
• Fedora Linux y sus derivados están disponibles de forma gratuita desde el proyecto Fedora en
https://getfedora.org/, incluida una versión emergente de Fedora CoreOS.
• Los paquetes EPEL y EPEL Next están disponibles de forma gratuita en los repositorios de
proyectos EPEL. Aprenda a usar EPEL en https://docs.fedoraproject.org/en-US/epel/.
• CentOS Stream está disponible de forma gratuita en https://www.centos.org/centos-stream/.
RH124-RHEL9.0-es-5-20230516 9
capítulo 1 | Introducción a Red Hat Enterprise Linux
Contenedores
Puede usar las imágenes base universales de Red Hat y el contenido asociado para el desarrollo
y la implementación sin una suscripción a Red Hat. Para obtener soporte operativo y acceso a
herramientas que no son de UBI, los contenedores que se crean en UBI deben implementarse en
una plataforma soportada por Red Hat, como OpenShift o Red Hat Enterprise Linux. El acceso a
contenido no relacionado con UBI requiere una suscripción a Red Hat.
10 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
Referencias
Introducción a Red Hat Enterprise Linux
https://access.redhat.com/products/red-hat-enterprise-linux#getstarted
Fedora
https://getfedora.org/
RH124-RHEL9.0-es-5-20230516 11
capítulo 1 | Introducción a Red Hat Enterprise Linux
Cuestionario
1. ¿Cuáles de las siguientes declaraciones son beneficios del software de código abierto
para el usuario? (Elija dos opciones).
a. El código puede sobrevivir a la pérdida del desarrollador o distribuidor original.
b. Las partes confidenciales del código están protegidas y solo están disponibles para el
desarrollador original.
c. Puede aprender del código real y desarrollar aplicaciones más efectivas.
d. El código permanece abierto mientras esté en un repositorio público, pero la licencia
puede cambiar cuando se incluye con el software de código cerrado.
2. ¿Cuáles de las dos declaraciones son formas en las que Red Hat desarrolla sus
productos para el futuro e interactúa con la comunidad? (Elija dos opciones).
a. Patrocinar e integrar proyectos de código abierto en el proyecto impulsado por la
comunidad de Fedora.
b. Desarrollar herramientas de integración específicas solo disponibles en distribuciones de
Red Hat.
c. Participar en proyectos upstream.
d. Volver a empaquetar y a emitir licencias para productos de la comunidad.
3. ¿Qué dos afirmaciones describen los beneficios de Linux? (Elija dos opciones).
a. El desarrollo de Linux está completamente a cargo de voluntarios, lo que lo convierte en
un sistema operativo de bajo costo.
b. Linux es modular y puede configurarse para un escritorio gráfico completo o para un
pequeño dispositivo.
c. Linux está bloqueado en un estado conocido durante un mínimo de un año para cada
versión, lo que facilita el desarrollo de software personalizado.
d. Linux incluye una interfaz de línea de comandos potente y programable que facilita la
automatización y el aprovisionamiento.
12 RH124-RHEL9.0-es-5-20230516
capítulo 1 | Introducción a Red Hat Enterprise Linux
Solución
1. ¿Cuáles de las siguientes declaraciones son beneficios del software de código abierto
para el usuario? (Elija dos opciones).
a. El código puede sobrevivir a la pérdida del desarrollador o distribuidor original.
b. Las partes confidenciales del código están protegidas y solo están disponibles para el
desarrollador original.
c. Puede aprender del código real y desarrollar aplicaciones más efectivas.
d. El código permanece abierto mientras esté en un repositorio público, pero la licencia
puede cambiar cuando se incluye con el software de código cerrado.
2. ¿Cuáles de las dos declaraciones son formas en las que Red Hat desarrolla sus
productos para el futuro e interactúa con la comunidad? (Elija dos opciones).
a. Patrocinar e integrar proyectos de código abierto en el proyecto impulsado por la
comunidad de Fedora.
b. Desarrollar herramientas de integración específicas solo disponibles en distribuciones de
Red Hat.
c. Participar en proyectos upstream.
d. Volver a empaquetar y a emitir licencias para productos de la comunidad.
3. ¿Qué dos afirmaciones describen los beneficios de Linux? (Elija dos opciones).
a. El desarrollo de Linux está completamente a cargo de voluntarios, lo que lo convierte en
un sistema operativo de bajo costo.
b. Linux es modular y puede configurarse para un escritorio gráfico completo o para un
pequeño dispositivo.
c. Linux está bloqueado en un estado conocido durante un mínimo de un año para cada
versión, lo que facilita el desarrollo de software personalizado.
d. Linux incluye una interfaz de línea de comandos potente y programable que facilita la
automatización y el aprovisionamiento.
RH124-RHEL9.0-es-5-20230516 13
capítulo 1 | Introducción a Red Hat Enterprise Linux
Resumen
• El software de código abierto tiene código fuente que cualquiera puede usar, estudiar, modificar
y compartir libremente.
• Red Hat participa en el soporte y la contribución de código para proyectos de código abierto,
patrocina e integra el software del proyecto en distribuciones impulsadas por la comunidad y
estabiliza el software para ofrecerlo como productos compatibles listos para la empresa.
• Red Hat Enterprise Linux es la distribución de Linux con soporte comercial de código abierto
lista para empresas que proporciona Red Hat.
• Una suscripción gratuita a Red Hat Developer es un método útil para obtener información y
recursos de aprendizaje, incluidas suscripciones para el desarrollador a Red Hat Enterprise Linux
y otros productos de Red Hat.
14 RH124-RHEL9.0-es-5-20230516
capítulo 2
RH124-RHEL9.0-es-5-20230516 15
capítulo 2 | Acceso a la línea de comandos
Objetivos
Iniciar sesión en el sistema Linux y ejecutar comandos simples con la shell.
La shell predeterminada para usuarios de Red Hat Enterprise Linux (RHEL) es GNU Bourne-
Again Shell (bash). La shell bash es una versión mejorada del Bourne Shell (sh) original en
sistemas UNIX.
La shell muestra una cadena cuando espera la entrada del usuario, denominada prompt de shell.
Cuando un usuario regular inicia una shell, el prompt incluye un carácter de dólar ($) final:
[user@host ~]$
El carácter de hash (#) reemplaza al carácter de dólar ($) si la shell se está ejecutando como el
superusuario root. Este carácter indica que se trata de una shell de superusuario, lo que permite
evitar errores que pueden afectar a todo el sistema.
[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 habilitar o simplificar operaciones o posibilitar aquellas que
son difíciles de realizar a escala con herramientas gráficas.
nota
La shell bash es conceptualmente similar al intérprete de línea de comandos
cmd.exe de Microsoft Windows. Sin embargo, bash tiene un lenguaje de
programación sofisticado y es más similar a Windows PowerShell.
En macOS, la shell bash era la shell predeterminada antes de macOS 10.15 Catalina.
En macOS 10.15 Catalina, Apple cambió la shell predeterminada a la shell zsh, una
shell alternativa que también está disponible en RHEL.
16 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
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 hace. 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.
La computadora puede tener conectados un teclado y una pantalla de hardware para la entrada
y salida. 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 las consolas virtuales 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 que proporciona un aviso de inicio de sesión de texto. Si ingresa su nombre de usuario y
contraseña correctamente, inicie sesión y obtenga 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 el prompt de inicio de sesión gráfico 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 porque los usuarios no inician sesión en los servidores como espacio de
trabajo de escritorio. La carga de trabajo de un servidor puede usar de manera más
efectiva los recursos significativos que usa un entorno gráfico.
En Red Hat Enterprise Linux 9, 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 (tty2) a seis (tty6).
El entorno gráfico se inicia en la primera consola virtual que una sesión de inicio de sesión no está
usando actualmente. Normalmente, la sesión gráfica reemplaza 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 y cambia a otro 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, sale de la consola virtual y la consola física volverá
automáticamente a la pantalla de inicio de sesión gráfica de la primera consola virtual.
RH124-RHEL9.0-es-5-20230516 17
capítulo 2 | Acceso a la línea de comandos
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 8, el
comportamiento es el mismo que en Red Hat Enterprise Linux 9.
La consola en serie se usa normalmente para acceder al servidor si la tarjeta de red del servidor
se configura incorrectamente y el inicio de sesión en el servidor a través de la conexión de red
convencional se vuelve 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, por ejemplo, la informática de red virtual (VNC)
para ejecutar una interfaz gráfica en la máquina de destino.
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 OpenSSHprograma de línea de comandosssh 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 con 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 para mejorar la seguridad. Una forma alternativa de
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 con 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. Si su clave pública coincidente está
instalada en esa cuenta en ese servidor remoto, iniciarán sesión sin necesitar una contraseña.
18 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
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 el uso del método de autenticación de clave
pública. El comando ssh con 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 la conexión funcione, solo el usuario propietario del archivo puede tener acceso para
leer el archivo de clave privada. En el ejemplo anterior, donde la clave privada está en el archivo
mylab.pem, puede usar el comando chmod 600 mylab.pem para garantizar que solo el
propietario pueda leer el archivo. 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.
nota
La primera vez que inicie sesión en una nueva máquina, le mostrará una advertencia
de ssh que no puede establecer la autenticidad del host:
Cada vez que se conecta a un host remoto con ssh, el host remoto envía su clave de host para
autenticarse y para ayudar a configurar la comunicación cifrada. El comando ssh compara la clave
de host con una lista de claves de host guardadas para asegurarse de que no tiene cambios. Si
la clave de host presenta cambios, 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 interceptor. En SSH, las
claves de host protegen contra los ataques de interceptor; 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.
Recibe esta advertencia cuando 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 acepta y se guarda para
referencia futura. El proceso de inicio de sesión continuará y no deberá volver a ver este mensaje
cuando se conecte a este host. Si introduce no, la clave de host se rechaza, y se cierra la conexión.
Si la máquina local tiene una clave de host guardada y no coincide con la que envió el host remoto,
la conexión se cierra automáticamente con una advertencia.
RH124-RHEL9.0-es-5-20230516 19
capítulo 2 | Acceso a la línea de comandos
Referencias
Páginas del manual: intro(1), bash(1), pts(4), ssh(1) y ssh-keygen(1)
Se incluyen instrucciones sobre cómo leer las páginas man y otros documentos de
ayuda en línea en el próximo capítulo.
20 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Cuestionario
1. ¿Qué término describe al intérprete que ejecuta los comandos que se escriben como
cadenas?
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
RH124-RHEL9.0-es-5-20230516 21
capítulo 2 | Acceso a la línea de comandos
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
22 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Solución
1. ¿Qué término describe al intérprete que ejecuta los comandos que se escriben como
cadenas?
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
RH124-RHEL9.0-es-5-20230516 23
capítulo 2 | Acceso a la línea de comandos
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
24 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Objetivos
Iniciar sesión en el sistema Linux con el entorno de escritorio GNOME y ejecutar comandos desde
un prompt de shell en un programa de terminal.
GNOME Shell proporciona las funciones centrales de la interfaz de usuario para el entorno
de escritorio GNOME. La aplicación GNOME Shell es muy personalizable. Red Hat Enterprise
Linux 9 toma como valor predeterminado de aspecto y comportamiento de GNOME Shell el tema
"Estándar", que se usa en esta sección. Puede usar de forma predeterminada un tema "Clásico"
alternativo, que se asemeja más a la apariencia de versiones anteriores de GNOME y que se usa
en versiones anteriores de RHEL. Puede seleccionar cualquiera de los temas de forma persistente
al iniciar sesión haciendo clic en el icono de engranaje junto al botón Sign In. El icono de engranaje
está disponible después de seleccionar su cuenta, pero antes de ingresar su contraseña.
RH124-RHEL9.0-es-5-20230516 25
capítulo 2 | Acceso a la línea de comandos
La primera vez que inicia sesión como usuario nuevo, puede realizar un programa opcional de
"Recorrido" inicial para conocer las nuevas funciones de RHEL 9. Después de completarla u
omitirla, aparece la pantalla principal de GNOME.
Para revisar la documentación en GNOME Help, haga clic en el botón Activities en el lado
izquierdo de la barra superior. En el guion en la parte inferior de la pantalla, haga clic en el icono
del anillo para iniciarlo o desplace el mouse sobre el icono Help.
Barra superior: la barra que se muestra en la parte superior de la pantalla. Aparece en la vista
general de Activities y en los espacios de trabajo. La barra superior proporciona el botón
Activities y los controles de volumen, redes, acceso al calendario y de selección de métodos
de entrada del teclado (si hay más de uno configurado).
Vista general de Activities: este modo ayuda al usuario a organizar ventanas e iniciar
aplicaciones. Para ingresar a la vista general de Activities (Actividades) puede hacer clic en
el botón Activities en la esquina superior izquierda de la barra superior o presionar la tecla
Super. Busque la tecla Super (a veces denominada tecla Windows o tecla Command) cerca
de la esquina inferior izquierda de los teclados más comunes. Las tres áreas principales son
dash en la parte inferior de la pantalla, windows overview en el centro y workspace selector
en el lado derecho.
Menú del sistema: el menú en la esquina superior derecha de la barra superior proporciona
controles para ajustar el brillo de la pantalla y para activar y desactivar las conexiones de
red. En el submenú del nombre del usuario, hay opciones para ajustar la configuración de la
cuenta y cerrar la sesión del sistema. El menú del sistema también ofrece botones para abrir
la ventana Settings, bloquear la pantalla o apagar el sistema.
Guion: esta lista configurable de iconos muestra sus aplicaciones favoritas, aplicaciones
en ejecución y un botón Show Applications para seleccionar aplicaciones arbitrarias. Las
aplicaciones se pueden iniciar al hacer clic en uno de los iconos o al usar el botón Show
26 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Applications para buscar una aplicación que se usa con menos frecuencia. Al guion también
se lo denomina dock.
Selector de espacios de trabajo: área a la derecha que muestra miniaturas de los espacios de
trabajo activos y permite seleccionar espacios de trabajo y mover ventanas de un espacio de
trabajo a otro.
Puede ver y editar los métodos abreviados de teclado de GNOME que usa su cuenta. Abra
el menú del sistema en el lado derecho de la barra superior. Haga clic en el botón Settings
(Configuración) en la parte inferior del menú de la izquierda. En la ventana de la aplicación que se
abre, seleccione Keyboard en el panel izquierdo. En el panel derecho aparecerá la configuración
actual de métodos abreviados en la sección Keyboard Shortcuts > Customize Shortcuts.
nota
Algunos métodos abreviados de teclado, como las teclas de función o la tecla
Super, pueden ser difíciles de enviar a una máquina virtual. El sistema operativo
local o la aplicación que usa para acceder al escritorio gráfico de la máquina virtual
pueden capturar las pulsaciones de teclas especiales que usan esos métodos
abreviados.
RH124-RHEL9.0-es-5-20230516 27
capítulo 2 | Acceso a la línea de comandos
Importante
En los entornos actuales de capacitación virtual y de autoaprendizaje
proporcionados por Red Hat, el uso de la tecla Super puede ser complicado, ya que
es posible que su explorador web no la pase a la máquina virtual en el entorno del
aula.
Para presionar y soltar Super en el teclado en pantalla, haga clic dos veces. El
primer clic "mantiene pulsada" la teclaSuper y el segundo la suelta.
Elija entre dos métodos para cambiar entre espacios de trabajo. El primer método es presionar
Ctrl+Alt+LeftArrow o Ctrl+Alt+RightArrow para cambiar entre espacios de trabajo de
forma secuencial. El segundo es cambiar a la vista general de Activities y hacer clic en el espacio
de trabajo deseado.
Una ventaja de usar la vista general de Activities es que se puede hacer clic en las ventanas y
arrastrarlas entre espacios de trabajo mediante el uso de workspace selector en el lado derecho
de la pantalla y windows overview en el centro de la pantalla.
28 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Importante
Al igual que lo que sucede con Super, en los entornos actuales de capacitación
virtual y autoaprendizaje de Red Hat, el explorador web por lo general no transfiere
las combinaciones de teclas Ctrl+Alt a la máquina virtual en el entorno del aula.
Inicio de un terminal
Para obtener un prompt de shell en GNOME, inicie una aplicación de terminal gráfica como GNOME
Terminal. Use uno de los siguientes métodos para iniciar un terminal:
• En la vista general Activities, seleccione Terminal en dash, ya sea en Favoritos o con el botón
Show Applications.
• Busque terminal en el campo de búsqueda en la parte superior de windows overview.
• Presione la combinación de teclas Alt+F2 para abrir la ventana Enter a Command e introduzca
gnome-terminal.
Cuando abre una ventana de terminal, se muestra un prompt de shell para el usuario que inició
el programa de terminal gráfica. El prompt de shell y la barra de títulos de la ventana de terminal
indicarán el nombre de usuario actual, el nombre del host y el directorio de trabajo.
Para bloquear la pantalla, en el menú del sistema en la esquina superior derecha, haga clic en el
botón de bloqueo en la parte inferior del menú o presione Super+L (que puede ser más fácil de
recordar como Windows+L). La pantalla también se bloqueará si la sesión gráfica está inactiva
durante unos minutos.
Aparecerá una lock screen curtain que muestra la hora del sistema y el nombre del usuario que
inició sesión. Para desbloquear la pantalla, puede presionar Enter, Space o hacer clic en el botón
izquierdo del mouse. Luego, ingrese la contraseña de ese usuario en lock screen.
Para cerrar sesión y finalizar la sesión gráfica actual, seleccione el menú del sistema en la esquina
superior derecha de la barra superior y seleccione Power Off/Log Out > Log Out. Aparece una
ventana que ofrece la opción para Cancel o confirmar la acción Log Out.
RH124-RHEL9.0-es-5-20230516 29
capítulo 2 | Acceso a la línea de comandos
Para reiniciar el sistema, desde el menú del sistema en la esquina superior derecha, seleccione
Power Off/Log out > Restart. Aparece una ventana que ofrece la opción para Cancel o confirmar
la acción Restart. Si no elige nada, el sistema se reiniciará automáticamente después de 60
segundos.
Referencias
Ayuda de GNOME
• yelp
• yelp help:gnome-help/shell-introduction
30 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Ejercicio Guiado
Resultados
• Iniciar sesión en un sistema Linux con el entorno de escritorio GNOME 40.
• Ejecutar comandos desde un prompt de shell en un programa de terminal.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en workstation como student con la contraseña student.
Importante
El script finish restablece la contraseña del usuario student a student. Debe
ejecutar el script al final del ejercicio.
2.1. Abra una ventana Terminal y use el comando passwd en el prompt de shell.
En el entorno de aprendizaje virtual con teclado visual, presione la tecla Super
dos veces para ingresar a la vista general de Activities. Escriba terminal y, luego,
presione Enter para iniciar Terminal.
2.2. En la ventana Terminal que aparece, escriba passwd en el prompt de shell. Cambie
la contraseña student de student a 55TurnK3y.
RH124-RHEL9.0-es-5-20230516 31
capítulo 2 | Acceso a la línea de comandos
3. Cierre sesión y vuelva a iniciarla con el usuario student con la contraseña 55TurnK3y
para verificar el cambio de contraseña.
3.3. Haga clic en Log Out en el cuadro de diálogo de confirmación que se muestra.
3.4. En la pantalla de inicio de sesión GNOME, haga clic en la cuenta de usuario student.
Escriba 55TurnK3y como contraseña cuando se le indique.
4. Bloquee la pantalla.
4.1. En el menú del sistema en la esquina superior derecha, presione el botón Lock.
5. Desbloquee la pantalla.
6. Determine cómo apagar workstation desde la interfaz gráfica, pero haga clic en Cancel
(Cancelar) para cancelar la operación sin apagar el sistema.
6.1. En el menú del sistema en la esquina superior derecha, seleccione Power Off/Log
Out > Power Off. Aparecerá un cuadro de diálogo con las opciones Cancel o Power
Off la máquina.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
32 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Objetivos
Ahorrar tiempo en la ejecución de comandos desde un prompt de shell con los accesos directos de
Bash.
Cuando esté listo para ejecutar un comando, presione la tecla Enter. Escriba cada comando en
una línea separada. La salida del comando se muestra antes de que aparezca el siguiente prompt
de shell.
Para escribir más de un comando en una sola línea, use un punto y coma (;) como separador
de comando. El punto y coma pertenece a la clase de caracteres denominada metacaracteres
que tienen una interpretación especial para bash. En este caso, la salida de ambos comandos se
muestra antes de que aparezca el siguiente prompt de shell.
RH124-RHEL9.0-es-5-20230516 33
capítulo 2 | Acceso a la línea de comandos
El comando passwd sin opciones cambia la contraseña del usuario actual. Para cambiar la
contraseña, primero especifique la contraseña original para la cuenta. De manera predeterminada,
el comando passwd se configura para solicitar una contraseña más sólida, que esté compuesta
por letras minúsculas, letras mayúsculas, números y símbolos, y que no se base en una palabra del
diccionario. El superusuario o un usuario con privilegios pueden usar el comando passwd para
cambiar las contraseñas de otros usuarios.
Linux no requiere de extensiones de nombre de archivo para clasificar los archivos por tipo. El
comando file escanea el encabezado compilado de un archivo en busca de un magic number
de 2 dígitos y muestra su tipo. Los archivos de texto se reconocen porque no están compilados.
Para mostrar el contenido de varios archivos, agregue los nombres de archivo al comando cat
como argumentos:
34 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Algunos archivos son largos y es posible que necesiten más espacio del que proporciona el
terminal. El comando cat no muestra el contenido de un archivo como páginas. El comando less
muestra una página del archivo a la vez y le permite desplazarse a su gusto.
Use el comando less para avanzar y retroceder por las páginas de los archivos que son más
largos de lo que puede mostrar una ventana de terminal. Use las teclas UpArrow y DownArrow
para desplazarse hacia arriba y hacia abajo. Presione q para salir del comando.
El comando wc cuenta líneas, palabras y caracteres en un archivo. Use las opciones -l, -w o -c
para mostrar solo la cantidad dada de líneas, palabras o caracteres, respectivamente.
RH124-RHEL9.0-es-5-20230516 35
capítulo 2 | Acceso a la línea de comandos
El autocompletado con tab puede usarse para completar nombres de archivo cuando se escriben
como argumentos para comandos. Presione la tecla Tab para completar el nombre de archivo
tanto como sea posible. Si se presiona la tecla Tab por segunda vez, provoca que la shell enumere
todos los archivos que coinciden con el patrón actual. Escriba caracteres adicionales hasta que el
nombre sea único; a continuación, use el autocompletado con tab para finalizar el comando.
Use el comando useradd para crear usuarios en el sistema. El comando useradd tiene muchas
opciones que pueden ser difíciles de recordar. Al usar la opción de completar con tabulación,
puede completar el nombre de la opción con un mínimo de escritura.
Para escribir un comando en más de una línea, use un carácter de barra invertida (\), que se
conoce como el carácter de escape. El carácter de barra invertida ignora el significado del
siguiente carácter.
Anteriormente aprendió que para completar la entrada de un comando, debe presionar la tecla
Enter, el carácter de nueva línea. Con el escape del carácter de nueva línea, la shell se traslada a
una nueva línea de comando sin ejecutar el comando. La shell reconoce la solicitud mostrando un
36 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
prompt de continuación en una nueva línea vacía, denominado prompt adicional, y usa el carácter
mayor que (>) de forma predeterminada. Los comandos pueden continuarse a lo largo de muchas
líneas.
Uno de los problemas con el uso por parte del prompt adicional del carácter mayor que (>) es
que los estudiantes nuevos pueden insertar erróneamente el carácter adicional mayor que como
parte del comando escrito. A continuación, la shell interpreta un carácter mayor que escrito como
redirección de salida, que el usuario no pretendía. La redirección de salida se trata en un próximo
capítulo. Para evitar confusiones, en este manual no se mostrarán prompts adicionales en las
salidas de pantalla. Un usuario aún ve el prompt adicional en la ventana de la shell, pero el material
del curso muestra intencionalmente solo los caracteres que se deben escribir, como se muestra en
el siguiente ejemplo.
El carácter de signo de admiración, (!), es un metacarácter para expandir los comandos anteriores
sin volver a escribirlos. El comando !number se expande hasta el comando que coincide con
el número especificado. El comando !string se expande hasta el comando más reciente que
comienza con la cadena especificada.
RH124-RHEL9.0-es-5-20230516 37
capítulo 2 | Acceso a la línea de comandos
Las teclas de flecha pueden usarse para navegar por los comandos anteriores en el historial de
la shell. La tecla UpArrow edita el comando anterior en la lista de historial. La tecla DownArrow
edita el comando siguiente en la lista de historial. LeftArrow y RightArrow mueven el cursor
hacia la izquierda y hacia la derecha en el comando actual de la lista del historial para que pueda
editar el comando antes de ejecutarlo.
Use la combinación de teclas Esc+. o Alt+. para insertar la última palabra del comando anterior
en la ubicación actual del cursor. El uso repetido de la combinación de teclas reemplaza ese
texto con la última palabra de comandos anteriores en el historial. La combinación de teclas
Alt+. es particularmente conveniente porque puede mantener presionado Alt y presionar .
repetidamente para pasar con facilidad por los comandos anteriores.
Estos comandos de edición de la línea de comandos son los más útiles para los nuevos usuarios.
Para otros comandos, consulte la página del manual bash(1).
Referencias
Páginas del manual: bash(1), date(1), file(1), magic(5), cat(1), more(1), less(1),
head(1), passwd(1), tail(1) y wc(1)
38 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Cuestionario
1. ¿Qué comando de Bash muestra las últimas cinco líneas del archivo /var/log/
messages ?
a. head -n 10 /var/log/messages
b. tail 10 /var/log/messages
c. tail -n 5 /var/log/messages
d. tail -l 10 /var/log/messages
e. less /var/log/messages
2. ¿Qué método abreviado o comando de Bash separa los comandos en la misma línea?
a. Presionar Tab
b. history
c. ;
d. !string
e. Presionar Esc+.
RH124-RHEL9.0-es-5-20230516 39
capítulo 2 | Acceso a la línea de comandos
40 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Solución
1. ¿Qué comando de Bash muestra las últimas cinco líneas del archivo /var/log/
messages ?
a. head -n 10 /var/log/messages
b. tail 10 /var/log/messages
c. tail -n 5 /var/log/messages
d. tail -l 10 /var/log/messages
e. less /var/log/messages
2. ¿Qué método abreviado o comando de Bash separa los comandos en la misma línea?
a. Presionar Tab
b. history
c. ;
d. !string
e. Presionar Esc+.
RH124-RHEL9.0-es-5-20230516 41
capítulo 2 | Acceso a la línea de comandos
42 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Trabajo de laboratorio
Resultados
• Ejecutar correctamente programas simples con la línea de comandos de la shell Bash.
• Ejecutar comandos para identificar tipos de archivos y visualizar partes de archivos de
texto.
• Practicar el uso de algunos "atajos" del historial de comandos de Bash para repetir
comandos o partes de comandos con más eficiencia.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando date para mostrar la fecha y hora actuales.
2. Muestre la hora actual en reloj de 24 horas (por ejemplo, 13:57). Sugerencia: la cadena de
formato que se muestra en la salida es %R.
3. ¿Qué tipo de archivo es /home/student/zcat? ¿Es legible por el ojo humano?
4. Use el comando wc y los accesos directos de Bash para visualizar el tamaño del archivo zcat.
5. Muestre las primeras 10 líneas del archivo zcat.
6. Muestre las últimas 10 líneas del archivo zcat.
7. Repita el comando anterior exactamente con cuatro o menos pulsaciones del teclado.
8. Use el comando tail, opción -n 20, para visualizar las últimas 20 líneas del archivo.
Use la edición de la línea de comandos para hacer esta tarea con una cantidad mínima de
pulsaciones.
9. Use el historial de shell para ejecutar el comando date +%R de nuevo.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
RH124-RHEL9.0-es-5-20230516 43
capítulo 2 | Acceso a la línea de comandos
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
44 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Solución
Resultados
• Ejecutar correctamente programas simples con la línea de comandos de la shell Bash.
• Ejecutar comandos para identificar tipos de archivos y visualizar partes de archivos de
texto.
• Practicar el uso de algunos "atajos" del historial de comandos de Bash para repetir
comandos o partes de comandos con más eficiencia.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando date para mostrar la fecha y hora actuales.
2. Muestre la hora actual en reloj de 24 horas (por ejemplo, 13:57). Sugerencia: la cadena de
formato que se muestra en la salida es %R.
2.1. Use el argumento +%R con el comando date para mostrar la hora actual en reloj de 24
horas.
4. Use el comando wc y los accesos directos de Bash para visualizar el tamaño del archivo zcat.
RH124-RHEL9.0-es-5-20230516 45
capítulo 2 | Acceso a la línea de comandos
4.1. Puede usar el comando wc para mostrar la cantidad de líneas, palabras y bytes en el
script zcat. En lugar de volver a escribir el nombre del archivo, use el atajo del historial
de Bash Esc+. (presione las teclas Esc y . al mismo tiempo) para volver a usar el
argumento del comando anterior.
5.1. El comando head muestra el inicio del archivo. Intente usar el atajo Esc+. de nuevo.
6.1. Use el comando tail para mostrar las últimas 10 líneas del archivo zcat.
case $1 in
--help) printf '%s\n' "$usage" || exit 1;;
--version) printf '%s\n' "$version" || exit 1;;
esac
7. Repita el comando anterior exactamente con cuatro o menos pulsaciones del teclado.
7.1. Repita el comando anterior exactamente con cuatro o menos pulsaciones del teclado.
Presione la tecla UpArrow una vez para desplazarse hacia atrás un comando a través
del historial de comandos y luego presione Enter (usa dos teclas). Una alternativa
sería ingresar el comando de atajo !! y luego presionar Enter (usa cuatro teclas) para
ejecutar el comando más reciente en el historial de comandos. Pruebe ambos métodos.
[student@workstation]$ !!
tail zcat
With no FILE, or when FILE is -, read standard input.
46 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
case $1 in
--help) printf '%s\n' "$usage" || exit 1;;
--version) printf '%s\n' "$version" || exit 1;;
esac
8. Use el comando tail, opción -n 20, para visualizar las últimas 20 líneas del archivo.
Use la edición de la línea de comandos para hacer esta tarea con una cantidad mínima de
pulsaciones.
8.1. Use la tecla UpArrow para mostrar el comando anterior. A continuación, use la
combinación de teclas Ctrl+A para mover el cursor al principio de la línea. A
continuación, use la combinación de teclas Ctrl+RightArrow para pasar a la
siguiente palabra. Luego, agregue la opción -n 20 y presione Enter para ejecutar el
comando.
case $1 in
--help) printf '%s\n' "$usage" || exit 1; exit;;
--version) printf '%s\n' "$version" || exit 1; exit;;
esac
9.1. Use el comando history para visualizar la lista de comandos anteriores e identificar el
comando específico date que se ejecutará. Use !number para ejecutar el comando,
donde number es el número de comando que se usará desde la salida del comando
history.
Su historial de shell puede ser diferente del que figura en el siguiente ejemplo.
Determine el número de comando que se usará en función de la salida de su propio
comando history.
RH124-RHEL9.0-es-5-20230516 47
capítulo 2 | Acceso a la línea de comandos
3 file zcat
4 wc zcat
5 head zcat
6 tail zcat
7 tail -n 20 zcat
8 history
[student@workstation ~]$ !2
date +%R
14:02
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
48 RH124-RHEL9.0-es-5-20230516
capítulo 2 | Acceso a la línea de comandos
Resumen
• 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 file detecta el comienzo de un archivo y muestra qué tipo de archivo es.
• Puede usar la compleción con tabulación para completar los nombres de archivo al escribirlos
como argumentos para comandos.
• Puede usar la interfaz gráfica para muchas tareas administrativas. Puede deshabilitar la interfaz
para preservar los recursos para las aplicaciones en ejecución.
• Puede escribir muchos comandos en la misma línea usando el carácter de punto y coma ; y
puede ejecutar un solo comando en varias líneas usando el carácter de barra invertida \.
RH124-RHEL9.0-es-5-20230516 49
50 RH124-RHEL9.0-es-5-20230516
capítulo 3
RH124-RHEL9.0-es-5-20230516 51
capítulo 3 | Gestionar archivos desde la línea de comandos
Objetivos
Describir cómo Linux organiza los archivos y los propósitos de diversos directorios en la jerarquía
del sistema de archivos.
Figura 3.1: Directorios importantes del sistema de archivos de Red Hat Enterprise Linux 9
El directorio / es el directorio 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 /, llame a ese directorio
/etc. De la misma manera, si el directorio /etc contiene un archivo con el nombre issue, llame a
ese archivo /etc/issue.
Los subdirectorios de / se usan con fines estandarizados para organizar archivos por tipo y
objetivo, y hacer que sea más fácil encontrar los archivos. Por ejemplo, en el directorio root, el
subdirectorio /boot se usa para guardar archivos para arrancar el sistema.
52 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
nota
Los siguientes términos ayudan a describir el contenido del directorio del sistema de
archivos:
En la siguiente tabla, se enumeran algunos de los directorios más importantes del sistema por
nombre y objetivo.
Ubicación Propósito
/dev Archivos de dispositivo especiales que el sistema usa para acceder al hardware.
/home Directorio de inicio, donde los usuarios habituales guardan sus datos y los
archivos de configuración.
/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. El
contenido de este directorio se vuelve a crear en el arranque nuevo. Este
directorio consolida los directorios /var/run y /var/lock de versiones
anteriores de Red Hat Enterprise Linux.
/tmp 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. El directorio /var/tmp es también un
directorio temporal, en el que los archivos que no tuvieron acceso, cambios ni
modificaciones durante más de 30 días se eliminan automáticamente.
RH124-RHEL9.0-es-5-20230516 53
capítulo 3 | Gestionar archivos desde la línea de comandos
Ubicación Propósito
/var Los datos variables específicos del sistema 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.
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. En Red Hat Enterprise Linux 7 y
versiones posteriores, los directorios de / son enlaces simbólicos a los directorios
coincidentes de /usr.
Referencias
Página del manual: hier(7)
54 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
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
RH124-RHEL9.0-es-5-20230516 55
capítulo 3 | Gestionar archivos desde la línea de comandos
56 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
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
RH124-RHEL9.0-es-5-20230516 57
capítulo 3 | Gestionar archivos desde la línea de comandos
58 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Objetivos
Especificar la ubicación absoluta y la ubicación relativa de los archivos en relación con el directorio
de trabajo actual, determinar y cambiar el directorio de trabajo, y hacer una lista del contenido de
los directorios.
Importante
Es posible incluir un espacio en un nombre de archivo de Linux. La shell también
usa espacios para separar las opciones y los argumentos en la línea de comandos.
Si un comando incluye un archivo que tiene un espacio en su nombre, la shell puede
malinterpretar el comando y asumir que el nombre del archivo son argumentos
múltiples. Para evitar este error, escriba los nombres de archivo entre comillas para
que la shell interprete el nombre como un solo argumento. Red Hat recomienda
evitar espacios en los nombres de archivos.
Rutas absolutas
Una ruta absoluta es un nombre completamente calificado que especifica la ubicación exacta de
los archivos en la jerarquía del sistema de archivos. La ruta absoluta comienza en el directorio root
(/) y especifica cada subdirectorio que se debe atravesar para llegar al archivo específico. Cada
archivo en un sistema de archivos tiene un único nombre de ruta absoluta, reconocido con una
regla simple: un nombre de ruta con una barra inclinada (/) como primer carácter es el nombre de
la ruta absoluta.
Por ejemplo, el nombre de ruta absoluta para el archivo de registro de mensajes del sistema es /
var/log/messages. Los nombres de rutas absolutas pueden ser extensos; en consecuencia, los
archivos también pueden ubicarse en forma relativa al directorio de trabajo actual para su prompt
de shell.
Al igual que una ruta absoluta, una ruta relativa identifica una ubicación única y especifica solo
la ruta necesaria para llegar a la ubicación desde el directorio de trabajo. Los nombres de ruta
relativas siguen una regla simple: un nombre de ruta que no tenga otro carácter más que una barra
RH124-RHEL9.0-es-5-20230516 59
capítulo 3 | Gestionar archivos desde la línea de comandos
inclinada como primer carácter es un nombre de ruta relativa. Por ejemplo, en relación con el
directorio /var, el archivo de registro de mensajes es log/messages.
Los sistemas de archivos de Linux, incluidos ext4, XFS, GFS2y GlusterFS, distinguen entre
mayúsculas y minúsculas. Si se crean los archivos FileCase.txt y filecase.txt en el mismo
directorio, se obtienen dos archivos exclusivos.
Los sistemas de archivos que no pertenecen a Linux podrían funcionar de manera diferente. Por
ejemplo, VFAT, NTFS de Microsoft y HFS+ de Apple tienen un comportamiento de conservación
de tipo de letra. A pesar de que estos sistemas de archivos no distinguen entre minúsculas y
mayúsculas, muestran los nombres de archivo con el uso de mayúsculas original del archivo.
Al crear los archivos en el ejemplo anterior en un sistema de archivos VFAT, ambos nombres
apuntarían al mismo archivo y no a dos archivos diferentes.
Use el comando cd para cambiar el directorio de trabajo actual de su shell. Si no especifica ningún
argumento para el comando, cambia a su directorio de inicio.
En el siguiente ejemplo, se usa una combinación de rutas absolutas y relativas con el comando cd
para cambiar el directorio de trabajo actual para la shell.
El comando touch actualiza la marca de tiempo de un archivo con respecto a la fecha y hora
actual sin modificarlo. Este comando es útil para crear archivos vacíos y pueden usarse para
practicar, ya que si se usa el comando touch con un nombre de un archivo que no existe, se
60 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
crea el archivo. En el siguiente ejemplo, el comando touch crea archivos de práctica en los
subdirectorios Documents y Videos.
El comando ls tiene varias opciones para mostrar los atributos en los archivos. Las opciones más
usadas son -l (formato de enumeración extensa), -a (todos los archivos, incluidos los archivos
ocultos) y -R (recurrente, para incluir el contenido de todos los subdirectorios).
[user@host ~]$ ls -l
total 0
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Desktop
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Documents
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Downloads
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Music
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Pictures
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Public
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Templates
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Videos
[user@host ~]$ ls -la
total 40
drwx------. 17 user user 4096 Mar 2 03:07 .
drwxr-xr-x. 4 root root 35 Feb 10 10:48 ..
drwxr-xr-x. 4 user user 27 Mar 2 03:01 .ansible
-rw-------. 1 user user 444 Mar 2 04:32 .bash_history
-rw-r--r--. 1 user user 18 Aug 9 2021 .bash_logout
-rw-r--r--. 1 user user 141 Aug 9 2021 .bash_profile
-rw-r--r--. 1 user user 492 Aug 9 2021 .bashrc
drwxr-xr-x. 9 user user 4096 Mar 2 02:45 .cache
drwxr-xr-x. 9 user user 4096 Mar 2 04:32 .config
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Desktop
drwxr-xr-x. 2 user user 6 Mar 2 02:45 Documents
...output omitted...
En la parte superior de la lista hay dos directorios especiales. Un punto (.) se refiere al directorio
actual y dos puntos (..) se refieren al directorio principal. Estos directorios especiales existen en
todos los directorios del sistema y son útiles cuando se usan comandos de gestión de archivos.
RH124-RHEL9.0-es-5-20230516 61
capítulo 3 | Gestionar archivos desde la línea de comandos
Importante
Los nombres de archivo que comienzan con un punto (.) indican archivos
ocultos; no se los puede ver en la vista normal con ls y otros comandos. Este
comportamiento no es una característica de seguridad. Los archivos ocultos evitan
que los archivos de configuración necesarios del usuario llenen los directorios de
inicio. Existen muchos comandos que procesan archivos ocultos solo con opciones
de línea de comandos específicas y previenen que la configuración de un usuario se
copie por accidente en otros directorios o usuarios.
También puede usar el carácter especial tilde (~) en combinación con otros comandos para una
mejor interacción con el directorio de inicio.
El comando cd tiene muchas opciones. Algunas opciones son útiles para practicar temprano
y usar con frecuencia. El comando cd - cambia al directorio anterior, donde estaba el usuario
antes de estar en el directorio actual. En el siguiente ejemplo, se ilustra este comportamiento y se
alterna entre dos directorios, lo cual es útil al procesar una serie de tareas similares.
62 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
El comando cd .. usa el directorio oculto (..) para ascender un nivel hasta el directorio
principal, sin necesidad de conocer el nombre exacto del directorio principal. El otro directorio
oculto (.) especifica el directorio actual en los comandos en que la ubicación actual es el
argumento de origen o destino y se evita la necesidad de escribir el nombre de la ruta absoluta del
directorio.
Referencias
info libc 'file name resolution' (GNU C Library Reference Manual)
https://www.gnu.org/software/libc/manual/html_node/File-Name-Resolution.html
UTF-8 y Unicode
http://www.utf-8.com/
RH124-RHEL9.0-es-5-20230516 63
capítulo 3 | Gestionar archivos desde la línea de comandos
Cuestionario
1. ¿Qué comando vuelve al directorio de inicio del usuario actual, suponiendo que el
directorio de trabajo actual es /tmp y su directorio de inicio es /home/user?
a. cd
b. cd ..
c. cd .
d. cd *
e. cd /home
3. ¿Qué comando vuelve al directorio de trabajo que se usó antes del directorio de
trabajo actual?
a. cd -
b. cd -p
c. cd ~
d. cd ..
4. ¿Qué comando cambia el directorio de trabajo hasta dos niveles desde la ubicación
actual?
a. cd ~/..
b. cd ../ ..
c. cd ../..
d. cd ~/
5. ¿Qué comando enumera los archivos de la ubicación actual con un formato largo e
incluyendo los archivos ocultos?
a. llong ~
b. ls -a
c. ls -l
d. ls -al
64 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
RH124-RHEL9.0-es-5-20230516 65
capítulo 3 | Gestionar archivos desde la línea de comandos
Solución
1. ¿Qué comando vuelve al directorio de inicio del usuario actual, suponiendo que el
directorio de trabajo actual es /tmp y su directorio de inicio es /home/user?
a. cd
b. cd ..
c. cd .
d. cd *
e. cd /home
3. ¿Qué comando vuelve al directorio de trabajo que se usó antes del directorio de
trabajo actual?
a. cd -
b. cd -p
c. cd ~
d. cd ..
4. ¿Qué comando cambia el directorio de trabajo hasta dos niveles desde la ubicación
actual?
a. cd ~/..
b. cd ../ ..
c. cd ../..
d. cd ~/
5. ¿Qué comando enumera los archivos de la ubicación actual con un formato largo e
incluyendo los archivos ocultos?
a. llong ~
b. ls -a
c. ls -l
d. ls -al
66 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
RH124-RHEL9.0-es-5-20230516 67
capítulo 3 | Gestionar archivos desde la línea de comandos
Objetivos
Crear, copiar, mover y eliminar archivos y directorios.
Tenga en cuenta las opciones que se usan al ejecutar un comando. El significado de algunas
opciones puede diferir entre los comandos.
Crear directorios
El comando mkdir crea uno o más directorios o subdirectorios. Toma como un argumento una
lista de rutas a los directorios que desea crear.
Si el directorio existe, o un directorio principal del directorio que está intentando crear no existe, el
comando mkdir falla y muestra un error.
La opción de comando mkdir -p (parent) crea directorios principales faltantes para el destino
solicitado. En el siguiente ejemplo, el comando mkdir crea tres subdirectorios ChapterN con un
comando. La opción -p crea el directorio principal faltante Thesis.
Thesis/Chapter1:
Thesis/Chapter2:
Thesis/Chapter3:
Tenga cuidado cuando use el comando mkdir con la opción -p, ya que los errores de ortografía
accidentales pueden generar directorios involuntarios sin que produzcan mensajes de error. En
68 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
el siguiente ejemplo, simule que está intentando crear un subdirectorio Watched en el directorio
llamado Videos, pero que accidentalmente omite la letra "s" en Videos en su comando mkdir.
El comando mkdir generó un error porque el directorio Video no existe. Si ha usado el comando
mkdir con la opción -p, el directorio Video se crearía involuntariamente. El subdirectorio
Watched se crearía en ese directorio incorrecto.
También puede usar el comando cp para copiar varios archivos en un directorio. En este escenario,
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.
nota
De manera predeterminada, el comando cp no copia directorios; los omite.
Thesis:
Chapter1 Chapter2 Chapter3
Puede copiar directorios y sus contenidos mediante el uso del comando cp con la opción -
r. Tenga en cuenta que puede usar los directorios especiales . y .. en las combinaciones de
comandos. En el siguiente ejemplo, el directorio Thesis y su contenido se copian en el directorio
ProjectY.
RH124-RHEL9.0-es-5-20230516 69
capítulo 3 | Gestionar archivos desde la línea de comandos
./Thesis:
total 0
drwxr-xr-x. 2 user user 6 Mar 7 15:08 Chapter1
drwxr-xr-x. 2 user user 6 Mar 7 15:08 Chapter2
drwxr-xr-x. 2 user user 6 Mar 7 15:08 Chapter3
./Thesis/Chapter1:
total 0
./Thesis/Chapter2:
total 0
./Thesis/Chapter3:
total 0
[user@host Documents]$ ls -l
-rw-r--r--. 1 user user 7100 Mar 7 14:37 thesis_chapter1.txt
-rw-r--r--. 1 user user 11431 Mar 7 14:39 thesis_chapter2.txt
...output omitted...
[user@host Documents]$ mv thesis_chapter2.txt thesis_chapter2_reviewed.txt
[user@host Documents]$ ls -l
-rw-r--r--. 1 user user 7100 Mar 7 14:37 thesis_chapter1.txt
-rw-r--r--. 1 user user 11431 Mar 7 14:39 thesis_chapter2_reviewed.txt
...output omitted...
70 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
[user@host Documents]$ ls -l
-rw-r--r--. 1 user user 11431 Mar 7 14:39 thesis_chapter2_reviewed.txt
...output omitted...
Importante
Red Hat Enterprise Linux no ofrece 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. Una papelera es un componente de un
entorno de escritorio como GNOME, pero no es usado por comandos que se
ejecutan desde una shell.
Puede usar el comando rm con la opción -i para pedir confirmación de forma interactiva antes
de la eliminación. Esto es básicamente lo contrario que usar el comando rm con la opción -f, que
fuerza la eliminación sin pedir confirmación al usuario.
RH124-RHEL9.0-es-5-20230516 71
capítulo 3 | Gestionar archivos desde la línea de comandos
Advertencia
Si especifica tanto la opción -i como la -f, la opción -f tiene prioridad y no se le
pide confirmación antes de que rm borre los archivos.
También puede usar el comando rmdir para eliminar directorios vacíos. Use el comando rm,
opción -r, para eliminar directorios que no estén vacíos.
Referencias
Páginas del manual cp(1), mkdir(1), mv(1), rm(1) y rmdir(1)
72 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Ejercicio Guiado
Resultados
• Crear, organizar, copiar y eliminar archivos y directorios.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina servera con el usuario student. En el directorio de inicio del
usuario student, cree tres subdirectorios: Music, Pictures y Videos.
1.1. Use el comando ssh para iniciar sesión en la máquina 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.
1.2. En el directorio de inicio del usuario student, use el comando mkdir para crear tres
subdirectorios: Music, Pictures y Videos.
2. Use el comando touch para crear conjuntos de archivos de práctica vacíos para usar
durante este trabajo de laboratorio. En cada conjunto, reemplace X con los números del 1 al
6.
RH124-RHEL9.0-es-5-20230516 73
capítulo 3 | Gestionar archivos desde la línea de comandos
Pictures:
total 0
74 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Videos:
total 0
-rw-r--r--. 1 student student 0 Mar 7 20:58 film1.avi
-rw-r--r--. 1 student student 0 Mar 7 20:58 film2.avi
-rw-r--r--. 1 student student 0 Mar 7 20:58 film3.avi
-rw-r--r--. 1 student student 0 Mar 7 20:58 film4.avi
-rw-r--r--. 1 student student 0 Mar 7 20:58 film5.avi
-rw-r--r--. 1 student student 0 Mar 7 20:58 film6.avi
4. Cree tres subdirectorios para organizar sus archivos y nombre los subdirectorios friends,
family y work. Use un solo comando para crear los tres subdirectorios al mismo tiempo.
5. Copie los archivos que contengan números 1 y 2 en el directorio friends y los archivos
que contengan números 3 y 4 en el directorio family. Tenga en cuenta que está haciendo
copias; por lo tanto, los archivos originales permanecerán en sus ubicaciones originales una
vez que complete el paso.
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,
ya sea absoluta o relativa, para llegar al origen de cada tarea de gestión de archivos.
RH124-RHEL9.0-es-5-20230516 75
capítulo 3 | Gestionar archivos desde la línea de comandos
7. Las tareas del proyecto ya están terminadas, por lo que es hora de limpiar los directorios.
Use el comando rm -r para eliminar recursivamente los directorios family, friends y
work, así como su contenido.
[student@servera work]$ cd ..
[student@servera ~]$ rm -r family friends work
[student@servera ~]$ ls -l
total 0
drwxr-xr-x. 2 student student 108 Mar 7 21:00 Music
drwxr-xr-x. 2 student student 108 Mar 7 21:00 Pictures
drwxr-xr-x. 2 student student 108 Mar 7 21:00 Videos
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
76 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
RH124-RHEL9.0-es-5-20230516 77
capítulo 3 | Gestionar archivos desde la línea de comandos
Objetivos
Hacer que varios nombres de archivo hagan referencia al mismo archivo con enlaces duros y
simbólicos (o "blandos").
Puede crear dos tipos de enlaces: un enlace duro o un enlace simbólico (a veces denominado
enlace blando). Cada forma tiene sus ventajas y desventajas.
Puede determinar si un archivo tiene varios enlaces duros mediante el comando ls -l. Un ítem
que aparece es el recuento de enlaces de cada archivo, es decir, la cantidad de enlaces duros que
tiene el archivo. En el ejemplo siguiente, el recuento de enlaces del archivo newfile.txt es 1.
Tiene exactamente una ruta absoluta, que es la ubicación /home/user/newfile.txt.
Puede usar el comando ln para crear un enlace duro (otro nombre de archivo) 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.
Para determinar si dos archivos tienen un enlace duro, use el comando ls con la opción -i para
enumerar el número de inodo de cada archivo. Si los archivos están en el mismo sistema de
archivos y sus números de inodo son los mismos, los archivos son enlaces duros que apuntan a los
mismos contenidos de los archivos de datos.
78 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Importante
Todos los enlaces duros que hacen referencia al mismo archivo tendrán la misma
estructura de inodos que el recuento de enlaces, permiso de acceso, pertenencia
a usuarios y grupos, marcas de tiempo y contenido de archivo. Cuando se cambia
esa información para un enlace duro, los otros enlaces duros para el mismo archivo
también muestran la nueva información. 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, aún puede acceder al contenido del archivo siempre que
exista al menos un enlace duro adicional. Los datos se eliminan del almacenamiento solo cuando
se elimina el último enlace duro, lo que hace que el contenido del archivo no esté referenciado por
ningún enlace duro.
En segundo lugar, solo puede usar enlaces duros si ambos archivos están en el mismo sistema
de archivos. La jerarquía del sistema de archivos puede estar compuesta 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 la siguiente salida:
[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_rhel9--root 10258432 1630460 8627972 16% /
/dev/sda1 1038336 167128 871208 17% /boot
tmpfs 180420 0 180420 0% /run/user/1000
Los archivos que están en dos directorios diferentes con el indicador "Montado en" y sus
subdirectorios están en sistemas de archivos distintos. Por lo tanto, en el sistema en este ejemplo,
puede crear un enlace duro entre los archivos /var/tmp/link1 y /home/user/file porque
ambos son subdirectorios del directorio /, pero no de ningún otro directorio de la lista. Sin
RH124-RHEL9.0-es-5-20230516 79
capítulo 3 | Gestionar archivos desde la línea de comandos
embargo, no puede crear un enlace duro entre los archivos /boot/test/badlink y /home/
user/file. El primer archivo está en un subdirectorio del directorio /boot (en la lista "Montado
en") y está en el sistema de archivos /dev/sda1. El segundo archivo está en el sistema de
archivos /dev/mapper/rhel_rhel9—root.
Los enlaces simbólicos tienen algunas ventajas en comparación con los enlaces duros:
• Los enlaces simbólicos pueden vincular dos archivos en diferentes sistemas de archivos.
• Los enlaces simbólicos pueden apuntar a un directorio o archivo especial, no solo a un archivo
regular.
Cuando se elimina el archivo regular original, el enlace simbólico seguirá apuntando al archivo,
pero el destino desaparece. Un enlace simbólico que apunta a un archivo que falta se denomina
"enlace simbólico colgante".
80 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Importante
Un efecto adicional del enlace simbólico colgante en el ejemplo anterior es que
si usted crea un archivo con el mismo nombre que el archivo eliminado (/home/
user/newfile-link2.txt), el enlace simbólico 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
archivo con el mismo nombre, el nuevo archivo no se vincula al archivo anterior.
Considere la siguiente manera de comparar enlaces duros y enlaces simbólicos para
comprender cómo funcionan:
Referencias
Página del manual: ln(1)
RH124-RHEL9.0-es-5-20230516 81
capítulo 3 | Gestionar archivos desde la línea de comandos
Ejercicio Guiado
Resultados
• Crear enlaces duros y enlaces simbólicos entre archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina servera con el usuario student. La
configuración del sistema admite el uso de claves SSH para la autenticación, por lo que no
se necesita una contraseña.
82 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 83
capítulo 3 | Gestionar archivos desde la línea de comandos
Objetivos
Ejecutar con eficiencia los comandos que afectan a muchos archivos mediante el uso de las
funciones de coincidencia de patrones de la shell Bash.
• Expansión de variables que reemplaza el texto con el valor almacenado en una variable de shell
• Expansión del nombre de ruta que ayuda a seleccionar uno o más archivos por coincidencia de
patrones
La expansión del nombre de ruta, históricamente llamada globbing, es una de las características
más útiles de Bash. Con esta función, es más fácil gestionar muchos archivos. Si se usan los
metacaracteres que se “expanden” para establecer una coincidencia entre los archivos y los
nombres de ruta que se buscan, los comandos actúan en un conjunto de archivos orientado a la
vez.
Patrón Coincidencias
84 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Patrón Coincidencias
Para el siguiente ejemplo, simule que ha ejecutado los siguientes comandos para crear algunos
archivos de muestra:
En el siguiente ejemplo, los dos primeros comandos usan coincidencias de patrones simples con el
asterisco (*) para hacer coincidir todos los nombres de archivos que comienzan con "a" y todos los
nombres de archivos que contienen una "a", respectivamente. El tercer comando usa el asterisco y
los corchetes para hacer coincidir todos los nombres de archivos que comienzan con "a" o "c".
[user@host glob]$ ls a*
able alfa
[user@host glob]$ ls *a*
able alfa baker bravo cast charlie delta easy
[user@host glob]$ ls [ac]*
able alfa cast charlie
El siguiente ejemplo también usa caracteres de interrogación (?) para hacer coincidir algunos de
esos nombres de archivo. Los dos comandos coinciden solo con nombres de archivos con cuatro y
cinco caracteres de longitud, respectivamente.
Expansión de llaves
La expansión de llaves se usa para generar cadenas discrecionales de caracteres. Las llaves
contienen una lista de cadenas, o una expresión de cadenas, separadas por comas. El resultado
RH124-RHEL9.0-es-5-20230516 85
capítulo 3 | Gestionar archivos desde la línea de comandos
incluye el texto que antecede o que sigue a la definición de llaves. Las expansiones de llaves
pueden estar anidadas, una dentro de la otra. También puede usar la sintaxis de doble punto (..),
que se expande a una secuencia. Por ejemplo, la sintaxis de doble punto {m..p} dentro de las
llaves se expande a m n o p.
La expansión de llaves se usa en la práctica, por ejemplo, para crear rápidamente múltiples
archivos o directorios.
Expansión de tilde
El carácter del tilde (~) coincide con el directorio de inicio del usuario actual. Si comienza con una
cadena de caracteres que no tenga una barra (/), la shell interpreta que la cadena hasta esa barra
es un nombre de usuario, si se logra una coincidencia, y reemplaza la cadena con la ruta absoluta
al directorio de inicio de ese usuario. Si ningún nombre de usuario coincide, la shell empleará la
propia tilde seguida de la cadena de caracteres.
En el siguiente ejemplo, el comando echo se usa para mostrar el valor del carácter de tilde.
También puede usar el comando echo para mostrar los valores de los caracteres de expansión de
llaves y variables, y otros.
Expansión de variables
Una variable actúa como un contenedor con nombre que almacena un valor en la memoria. Las
variables simplifican el acceso y la modificación de los datos almacenados desde la línea de
comandos o dentro de un script de shell.
Puede asignar datos como valor de una variable con la siguiente sintaxis:
86 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Puede usar la expansión de variables para convertir el nombre de la variable a su valor en la línea
de comandos. Si una cadena comienza con un signo de dólar ($), entonces la shell intentará usar el
resto de esa cadena como un nombre de variable y reemplazarlo con el valor de la variable.
Para evitar errores debidos a otras expansiones de shell, puede poner el nombre de la variable
entre llaves, por ejemplo, ${VARIABLENAME}.
Los nombres de las variables solo pueden contener letras (mayúsculas y minúsculas), números
y guiones bajos. Los nombres de las variables distinguen entre mayúsculas y minúsculas y no
pueden comenzar con un número.
Sustitución de comandos
La sustitución de comandos permite obtener un comando para reemplazar el comando mismo
en la línea de comandos. La sustitución de comandos se produce cuando un comando está entre
paréntesis y precedido por un signo de dólar ($). La forma $(command) puede anidar varias
expansiones de comando dentro de cada una.
nota
Una forma anterior de sustitución de comandos usa acentos graves: `command`.
Aunque la shell Bash aún acepta este formato, intente evitarlo porque es fácil
confundir visualmente los acentos graves con comillas simples, y los acentos graves
no se pueden anidar.
La barra invertida (\) es un carácter de escape en la shell Bash. Evitará que el siguiente carácter
se expanda.
RH124-RHEL9.0-es-5-20230516 87
capítulo 3 | Gestionar archivos desde la línea de comandos
En el ejemplo anterior, con el signo de dólar protegido de la expansión, Bash lo trata como un
carácter normal, sin la expansión de variables en $HOME.
Para proteger las cadenas de caracteres más extensas, puede usar comillas simples (') o dobles
(") para encerrar las cadenas. Tienen efectos ligeramente diferentes. Las comillas simples
detienen toda la expansión de shell. Las comillas dobles detienen la mayor parte de la expansión
de shell.
Las comillas dobles evitan que los caracteres especiales que no sean el signo dólar ($), la barra
invertida (\), la comilla invertida (`) y el signo de exclamación (!) operen dentro del texto entre
comillas. Las comillas dobles bloquean la expansión del nombre de ruta, pero aún permite que
ocurra la sustitución de comandos y la expansión de variables.
Use comillas simples para interpretar todo el texto entre comillas literalmente.
Importante
Tanto en la pantalla como en el teclado, es fácil confundir la comilla simple (') y
el acento grave de sustitución de comando (`). El uso de uno incorrectamente,
cuando la intención era usar el otro, generará un comportamiento inesperado de la
shell.
Referencias
Páginas del manual: bash(1), cd(1), glob(7), isalpha(3), ls(1),
path_resolution(7) y pwd(1)
88 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Cuestionario
1. ¿Qué patrón coincidirá solo con los nombres de archivo que terminan con "b"?
a. b*
b. *b
c. *b*
d. [!b]*
2. ¿Qué patrón coincidirá solo con los nombres de archivo que comienzan con "b"?
a. b*
b. *b
c. *b*
d. [!b]*
3. ¿Qué patrón coincidirá solo con los nombres de archivo donde el primer carácter no es
"b"?
a. b*
b. *b
c. *b*
d. [!b]*
4. ¿Qué patrón coincidirá con todos los nombres de archivo que contienen "b"?
a. b*
b. *b
c. *b*
d. [!b]*
5. ¿Qué patrón coincidirá solo con los nombres de archivo que contienen un número?
a. *#*
b. *[[:digit:]]*
c. *[digit]*
d. [0-9]
RH124-RHEL9.0-es-5-20230516 89
capítulo 3 | Gestionar archivos desde la línea de comandos
6. ¿Qué patrón coincidirá solo con los nombres de archivo que comienzan con una letra
mayúscula?
a. ^?*
b. ^*
c. [upper]*
d. [[:upper:]]*
e. [[CAP]]*
7. ¿Qué patrón coincidirá solo con los nombres de archivo de al menos tres caracteres de
longitud?
a. ???*
b. ???
c. \3*
d. +++*
e. ...*
90 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Solución
1. ¿Qué patrón coincidirá solo con los nombres de archivo que terminan con "b"?
a. b*
b. *b
c. *b*
d. [!b]*
2. ¿Qué patrón coincidirá solo con los nombres de archivo que comienzan con "b"?
a. b*
b. *b
c. *b*
d. [!b]*
3. ¿Qué patrón coincidirá solo con los nombres de archivo donde el primer carácter no es
"b"?
a. b*
b. *b
c. *b*
d. [!b]*
4. ¿Qué patrón coincidirá con todos los nombres de archivo que contienen "b"?
a. b*
b. *b
c. *b*
d. [!b]*
5. ¿Qué patrón coincidirá solo con los nombres de archivo que contienen un número?
a. *#*
b. *[[:digit:]]*
c. *[digit]*
d. [0-9]
RH124-RHEL9.0-es-5-20230516 91
capítulo 3 | Gestionar archivos desde la línea de comandos
6. ¿Qué patrón coincidirá solo con los nombres de archivo que comienzan con una letra
mayúscula?
a. ^?*
b. ^*
c. [upper]*
d. [[:upper:]]*
e. [[CAP]]*
7. ¿Qué patrón coincidirá solo con los nombres de archivo de al menos tres caracteres de
longitud?
a. ???*
b. ???
c. \3*
d. +++*
e. ...*
92 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Trabajo de laboratorio
Resultados
• Usar comodines para localizar y manipular archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina serverb con el usuario student. La
configuración del sistema admite el uso de claves SSH para la autenticación.
2. Cree un nuevo directorio llamado project_plans en el directorio Documents. El directorio
Documents debe colocarse en el directorio de inicio del usuario student. Cree dos archivos
vacíos en el directorio project_plans llamados season1_project_plan.odf y
season2_project_plan.odf.
Pista: Si el directorio ~/Documents no existe, use el comando mkdir con la opción -p para
crearlo.
3. Cree conjuntos de archivos de práctica vacíos para usar en este trabajo de laboratorio.
Si no reconoce inmediatamente el atajo deseado de expansión de la shell, use la
solución para aprender y practicar. Use la función de autocompletado con tab de la
shell para localizar los nombres de ruta de archivos. Cree 12 archivos con los nombres
tv_seasonX_episodeY.ogg en el directorio /home/student. Reemplace X con el
número de temporada e Y con el episodio de esa temporada, para dos temporadas de seis
episodios cada una.
4. Como autor de una serie exitosa de novelas de misterio, está editando los capítulos
de su próximo bestseller para publicarlos. Cree ocho archivos con los nombres
mystery_chapterX.odf. Reemplace la X con los números del 1 al 8.
5. Use un solo comando para crear dos subdirectorios llamados season1 y season2 en
el directorio Videos, a fin de organizar los capítulos de la serie de televisión. Mueva los
episodios de la serie de televisión correspondientes a los subdirectorios de temporadas. Use
solo dos comandos y especifique los destinos con la sintaxis relativa.
RH124-RHEL9.0-es-5-20230516 93
capítulo 3 | Gestionar archivos desde la línea de comandos
6. Cree una jerarquía de directorios de dos niveles con un solo comando para organizar los
capítulos del libro de misterios. Cree el subdirectorio my_bestseller en el directorio
Documents y el subdirectorio chapters en el nuevo directorio my_bestseller. Cree tres
subdirectorios más directamente en el directorio my_bestseller con un solo comando.
Nombre a estos subdirectorios editor, changes y vacation. No necesita usar el comando
mkdir -p para crear elementos principales porque el directorio principal my_bestseller
existe.
7. Cambie al directorio chapters. Use el atajo del directorio de inicio con tilde (~) para mover
todos los capítulos del libro al directorio chapters, que ahora es el directorio actual. Use la
sintaxis más simple para especificar el directorio de destino.
Quiere enviar los primeros dos capítulos al editor para la revisión. Mueva solo esos dos
capítulos al directorio editor para evitar modificarlos durante la revisión. Comenzando
por el subdirectorio chapters, use la expansión de llaves con un rango para especificar los
nombres de archivo de los capítulos que se moverán y una ruta relativa para el directorio de
destino.
En las vacaciones, tiene la intención de escribir los capítulos 7 y 8. Use un solo comando para
mover los archivos del directorio chapters al directorio vacation. Para especificar los
nombres de archivo de los capítulos, use la expansión de llaves con una lista de cadenas y sin
usar caracteres comodín.
8. Cambie el directorio de trabajo a ~/Videos/season2 y copie el primer episodio de la
temporada al directorio vacation. Use un solo comando cd para pasar del directorio
de trabajo al directorio ~/Documents/my_bestseller/vacation. Haga una lista
de sus archivos. Use el argumento directorio de trabajo anterior para volver al directorio
season2. (Este argumento se ejecutará correctamente si el último cambio de directorio
con el comando cd se hizo solo con un comando en lugar de varios comandos cd). Desde el
directorio season2, copie el archivo del episodio 2 en el directorio vacation. Use el atajo
de nuevo para volver al directorio vacation.
9. Los autores de los capítulos 5 y 6 quieren experimentar con posibles cambios. Copie
ambos archivos del directorio ~/Documents/my_bestseller/chapters al directorio
~/Documents/my_bestseller/changes para evitar que estos cambios modifiquen
los archivos originales. Diríjase al directorio ~/Documents/my_bestseller. Use la
coincidencia de patrones con corchetes para especificar qué números de capítulo deben
coincidir en el argumento filename del comando cp.
10. Cambie su directorio actual al directorio changes y use el comando date +%F
con sustitución de comandos para copiar el archivo mystery_chapter5.odf
a un archivo nuevo que incluya la fecha completa. Use el formato de nombre
mystery_chapter5_YYYY-MM-DD.odf.
Al usar el reemplazo de comando con el comando date +%s, haga otra copia de
mystery_chapter5.odf y anexe la marca de tiempo actual (como el número de segundos
desde la era, 1970-01-01 00:00 UTC)para garantizar un nombre de archivo único.
11. Después de una revisión adicional, usted decide que no necesita los cambios en la trama.
Elimine el directorio changes.
De ser necesario, vaya al directorio changes y elimine todos los archivos del directorio. No
puede eliminar un directorio mientras sea el directorio de trabajo actual.
Pase al directorio principal del directorio changes. Intente eliminar el directorio vacío con el
comando rm sin la opción recursiva -r. Este intento debe fallar. Finalmente, use el comando
rmdir para eliminar el directorio vacío; esta acción se ejecuta correctamente.
Cuando finalicen las vacaciones, el directorio vacation ya no será necesario. Elimínelo
usando el comando rmcon la opción recursiva.
Una vez que haya finalizado, regrese al directorio de inicio del usuario student.
94 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 95
capítulo 3 | Gestionar archivos desde la línea de comandos
Solución
Resultados
• Usar comodines para localizar y manipular archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina serverb con el usuario student. La
configuración del sistema admite el uso de claves SSH para la autenticación.
Documents/project_plans:
total 0
-rw-r--r--. 1 student student 0 Mar 7 03:50 season1_project_plan.odf
-rw-r--r--. 1 student student 0 Mar 7 03:50 season2_project_plan.odf
96 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
3. Cree conjuntos de archivos de práctica vacíos para usar en este trabajo de laboratorio.
Si no reconoce inmediatamente el atajo deseado de expansión de la shell, use la
solución para aprender y practicar. Use la función de autocompletado con tab de la
shell para localizar los nombres de ruta de archivos. Cree 12 archivos con los nombres
tv_seasonX_episodeY.ogg en el directorio /home/student. Reemplace X con el
número de temporada e Y con el episodio de esa temporada, para dos temporadas de seis
episodios cada una.
4. Como autor de una serie exitosa de novelas de misterio, está editando los capítulos
de su próximo bestseller para publicarlos. Cree ocho archivos con los nombres
mystery_chapterX.odf. Reemplace la X con los números del 1 al 8.
5. Use un solo comando para crear dos subdirectorios llamados season1 y season2 en
el directorio Videos, a fin de organizar los capítulos de la serie de televisión. Mueva los
episodios de la serie de televisión correspondientes a los subdirectorios de temporadas. Use
solo dos comandos y especifique los destinos con la sintaxis relativa.
5.1. Cree dos subdirectorios llamados season1 y season2 debajo del directorio Videos
con un solo comando.
5.2. Con tan solo dos comandos, mueva los episodios de la serie de televisión
correspondientes a los subdirectorios de temporadas.
Videos/season1:
tv_season1_episode1.ogg tv_season1_episode3.ogg tv_season1_episode5.ogg
tv_season1_episode2.ogg tv_season1_episode4.ogg tv_season1_episode6.ogg
Videos/season2:
tv_season2_episode1.ogg tv_season2_episode3.ogg tv_season2_episode5.ogg
tv_season2_episode2.ogg tv_season2_episode4.ogg tv_season2_episode6.ogg
RH124-RHEL9.0-es-5-20230516 97
capítulo 3 | Gestionar archivos desde la línea de comandos
6. Cree una jerarquía de directorios de dos niveles con un solo comando para organizar los
capítulos del libro de misterios. Cree el subdirectorio my_bestseller en el directorio
Documents y el subdirectorio chapters en el nuevo directorio my_bestseller. Cree tres
subdirectorios más directamente en el directorio my_bestseller con un solo comando.
Nombre a estos subdirectorios editor, changes y vacation. No necesita usar el comando
mkdir -p para crear elementos principales porque el directorio principal my_bestseller
existe.
Documents/my_bestseller:
chapters
Documents/my_bestseller/chapters:
Documents/project_plans:
season1_project_plan.odf season2_project_plan.odf
6.2. Cree tres directorios llamados editor, changes y vacation debajo del directorio
my_bestseller con un solo comando.
Documents/my_bestseller:
changes chapters editor vacation
Documents/my_bestseller/changes:
Documents/my_bestseller/chapters:
Documents/my_bestseller/editor:
Documents/my_bestseller/vacation:
Documents/project_plans:
season1_project_plan.odf season2_project_plan.odf
7. Cambie al directorio chapters. Use el atajo del directorio de inicio con tilde (~) para mover
todos los capítulos del libro al directorio chapters, que ahora es el directorio actual. Use la
sintaxis más simple para especificar el directorio de destino.
Quiere enviar los primeros dos capítulos al editor para la revisión. Mueva solo esos dos
capítulos al directorio editor para evitar modificarlos durante la revisión. Comenzando
por el subdirectorio chapters, use la expansión de llaves con un rango para especificar los
nombres de archivo de los capítulos que se moverán y una ruta relativa para el directorio de
destino.
98 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
En las vacaciones, tiene la intención de escribir los capítulos 7 y 8. Use un solo comando para
mover los archivos del directorio chapters al directorio vacation. Para especificar los
nombres de archivo de los capítulos, use la expansión de llaves con una lista de cadenas y sin
usar caracteres comodín.
7.1. Cambie al directorio chapters y use el atajo del directorio de inicio con tilde (~) para
mover todos los capítulos del libro al directorio chapters.
7.2. Mueva los dos primeros capítulos al directorio editor. Use la expansión de llaves con
un rango para especificar los nombres de archivo de los capítulos que se moverán y una
ruta relativa para el directorio de destino.
7.3. Use un solo comando para mover los capítulos 7 y 8 del directorio chapters al
directorio vacation. Para especificar los nombres de archivo de los capítulos, use la
expansión de llaves con una lista de cadenas y sin usar caracteres comodín.
RH124-RHEL9.0-es-5-20230516 99
capítulo 3 | Gestionar archivos desde la línea de comandos
9. Los autores de los capítulos 5 y 6 quieren experimentar con posibles cambios. Copie
ambos archivos del directorio ~/Documents/my_bestseller/chapters al directorio
~/Documents/my_bestseller/changes para evitar que estos cambios modifiquen
los archivos originales. Diríjase al directorio ~/Documents/my_bestseller. Use la
coincidencia de patrones con corchetes para especificar qué números de capítulo deben
coincidir en el argumento filename del comando cp.
10. Cambie su directorio actual al directorio changes y use el comando date +%F
con sustitución de comandos para copiar el archivo mystery_chapter5.odf
a un archivo nuevo que incluya la fecha completa. Use el formato de nombre
mystery_chapter5_YYYY-MM-DD.odf.
Al usar el reemplazo de comando con el comando date +%s, haga otra copia de
mystery_chapter5.odf y anexe la marca de tiempo actual (como el número de segundos
desde la era, 1970-01-01 00:00 UTC)para garantizar un nombre de archivo único.
11. Después de una revisión adicional, usted decide que no necesita los cambios en la trama.
Elimine el directorio changes.
100 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
De ser necesario, vaya al directorio changes y elimine todos los archivos del directorio. No
puede eliminar un directorio mientras sea el directorio de trabajo actual.
Pase al directorio principal del directorio changes. Intente eliminar el directorio vacío con el
comando rm sin la opción recursiva -r. Este intento debe fallar. Finalmente, use el comando
rmdir para eliminar el directorio vacío; esta acción se ejecuta correctamente.
Cuando finalicen las vacaciones, el directorio vacation ya no será necesario. Elimínelo
usando el comando rmcon la opción recursiva.
Una vez que haya finalizado, regrese al directorio de inicio del usuario student.
11.1. Elimine el directorio changes. Cambie al directorio principal del directorio changes
e intente eliminar el directorio vacío usando el comando rm sin la opción recursiva -r,
que debería fallar. Use el comando rmdir para eliminar el directorio vacío.
11.2. Elimine el directorio vacation usando el comando rm con la opción -r. Regrese al
directorio de inicio del usuario student.
RH124-RHEL9.0-es-5-20230516 101
capítulo 3 | Gestionar archivos desde la línea de comandos
/home/student/Documents/backups:
total 0
-rw-r--r--. 2 student student 0 Mar 7 03:50 season2_project_plan.odf.back
/home/student/Documents/my_bestseller:
total 0
drwxr-xr-x. 2 student student 118 Mar 7 04:07 chapters
drwxr-xr-x. 2 student student 62 Mar 7 04:06 editor
/home/student/Documents/my_bestseller/chapters:
total 0
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter3.odf
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter4.odf
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter5.odf
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter6.odf
/home/student/Documents/my_bestseller/editor:
total 0
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter1.odf
-rw-r--r--. 1 student student 0 Mar 7 03:56 mystery_chapter2.odf
/home/student/Documents/project_plans:
total 0
-rw-r--r--. 1 student student 0 Mar 7 03:50 season1_project_plan.odf
-rw-r--r--. 2 student student 0 Mar 7 03:50 season2_project_plan.odf
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
102 RH124-RHEL9.0-es-5-20230516
capítulo 3 | Gestionar archivos desde la línea de comandos
Resumen
• Los archivos de un sistema Linux se organizan en un árbol de directorios invertido individual, una
jerarquía de sistema de archivos.
• Las rutas absolutas comienzan con una barra inclinada (/) y especifican la ubicación de un
archivo en la jerarquía del sistema de archivos.
• Las rutas relativas especifican la ubicación de un archivo en relación con el directorio de trabajo
actual.
• Puede usar comandos en combinación con los caracteres especiales de punto (.), punto doble
(..) y tilde (~) para hacer referencia a la ubicación de un archivo en el sistema de archivos.
• Los comandos mkdir, rmdir, cp, mv y rm son comandos clave para gestionar archivos en
Linux.
• Los enlaces duros y los enlaces blandos son formas diferentes de hacer que varios nombres de
archivo apunten a los mismos datos.
RH124-RHEL9.0-es-5-20230516 103
104 RH124-RHEL9.0-es-5-20230516
capítulo 4
RH124-RHEL9.0-es-5-20230516 105
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Objetivos
Encontrar información en las páginas de manual del sistema Linux local.
El histórico manual para programadores de Linux, del cual provienen las páginas del manual, se
convertía en varias secciones debido a su tamaño. Cada sección contiene información sobre un
tema en particular.
Para diferenciar nombres de temas idénticos en secciones diferentes, las referencias de las
páginas del manual incluyen el número de la sección entre paréntesis después del tema. Por
ejemplo: en passwd(1) se describe el comando para cambiar contraseñas, mientras que en
passwd(5) se explica el formato de archivo /etc/passwd para almacenar cuentas de usuario
local.
106 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Si desea leer páginas del manual específicas, use el comando man topic. Las páginas del manual
muestran el contenido de una en una. El comando man busca en las secciones del manual en orden
alfanumérico. Por ejemplo, man passwd muestra passwd(1) de manera predeterminada. Para
mostrar el tema de la página del manual de una sección específica, puede usar el comando man
section topic. Por ejemplo, man 5 passwd muestra passwd(5).
Los temas conocidos de administración del sistema se tratan en las secciones 1 (comandos del
usuario), 5 (formatos de archivos) y 8 (comandos administrativos). Los administradores que usan
ciertas herramientas para la solución de problemas también recurren a la sección 2 (llamadas
del sistema). Las secciones restantes generalmente se usan para consulta de programadores y
administración avanzada.
Comando Resultado
RH124-RHEL9.0-es-5-20230516 107
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Importante
Puede usar expresiones regulares para buscar en páginas man. Si bien el texto
simple (como passwd) funciona según lo esperado, las expresiones regulares usan
metacaracteres (como $, *, . y ^) para lograr una coincidencia de patrón más
sofisticada. Por lo tanto, la realización de búsquedas con cadenas que incluyen
metacaracteres de expresión de programa, como make $$$, puede arrojar
resultados imprevistos.
Encabezados
Encabezado Descripción
AUTHOR Información sobre las personas que han contribuido al desarrollo del
tema
108 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
La opción de comando man -K (mayúscula) busca la palabra clave en la página de texto completo,
no solo en los títulos y descripciones. Una búsqueda en texto completo emplea más recursos del
sistema y lleva más tiempo.
Con la búsqueda de páginas de texto completo, el comando man muestra la primera página
con una coincidencia. Presione Q para salir de esta primera página y el comando man muestra la
siguiente página.
En este ejemplo, man muestra cada coincidencia y le permite ver u omitir cada una.
nota
Las búsquedas por palabra clave se basan en un índice generado con el comando
mandb(8), que se debe ejecutar como root.
Referencias
Páginas del manual: man(1), mandb(8), man-pages(7), less(1), intro(1),
intro(2), intro(5), intro(7) y intro(8)
RH124-RHEL9.0-es-5-20230516 109
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Ejercicio Guiado
Resultados
• Usar el sistema de manual de Linux man para encontrar información útil mediante la
búsqueda y la navegación.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En workstation, vea la página del manual gedit. Vea las opciones para editar un archivo
específico con gedit desde la línea de comandos.
Use una de las opciones de la página del manual gedit para abrir el archivo /home/
student/manual por medio de gedit con el cursor al final del archivo.
SYNOPSIS
gedit [OPTION...] [FILE...] [+LINE[:COLUMN]]
gedit [OPTION...] -
...output omitted...
1.2. En la página del manual gedit, vea las opciones para editar un archivo específico
desde la línea de comandos.
110 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
OPTIONS
...output omitted...
FILE Specifies the file to open when gedit starts.
...output omitted...
+LINE For the first file, go to the line specified by LINE (do not insert
a space between the "+" sign and the number). If LINE is missing, go to the last
line.
...output omitted...
1.3. Use el comando gedit + para abrir el archivo manual. El número de línea que falta
junto a la opción + abre un archivo que se pasó como argumento con el cursor al final
de la última línea.
Confirme que el archivo se abre con el cursor al final de la última línea en el archivo.
Presione Ctrl+q para cerrar la aplicación.
SYNOPSIS
su [options] [-] [user [argument...]]
DESCRIPTION
su allows to run commands with a substitute user and group ID.
RH124-RHEL9.0-es-5-20230516 111
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Las opciones separadas por coma en una sola línea, como -, -l y --login, todas
dan como resultado el mismo comportamiento.
3. El comando man también tiene sus propias páginas de manual. Abra la página del manual
del comando man(1).
NAME
man - an interface to the on-line reference manuals
...output omitted...
DESCRIPTION
man is the system's manual pager. Each page argument given to man is
normally the name of a program, utility or function. The manual page
associated with each of these arguments is then found and displayed.
A section, if provided, will direct man to look only in that section
of the manual.
...output omitted...
4. El directorio /usr/share/man contiene todas las páginas del manual. Localice las páginas
de manual, el código binario y el código fuente para la utilidad passwd con el comando
whereis. Verifique que el directorio /usr/share/man contenga las páginas del manual
para la utilidad passwd.
5. Use el comando man -k zip para buscar la página del manual con la información
detallada sobre un archivo ZIP.
112 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
6. Use el comando man -k boot para mostrar la página del manual que contiene una lista de
los parámetros que se pueden pasar al kernel durante el proceso de arranque.
7. Use el comando man -k ext4 para encontrar el comando que se usa para ajustar los
parámetros del sistema de archivos ext4.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 113
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Trabajo de laboratorio
Resultados
• Encontrar la información relevante para los comandos buscando en las páginas del
manual.
• Aprender opciones nuevas para comandos de documentación que se usan con frecuencia.
• Usar herramientas adecuadas para ver e imprimir documentación y otros archivos que no
son texto.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, determine cómo preparar una página del manual para
su impresión. Específicamente, determine qué formato o lenguaje de representación
predeterminado se usa para imprimir.
2. Cree un archivo de salida con formato PostScript de la página del manual passwd. Invoque el
archivo passwd.ps y colóquelo en el directorio de inicio del usuario student. Determine el
formato del archivo. Investigue el contenido del archivo passwd.ps con el comando less.
nota
Dado que necesita guardar la salida del comando man en un archivo, puede usar el
símbolo > que redirige la salida estándar a un archivo.
Como ejemplo, el siguiente comando enumera los nombres de archivo regulares del
directorio de inicio en un archivo.
3. Mediante el uso de las páginas del manual, busque los comandos que puede usar para ver e
imprimir archivos PostScript.
114 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 115
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Solución
Resultados
• Encontrar la información relevante para los comandos buscando en las páginas del
manual.
• Aprender opciones nuevas para comandos de documentación que se usan con frecuencia.
• Usar herramientas adecuadas para ver e imprimir documentación y otros archivos que no
son texto.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, determine cómo preparar una página del manual para
su impresión. Específicamente, determine qué formato o lenguaje de representación
predeterminado se usa para imprimir.
1.1. Use el comando man man para determinar cómo preparar una página del manual para
su impresión.
nota
El comando man con la opción -t prepara una página del manual para la impresión,
con PostScript predeterminado.
116 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
2. Cree un archivo de salida con formato PostScript de la página del manual passwd. Invoque el
archivo passwd.ps y colóquelo en el directorio de inicio del usuario student. Determine el
formato del archivo. Investigue el contenido del archivo passwd.ps con el comando less.
nota
Dado que necesita guardar la salida del comando man en un archivo, puede usar el
símbolo > que redirige la salida estándar a un archivo.
Como ejemplo, el siguiente comando enumera los nombres de archivo regulares del
directorio de inicio en un archivo.
2.1. Use el comando man -t para crear un archivo con formato de la página del manual
passwd.
nota
El resultado de los estados file afirma que el archivo está en formato PostScript,
y usted lo ha confirmado al ver su contenido. Observe las líneas del encabezado de
información de PostScript. Use q para salir del comando less.
3. Mediante el uso de las páginas del manual, busque los comandos que puede usar para ver e
imprimir archivos PostScript.
RH124-RHEL9.0-es-5-20230516 117
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
3.1. Busque en las páginas del manual para obtener información acerca de los archivos
PostScript. Use la opción -k para este propósito.
nota
Si usa varias palabras con la opción -k, se encuentran páginas del manual que
coinciden con cualquier palabra; como las que contienen "postscript" o "visor" en
sus descripciones. Observe los comandos evince(1) en la salida.
4.1. Use el comando man evince para aprender a usar el visor en modo de vista previa.
nota
La opción -w (o --preview) abre evince en modo de vista previa. La opción -i
abre evince en la página de inicio especificada.
118 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Cuando el modo evince normal permite una visualización en pantalla completa
y con estilo de presentación, el modo de vista previa de evince resulta útil para
tareas rápidas de exploración e impresión. Observe el print icon en la parte superior.
5. Usando las páginas del manual, busque lp(1) para determinar cómo imprimir cualquier
documento a partir de una página específica. Sin ingresar ningún comando (a falta de
impresora), aprenda la sintaxis, en un comando, para imprimir solo las páginas 2 y 3 de su
archivo en formato PostScript.
5.1. Use el comando man lp para determinar cómo imprimir páginas específicas de un
documento.
nota
De lp(1), aprende que la opción -P especifica la lista de páginas para imprimir en el
documento. El comando lp envía la solicitud de impresión a la cola de la impresora
predeterminada y envía solo el rango de páginas que empieza en 2 y termina en 3.
Por lo tanto, una respuesta válida es lp passwd.ps -P 2-3.
6. Use el explorador Firefox para abrir el directorio de páginas del manual del sistema (/
usr/share/doc) y navegue por el subdirectorio de paquetes man-db. Vea los manuales
provistos. Después de terminar de revisar los manuales man-db, localice y navegue hasta el
subdirectorio del paquetekexec-tools. Vea el archivo kexec-kdump-howto.txt, en el
que se describen configuraciones del sistema importantes almacenadas en el directorio /
etc/sysconfig.
6.1. Use firefox /usr/share/doc para ver la documentación del sistema. Navegue al
subdirectorio man-db. Haga clic en los manuales para verlos.
RH124-RHEL9.0-es-5-20230516 119
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Puede crear marcadores para los directorios de uso frecuente. Después de navegar
por al directorio man-db, haga clic para abrir y ver la versión del texto del manual
y, luego, ciérrelo. Haga clic para abrir la versión de PostScript. Como se observó
anteriormente, evince es el visor predeterminado del sistema para documentos en
formato PDF y PostScript. Cuando termine, cierre el visor evince.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
120 RH124-RHEL9.0-es-5-20230516
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Resumen
• Use el comando man para ver las páginas del manual y mostrar información sobre los
componentes de un sistema Linux, como archivos, comandos y funciones.
• Por convención, cuando se hace referencia a una página del manual, el nombre de una página va
seguido de su número de sección entre paréntesis.
• Puede usar expresiones regulares para buscar contenido en páginas del manual.
RH124-RHEL9.0-es-5-20230516 121
122 RH124-RHEL9.0-es-5-20230516
capítulo 5
RH124-RHEL9.0-es-5-20230516 123
capítulo 5 | Crear, ver y editar archivos de texto
Redireccionamiento de la salida a un
archivo o programa
Objetivos
Guardar la salida o los errores en un archivo con la redirección de shell y procesar la salida de
comando a través de varios programas de línea de comandos con pipes.
Un proceso usa canales numerados denominados descriptores de archivo para recibir entradas y
enviar salidas. Todos los procesos comienzan con al menos tres descriptores de archivo. Entrada
estándar(canal 0) lee la entrada desde el teclado. Salida estándar(canal 1) envía la salida normal al
terminal. Error estándar(canal 2) envía mensajes de error al terminal.
Si un programa abre conexiones independientes para otros archivos, puede usar descriptores de
archivo con números superiores.
124 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Puede redireccionar un proceso stdout para suprimir la salida de un proceso y evitar que
aparezca en el terminal. Si redirige stdout a un archivo y el archivo no existe, se crea el archivo.
Si el archivo existe y el redireccionamiento no es uno que se agregue al archivo, el contenido del
archivo se sobrescribirá con el redireccionamiento. Para descartar la salida de un proceso, puede
redirigir al archivo especial vacío /dev/null que descarta la salida del canal que se redirige a él.
Como se puede ver en la siguiente tabla, el redireccionamiento únicamente stdout no evita que
aparezcan los mensajes de error stderr en el terminal.
RH124-RHEL9.0-es-5-20230516 125
capítulo 5 | Crear, ver y editar archivos de texto
Importante
El orden de las operaciones de redireccionamiento es importante. La siguiente
secuencia redirige la salida estándar al archivo output.log y, luego, redirige el
error estándar al mismo lugar que la salida estándar (output.log).
Copie las últimas 100 líneas del archivo /var/log/secure a otro archivo /tmp/last-100-
log-secure.
Enumere los nombres de archivo regulares y ocultos del directorio de inicio y guarde la salida en el
archivo my-file-names.
126 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Los siguientes comandos generan mensajes de error porque algunos directorios del sistema son
inaccesibles para los usuarios normales. Observe cómo se redirigen los mensajes de error.
Redirija los errores desde el comando find al archivo /tmp/errors al visualizar la salida de un
comando normal en el terminal.
[user@host ~]$ find /etc -name passwd > /tmp/output 2> /tmp/errors
[user@host ~]$ find /etc -name passwd > /tmp/output 2> /dev/null
Construcción de tuberías
Una tubería es una secuencia de uno o más comandos separados por el carácter de barra vertical
(|). Una tubería conecta la salida estándar del primer comando con la entrada estándar del
siguiente comando.
Use tuberías para manipular y asignar un formato a la salida de un proceso por otros procesos
antes de su salida al terminal. Imagine que los datos "fluyen" a través de la tubería de un proceso a
otro, y que se alteran levemente por cada comando de la tubería por la que pasan.
RH124-RHEL9.0-es-5-20230516 127
capítulo 5 | Crear, ver y editar archivos de texto
nota
Las tuberías y el redireccionamiento de E/S manipulan la salida y la entrada
estándar. Las tuberías envían la salida estándar de un proceso a la entrada estándar
de otro proceso. El redireccionamiento envía la salida estándar a archivos o recibe la
entrada estándar de estos.
Ejemplos de tuberías
En la siguiente lista, se muestran algunos ejemplos de tuberías:
Redireccione la salida del comando ls al comando less para mostrarla en la terminal de a una
pantalla por vez.
Redireccione la salida del comando ls al comando wc -l, que cuenta la cantidad de líneas
recibidas de ls y las imprime en la terminal.
[user@host ~]$ ls | wc -l
Redirija la salida del comando ls -t al comando head para mostrar las primeras 10 líneas, con el
resultado final redirigido al archivo /tmp/first-ten-changed-files.
El comando tee supera esta limitación. En una tubería, tee copia la entrada estándar a la salida
estándar y además redirige la salida estándar a los archivos asignados como argumentos para
el comando. Si se imaginan los datos como agua que fluye a través de una tubería, se puede
visualizar tee como una junta en "T" en la tubería que envía la salida en dos direcciones.
128 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Si usa el comando tee al final de una tubería, el terminal muestra la salida de los comandos en la
tubería y la guarda en un archivo al mismo tiempo.
Use el comando tee con la opción -a para anexar el contenido a un archivo en lugar de
sobrescribirlo.
Importante
Puede redirigir el error estándar por una tubería, pero no puede usar los operadores
de redireccionamiento fusionados (&> y &>>). En el siguiente ejemplo, se muestra la
manera correcta de redirigir la salida y el error estándares a través de una tubería:
Referencias
info bash (The GNU Bash Reference Manual)
Páginas del manual: bash(1), cat(1), head(1), less(1), mail(1), tee(1), tty(1),
wc(1)
RH124-RHEL9.0-es-5-20230516 129
capítulo 5 | Crear, ver y editar archivos de texto
Cuestionario
Redireccionamiento de la salida a un
archivo o programa
Elija la respuesta correcta para las siguientes preguntas:
3. ¿Qué operador de redireccionamiento de salida envía tanto la salida como los errores a
un archivo, lo crea o sobrescribe su contenido?
a. | tee file
b. 2 &> file
c. 1 &> file
d. &> file
4. ¿Qué operador de redirección de salida envía la salida y los errores al mismo archivo y
conserva el contenido del archivo si existe?
a. > file 2> file2
b. &> file
c. >> file 2>&1
d. >> file 1>&1
130 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
RH124-RHEL9.0-es-5-20230516 131
capítulo 5 | Crear, ver y editar archivos de texto
Solución
Redireccionamiento de la salida a un
archivo o programa
Elija la respuesta correcta para las siguientes preguntas:
3. ¿Qué operador de redireccionamiento de salida envía tanto la salida como los errores a
un archivo, lo crea o sobrescribe su contenido?
a. | tee file
b. 2 &> file
c. 1 &> file
d. &> file
4. ¿Qué operador de redirección de salida envía la salida y los errores al mismo archivo y
conserva el contenido del archivo si existe?
a. > file 2> file2
b. &> file
c. >> file 2>&1
d. >> file 1>&1
132 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
RH124-RHEL9.0-es-5-20230516 133
capítulo 5 | Crear, ver y editar archivos de texto
Objetivos
Crear y editar archivos de texto desde la línea de comandos con el editor vim.
Vim es una versión mejorada del editor vi, que se distribuye con los sistemas Linux y UNIX. Vim es
un editor altamente configurable y eficaz que ofrece edición en pantalla partida, formateo de color
y resaltado para la edición de texto.
La razón clave para aprender a usar Vim es que casi siempre se instala de manera predeterminada
en un servidor para editar archivos basados en texto. La Interfaz de sistema operativo portátil o
estándar POSIX especificaba el editor vi en Linux, y muchos otros sistemas operativos similares a
UNIX hacen lo mismo.
Introducción a Vim
Puede instalar el editor Vim en Red Hat Enterprise Linux con cualquiera de los dos paquetes.
Estos dos paquetes proporcionan diferentes funciones y comandos de Vim para editar archivos
basados en texto.
Con el paquete vim-minimal, puede instalar el editor vi con funciones centrales. Esta es una
instalación muy ligera que incluye solo el conjunto de características centrales y el comando básico
vi. Puede abrir un archivo para editarlo con el comando vi:
De manera alternativa, puede usar el paquete vim-enhanced para instalar el editor de Vim. Este
paquete proporciona un conjunto de características mucho más completo, un sistema de ayuda en
línea, y un programa tutorial. Use el comando vim para iniciar Vim en este modo mejorado:
134 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Las funciones centrales del editor Vim están disponibles en ambos comandos.
Si vim-enhanced está instalado, se configura un alias de shell para que si los usuarios normales
ejecutan el comando vi, obtienen automáticamente el comando vim en su lugar. Este alias no
se aplica al usuario root y otros usuarios con UID por debajo de 200 (que usan los servicios del
sistema).
Si vim-enhanced está instalado y un usuario regular desea usar el comando vi, es posible que
tenga que usar el comando \vi para anular el alias temporalmente. Puede usar \vi --version
y vim --version para comparar los conjuntos de características de los dos comandos.
Cuando se abre Vim por primera vez, arranca en el modo de comandos, usado para navegar, cortar
y pegar, y otro tipo de modificación de texto. Al presionar la tecla requerida se accede a funciones
de edición específicas.
• Una pulsación de la tecla i ingresa al modo de inserción, en el cual todo el texto ingresado se
convierte en contenido de archivo. Al presionar Esc se vuelve al modo comando.
• Al pulsar la tecla v se ingresa al modo visual, en el cual se pueden seleccionar varios caracteres
para la manipulación de texto. Use Shift+V para líneas múltiples y Ctrl+V para seleccionar en
bloque. Para salir del modo visual, use las teclas v, Shift+V o Ctrl+V.
• Al pulsar la tecla : se inicia el modo de comandos ampliado para tareas como la escritura del
archivo (para guardarlo) y la salida del editor Vim.
RH124-RHEL9.0-es-5-20230516 135
capítulo 5 | Crear, ver y editar archivos de texto
nota
Si no está seguro del modo que Vim está usando, presione Esc un par de veces
para volver al modo de comandos. Es seguro presionar la tecla Esc en modo
comando repetidamente.
Aprender estos comandos ayuda a un usuario de Vim a realizar cualquier tarea de edición.
• Modo de caracteres: v
• Modo de línea: Shift+v
• Modo de bloques: Ctrl+v
El modo de bloques visuales es ideal para manipular archivos de datos. Presione la tecla Ctrl+v
para ingresar al bloque visual desde el cursor. VISUAL BLOCK aparece en la parte inferior de la
pantalla. Use las teclas de flecha para resaltar la sección que desea cambiar.
136 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
nota
Primero, tómese el tiempo para familiarizarse con las capacidades básicas de Vim.
Luego, amplíe su vocabulario de Vim aprendiendo más pulsaciones de teclas de
Vim.
El ejercicio para esta sección usará el comando vimtutor. Este tutorial, del
paquete vim-enhanced, es una excelente manera de aprender las funciones
centrales de Vim.
Una lista completa de vimrc opciones de configuración está disponible en las referencias.
Referencias
Página del manual: vim(1)
RH124-RHEL9.0-es-5-20230516 137
capítulo 5 | Crear, ver y editar archivos de texto
Ejercicio Guiado
Resultados
• Editar archivos con Vim.
• Volverse más competente en el uso de Vim con el comando vimtutor.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina servera con el usuario student.
138 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 139
capítulo 5 | Crear, ver y editar archivos de texto
Objetivos
Definir las variables de shell para facilitar la ejecución de comandos, y editar los scripts de
arranque de Bash para configurar las variables de shell y del entorno a fin de modificar el
comportamiento de la shell y de los programas ejecutados desde la shell.
Las variables de shell corresponden únicamente a una sesión de shell en particular. Si tiene dos
ventanas de terminal abiertas o dos sesiones de inicio de sesión independientes en el mismo
servidor remoto, está ejecutando dos shells. Cada shell tiene su propio conjunto de valores para
sus variables de shell.
Los nombres de las variables pueden incluir letras mayúsculas o minúsculas, dígitos y el carácter
de guion bajo (_). Por ejemplo, los siguientes comandos establecen variables de shell:
Recuerde que este cambio solo afecta a la shell en la que se ejecuta el comando sin afectar a las
demás shells que pueda estar ejecutando en ese servidor.
Puede usar el comando set para enumerar todas las variables de shell que están configuradas
actualmente. (También enumera todas las funciones de shell, que se pueden ignorar). Para
mejorar la capacidad de lectura, puede canalizar la salida al comando less para poder verla una
página por vez.
140 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Si, en cambio, ingresa el comando echo $COUNT, imprime el valor de la variable COUNT.
También puede usar una variable para referirse a un nombre de archivo largo para varios
comandos.
RH124-RHEL9.0-es-5-20230516 141
capítulo 5 | Crear, ver y editar archivos de texto
Importante
Siempre puede usar llaves en la expansión de variables, aunque a menudo son
innecesarias.
Otro ejemplo es la variable PS1, que controla el aspecto del prompt de shell. Si cambia este valor,
cambia el aspecto del prompt de shell. Diversas expansiones de caracteres especiales compatibles
142 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Debido a que el valor que establece la variable PS1 es un prompt, Red Hat recomienda finalizar
el prompt con un espacio final. Asimismo, siempre que el valor de una variable contenga algún
tipo de espacio, incluido un espacio, una tabulación o un retorno, el valor debe estar entre
comillas simples o dobles. Se producirán resultados inesperados si se omiten las comillas. La
variable anterior PS1 cumple tanto con la recomendación de espacio final como con la regla de las
comillas.
Si una variable de shell no es una variable de entorno, solo la shell puede usarla. Sin embargo, si
una variable de shell es una variable de entorno, entonces la shell y cualquier programa que se
ejecute desde esa shell pueden usar la variable.
nota
Las variables HISTFILE, HISTFILESIZE y PS1, estudiadas en la sección anterior,
no deben exportarse como variables de entorno, ya que solo las usa la propia shell y
no los programas que se ejecutan desde la shell.
Puede asignar cualquier variable definida en la shell en una variable de entorno marcándola para
exportación con el comando export.
Las aplicaciones y las sesiones usan estas variables para determinar su comportamiento. Por
ejemplo, la shell configura automáticamente la variable HOME con el nombre de archivo del
directorio de inicio del usuario cuando se inicia. Puede usar esta variable para ayudar a los
programas a determinar dónde guardar los archivos.
Otro ejemplo es la variable LANG, que establece la configuración regional. Esta variable ajusta
el idioma preferido para la salida del programa; el conjunto de caracteres; el formato de fechas,
números y moneda; y el orden de clasificación de los programas. Si se configura en en_US.UTF-8,
la configuración local usará el inglés de EE. UU. con codificación de caracteres Unicode UTF-8.
Si está configurado en otra opción, por ejemplo. fr_FR.UTF-8 usará el francés y la codificación
Unicode UTF-8.
RH124-RHEL9.0-es-5-20230516 143
capítulo 5 | Crear, ver y editar archivos de texto
Otra variable importante del entorno es PATH. La variable PATH contiene una lista de directorios
separados por dos puntos que contienen programas:
Cuando ejecuta un comando como ls, la shell busca el archivo ejecutable ls en cada uno de esos
directorios en orden, y ejecuta el primer archivo coincidente que encuentra. (En un sistema típico,
este archivo es /usr/bin/ls).
Puede agregar directorios a su variable PATH. Por ejemplo, quizás tenga scripts o programas
ejecutables que desea ejecutar como comandos regulares en el directorio /home/user/sbin.
Puede anexar el directorio /home/user/sbin a su PATH para la sesión actual de la siguiente
manera:
Para enumerar todas las variables de entorno de una shell, ejecute el comando env:
Importante
Por convención, las variables de entorno y las variables de shell que se configuran
automáticamente por la shell tienen nombres con todos los caracteres en
mayúsculas. Para configurar sus propias variables, es posible que desee usar
nombres con caracteres en minúscula para evitar los nombres duplicados.
144 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Los scripts exactos que se ejecutan dependen de si se trata de una shell interactiva o no
interactiva, y una shell con inicio de sesión o sin inicio de sesión. Un usuario ingresa comandos
directamente en una shell interactiva, mientras que una shell no interactiva, como un script, se
ejecuta en segundo plano sin la intervención del usuario. Se invoca una shell de inicio de sesión
cuando un usuario inicia sesión localmente a través del terminal o de forma remota a través del
protocolo SSH. Una shell sin inicio de sesión se invoca desde una sesión existente, como abrir un
terminal desde la GUI de GNOME.
Para crear una variable que esté disponible para todas sus shells interactivas, edite el archivo
~/.bashrc. Para aplicar una variable solo una vez después de que el usuario inicie sesión,
defínala en el archivo ~/.bash_profile.
Por ejemplo, para cambiar el editor predeterminado cuando inicia sesión a través de SSH, puede
modificar la variable EDITOR en su archivo ~/.bash_profile:
# .bash_profile
nota
La mejor manera de ajustar la configuración que afecta a todas las cuentas de
usuario es agregando un archivo con una extensión .sh que contiene los cambios
en el directorio /etc/profile.d. Para crear los archivos en el directorio /etc/
profile.d, inicie sesión con el usuario root.
Alias de bash
Los alias de Bash son atajos a otros comandos de Bash. Por ejemplo, si debe escribir un comando
largo con frecuencia, puede crear un alias más corto para invocarlo. Puede usar el comando alias
para crear alias. Considere el siguiente ejemplo que crea un alias hello para un comando echo.
RH124-RHEL9.0-es-5-20230516 145
capítulo 5 | Crear, ver y editar archivos de texto
Agregar alias al archivo ~/.bashrc de un usuario para que estén disponibles en cualquier shell
interactiva.
[user@host ~]$
Para deshacer la exportación de una variable sin deshacer la configuración, use el comando
export -n:
Referencias
Páginas del manual: bash(1), env(1) y builtins(1)
146 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
Ejercicio Guiado
Resultados
• Editar un perfil de usuario.
• Crear una variable de shell.
• Crear una variable de entorno.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando garantiza que estén disponibles todos los recursos requeridos.
Instrucciones
1. Cambie la variable de shell student del usuario PS1 a [\u@\h \t \w]$ (recuerde poner
el valor de PS1 entre comillas e incluir un espacio final después del símbolo de dólar). Este
cambio agrega el tiempo al prompt.
1.1. Use el comando ssh para iniciar sesión en servera con el usuario student.
...output omitted...
export PATH
PS1='[\u@\h \t \w]$ '
1.4. Salga de servera y vuelva a iniciar sesión usando el comando ssh para actualizar
el prompt de comandos o ejecute el archivo ~/.bashrc con el comando source
~/.bashrc.
RH124-RHEL9.0-es-5-20230516 147
capítulo 5 | Crear, ver y editar archivos de texto
2. Asigne un valor a una variable de shell local. Los nombres de las variables pueden incluir
letras mayúsculas o minúsculas, dígitos y el carácter de guion bajo. Recupere el valor de la
variable.
2.1. Cree una nueva variable llamada file con un valor de tmp.zdkei083. El archivo
tmp.zdkei083 existe en el directorio de inicio de student.
3. Asigne un valor a la variable EDITOR. Use un comando para asignar la variable como una
variable de entorno.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
148 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
RH124-RHEL9.0-es-5-20230516 149
capítulo 5 | Crear, ver y editar archivos de texto
Trabajo de laboratorio
Resultados
• Usar Vim para editar archivos.
• Usar el modo visual de Vim para simplificar la edición de archivos grandes.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En workstation, cree la variable de shell lab_file y asigne editing_final_lab.txt
como valor. Enumere el directorio de inicio student, incluidos los directorios y archivos
ocultos, y redirija la salida al archivo editing_final_lab.txt mediante el uso de la
variable de shell.
2. Use Vim para editar el archivo editing_final_lab.txt. Use la variable de shell
lab_file.
3. Ingrese el modo visual basado en líneas de Vim. Su salida de pantalla puede ser diferente a
estos ejemplos. Elimine las primeras tres líneas del archivo editing_final_lab.txt.
4. Ingrese al modo visual de Vim. Elimine los últimos siete caracteres de la primera columna de
la primera línea. Conserve solo los primeros cuatro caracteres de la primera columna.
Use las teclas de flecha para ubicar el cursor en el último carácter de la primera columna de
la primera línea. Elimine la selección escribiendo x.
5. Ingrese al modo de bloque visual de Vim. Repita la operación del paso anterior, pero esta
vez seleccione desde la segunda hasta la última línea. Conserve solo los primeros cuatro
caracteres de la primera columna.
6. Ingrese el modo de bloque visual de Vim y elimine la cuarta columna del archivo.
7. Ingrese al modo de bloque visual de Vim para eliminar la columna de hora y deje las columnas
de mes y día en todas las líneas.
8. Ingrese al modo de línea visual de Vim y elimine las filas que contienen las cadenas Desktop
y Public.
9. Guarde sus cambios y salga del archivo.
150 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
10. Realice una copia de seguridad del archivo editing_final_lab.txt y agregue la fecha
(en segundos) al final del nombre del archivo precedido por un carácter de subrayado (_).
Use la variable de shell lab_file.
11. Agregue una línea discontinua al archivo editing_final_lab.txt. La línea discontinua
debe contener 12 caracteres de guion (-) para que este trabajo de laboratorio se califique
correctamente. Use la variable de shell lab_file.
12. Enumere el contenido del directorio Documents, agregue la salida al archivo
editing_final_lab.txt y muestre la salida en el terminal. Use el comando tee y la
variable de shell lab_file.
13. Confirme que el listado de directorios esté en la parte inferior del archivo de trabajo de
laboratorio. Use la variable de shell lab_file.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 151
capítulo 5 | Crear, ver y editar archivos de texto
Solución
Resultados
• Usar Vim para editar archivos.
• Usar el modo visual de Vim para simplificar la edición de archivos grandes.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En workstation, cree la variable de shell lab_file y asigne editing_final_lab.txt
como valor. Enumere el directorio de inicio student, incluidos los directorios y archivos
ocultos, y redirija la salida al archivo editing_final_lab.txt mediante el uso de la
variable de shell.
En la máquina workstation, cree la variable de shell lab_file y asigne
editing_final_lab.txt como valor. Use el comando ls -al en el directorio de inicio
student y redirija la salida al archivo editing_final_lab.txt.
3. Ingrese el modo visual basado en líneas de Vim. Su salida de pantalla puede ser diferente a
estos ejemplos. Elimine las primeras tres líneas del archivo editing_final_lab.txt.
Use las teclas de flecha para ubicar el cursor en el primer carácter de la primera línea. Ingrese
el modo visual basado en líneas con Shift+V. Desplácese hacia abajo usando la tecla de
flecha dos veces para seleccionar las primeras tres líneas. Elimine las líneas escribiendo x.
152 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
4. Ingrese al modo visual de Vim. Elimine los últimos siete caracteres de la primera columna de
la primera línea. Conserve solo los primeros cuatro caracteres de la primera columna.
Use las teclas de flecha para ubicar el cursor en el quinto carácter de la primera columna de
la primera línea. Ingrese al modo visual al escribir v.
Use las teclas de flecha para ubicar el cursor en el último carácter de la primera columna de
la primera línea. Elimine la selección escribiendo x.
5. Ingrese al modo de bloque visual de Vim. Repita la operación del paso anterior, pero esta
vez seleccione desde la segunda hasta la última línea. Conserve solo los primeros cuatro
caracteres de la primera columna.
Use las teclas de flecha para ubicar el cursor en el quinto carácter de la segunda línea.
Ingrese en el modo visual con la secuencia de control Ctrl+V. Use las teclas de flecha para
RH124-RHEL9.0-es-5-20230516 153
capítulo 5 | Crear, ver y editar archivos de texto
6. Ingrese el modo de bloque visual de Vim y elimine la cuarta columna del archivo.
Use las teclas de flecha para ubicar el cursor en el primer carácter de la cuarta columna.
Ingrese al modo de bloque visual con Ctrl+V. Use las teclas de flecha para ubicar el cursor
en el último carácter y la última fila de la cuarta columna. Elimine la selección escribiendo x.
7. Ingrese al modo de bloque visual de Vim para eliminar la columna de hora y deje las columnas
de mes y día en todas las líneas.
Use las teclas de flecha para ubicar el cursor en el primer carácter de la actual séptima
columna. Ingrese al modo de bloque visual escribiendo Ctrl+V. Use las teclas de flecha
154 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
para ubicar el cursor en el último carácter de la séptima columna de la última fila. Elimine la
selección escribiendo x.
8. Ingrese al modo de línea visual de Vim y elimine las filas que contienen las cadenas Desktop
y Public.
Use las teclas de flecha para ubicar el cursor en cualquier carácter de la fila Desktop.
Ingrese el modo visual con la V mayúscula. Se selecciona la línea completa. Elimine la
selección escribiendo x. Repita la operación para la fila con la cadena Public.
RH124-RHEL9.0-es-5-20230516 155
capítulo 5 | Crear, ver y editar archivos de texto
10. Realice una copia de seguridad del archivo editing_final_lab.txt y agregue la fecha
(en segundos) al final del nombre del archivo precedido por un carácter de subrayado (_).
Use la variable de shell lab_file.
Use el comando cp para realizar una copia de seguridad del archivo
editing_final_lab.txt. Use el comando $(date +%s) al final del nombre de la copia
de seguridad (backup) precedido por un carácter de guión bajo para que el nombre sea
único.
156 RH124-RHEL9.0-es-5-20230516
capítulo 5 | Crear, ver y editar archivos de texto
13. Confirme que el listado de directorios esté en la parte inferior del archivo de trabajo de
laboratorio. Use la variable de shell lab_file.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 157
capítulo 5 | Crear, ver y editar archivos de texto
Resumen
• Los programas o procesos en ejecución tienen tres canales de comunicación estándar: entrada
estándar, salida estándar y error estándar.
• Puede usar el redireccionamiento de E/S para leer la entrada estándar de un archivo o escribir la
salida o los errores de un proceso en un archivo.
• Las tuberías pueden conectar la salida estándar de un proceso a la entrada estándar de otro
proceso, y pueden formatear la salida o crear comandos complejos.
• Conozca cómo usar al menos un editor de texto de línea de comandos, y Vim es la opción
recomendada porque generalmente se instala de manera predeterminada en las distribuciones
de Linux.
158 RH124-RHEL9.0-es-5-20230516
capítulo 6
RH124-RHEL9.0-es-5-20230516 159
capítulo 6 | Gestión de usuarios y grupos locales
Objetivos
Describir el propósito de los usuarios y grupos en un sistema Linux.
¿Qué es un usuario?
Una cuenta de usuario proporciona límites de seguridad entre personas y programas que pueden
ejecutar comandos.
Los usuarios tienen nombres de usuario para identificarlos como usuarios humanos y facilitar el
trabajo. 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. En la mayoría de los escenarios, si una persona usa
una cuenta de usuario, el sistema asigna una contraseña secreta para que el usuario demuestre
que es el usuario autorizado para 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. Con la propiedad del archivo, al sistema aplica el control de acceso
para los usuarios de los archivos. El usuario que está asociado con un proceso de ejecución
determina los archivos y directorios accesibles para ese proceso.
Hay cuentas de usuario de los siguientes tipos principales: 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 para proteger sus archivos y otros recursos
entre sí y de los usuarios habituales del sistema. Los usuarios no inician sesión de forma
interactiva con 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:
160 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Use el comando ls -l para ver el propietario de un archivo. Use el comando ls -ld para ver
el propietario de un directorio, en lugar del contenido de ese directorio. 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 el comando ps con la opción -a para ver
todos los procesos con una terminal. Use el comando ps con la opción -u para ver el usuario
asociado con un proceso. En la siguiente salida, la primera columna muestra el nombre de usuario.
En la salida de los comandos anteriores, se muestran los usuarios por nombre, pero, internamente,
el sistema operativo usa 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. El archivo se divide
en siete campos separados por dos puntos. A continuación, se muestra un ejemplo de una línea de
/etc/passwd:
Considere cada parte del bloque de código, separada por dos puntos:
RH124-RHEL9.0-es-5-20230516 161
capítulo 6 | Gestión de usuarios y grupos locales
• /bin/bash : El programa de shell predeterminado para este usuario, que se ejecuta al iniciar
sesión. Algunas cuentas usan la shell /sbin/nologin para no permitir inicios de sesión
interactivos con esa cuenta.
¿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 otorgan acceso a los archivos a un conjunto de usuarios en lugar
de a un solo usuario.
Al igual que los usuarios, los grupos tienen nombres de grupo para facilitar el reconocimiento.
Internamente, el sistema distingue los grupos por el número de identificación único, el ID de
grupo o GID, que se les asigna. La asignación de nombres de grupo a GID se define en las
bases de datos de gestión de identidades de la información de la cuenta de grupo. De forma
predeterminada, los sistemas usan el archivo /etc/group para almacenar información sobre los
grupos locales.
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. A continuación, se muestra un ejemplo de
una línea de /etc/group:
Considere cada parte del bloque de código, separada por dos puntos:
Cuando se crea un usuario regular, se crea un grupo con el mismo nombre que el usuario, para
que sea el grupo principal para el usuario. El usuario es el único miembro de este grupo privado de
usuarios. Este diseño de membresía de grupo simplifica la gestión de permisos de archivos, para
que los grupos de usuarios estén separados de forma predeterminada.
162 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
[user01@host ~]$ id
uid=1001(user01) gid=1003(user01) groups=1003(user01),10(wheel),10000(group01)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Referencias
Páginas del manual: id(1), passwd(5) y group(5)
(El paquete glibc-devel se debe haber instalado para que este nodo info esté
disponible).
RH124-RHEL9.0-es-5-20230516 163
capítulo 6 | Gestió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
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
164 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
RH124-RHEL9.0-es-5-20230516 165
capítulo 6 | Gestió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
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
166 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
RH124-RHEL9.0-es-5-20230516 167
capítulo 6 | Gestión de usuarios y grupos locales
Objetivos
Cambiar a la cuenta de superusuario para gestionar 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 un 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 puede usarlo para gestionar y
administrar el sistema. Para tareas como la instalación o eliminación de software, y para gestionar
los directorios y los archivos del sistema, los usuarios deben aumentar sus privilegios al usuario
root.
Por lo general, solo el usuario root puede controlar la mayoría de los dispositivos, pero se
aplican algunas excepciones. Los usuarios normales pueden controlar dispositivos desmontables,
como dispositivos USB. Por lo tanto, los usuarios normales pueden agregar y eliminar archivos y
gestionar de otro modo un dispositivo desmontable, pero solo el usuario root puede gestionar los
discos duros 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 de usuario root se ve comprometida, el
sistema está en peligro y es posible que pierda el control administrativo. Red Hat invita a los
administradores de sistemas a que inicien sesión como usuario normal y que escalen los privilegios
a root solo cuando sea necesario.
Advertencia
Los usuarios de Microsoft Windows pueden estar familiarizados con la práctica
de iniciar sesión con el usuario local Administrator para realizar tareas de
administrador del sistema. En la actualidad, no se recomienda esta práctica; los
usuarios obtienen privilegios para realizar la administración mediante membresías
en el grupo Administrators. De manera similar, en RHEL, Red Hat recomienda
que los administradores del sistema nunca inicien sesión directamente como root.
En cambio, los administradores de sistema deben iniciar sesión como usuario normal
y usar mecanismos (su, sudo o PolicyKit, por ejemplo) para obtener privilegios
de superusuario temporalmente.
Al haber iniciado sesión como root, todo el entorno de escritorio se ejecuta sin
necesidad con privilegios administrativos. Una vulnerabilidad de seguridad que
normalmente podría comprometer solo una cuenta de usuario normal puede poner
en peligro todo el sistema.
168 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Este ejemplo usa el comando su de la cuenta user01 para cambiar a la cuenta user02:
[user01@host ~]$ su -
Password: root_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 inicia una shell como ese usuario, pero usa la configuración de entorno del usuario original.
Normalmente, 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 uso más frecuente del comando su es obtener una interfaz de línea de comandos
(prompt de shell) que se ejecuta como otro usuario, generalmente el usuario
root. Sin embargo, puede usar el comando su con la opción -c para ejecutar un
programa arbitrario como otro usuario. Este comportamiento es similar a la utilidad
de Windows runas. Ejecute info su para ver más detalles.
A diferencia del comando su, sudo por lo general requiere que los usuarios ingresen su propia
contraseña para la autenticación y no la contraseña de la cuenta de usuario a la que intentan
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.
En la siguiente tabla, se resumen las diferencias entre los comandos su, su -y sudo :
RH124-RHEL9.0-es-5-20230516 169
capítulo 6 | Gestión de usuarios y grupos locales
su su - sudo
Privilegios Igual que el nuevo Igual que el nuevo Definido por configuración
usuario usuario
Además, puede configurar el comando sudo 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, puede ejecutar el siguiente comando a fin de bloquear o desbloquear una cuenta de
usuario:
Otro beneficio de sudo es registrar de manera predeterminada todos los comandos ejecutados en
/var/log/secure.
En Red Hat Enterprise Linux 7 y versiones posteriores, todos los miembros del grupo wheel
pueden usar sudo para ejecutar comandos como cualquier usuario, incluido el usuario root,
usando su propia contraseña.
170 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Advertencia
Históricamente, los sistemas UNIX usan la membresía del grupo wheel para otorgar
o controlar el acceso como superusuario. RHEL 6 no otorgó ningún privilegio
especial al grupo wheel de manera predeterminada. Los administradores de
sistemas que anteriormente usaron este grupo para un propósito no estándar deben
actualizar una configuración anterior, para evitar que usuarios inesperados y no
autorizados obtengan acceso administrativo en RHEL 7 y sistemas posteriores.
Por ejemplo, un administrador puede obtener una shell interactiva como root en una instancia de
AWS Elastic Cloud Computing (EC2) al usar una autenticación de clave pública de SSH para iniciar
sesión con el usuario normal ec2-user. Luego, ejecute el comando sudo -i para acceder a la
shell del usuario root.
Configuración de Sudo
El archivo /etc/sudoers es el archivo de configuración principal del comando sudo. Para evitar
problemas si varios administradores intentan editar el archivo al mismo tiempo, puede editarlo solo
con el comando especial visudo. El editor visudo también valida el archivo para garantizar que
no haya errores de sintaxis.
Por ejemplo, la siguiente línea del archivo /etc/sudoers habilita el acceso sudo para miembros
del grupo wheel:
• El comando ALL=(ALL:ALL) especifica que en cualquier host con este archivo (el primer ALL),
los usuarios en el grupo wheel pueden ejecutar comandos como cualquier otro usuario (el
segundo ALL) y cualquier otro grupo (el tercero ALL) en el sistema.
• El comando final ALL especifica que los usuarios en el grupo wheel pueden ejecutar cualquier
comando.
RH124-RHEL9.0-es-5-20230516 171
capítulo 6 | Gestión de usuarios y grupos locales
nota
Puede habilitar o deshabilitar el acceso sudo al copiar un archivo en el directorio o
eliminándolo de él.
Para habilitar el acceso sudo completo para el usuario user01, puede crear el archivo /etc/
sudoers.d/user01 con el siguiente contenido:
Para habilitar el acceso sudo completo para el grupo group01, puede crear el archivo /etc/
sudoers.d/group01 con el siguiente contenido:
Para permitir que los usuarios en el grupo games ejecuten el comando id con el usuario
operator, puede crear el archivo /etc/sudoers.d/games con el siguiente contenido:
También es posible configurar sudo para permitir que un usuario ejecute comandos como otro
usuario sin ingresar su contraseña, con el comando NOPASSWD: ALL:
Si bien otorgar este nivel de acceso a un usuario o grupo implica riesgos de seguridad evidentes,
los administradores del sistema suelen usar este enfoque en instancias de la nube, máquinas
virtuales y sistemas de aprovisionamiento para configurar servidores. La cuenta con este acceso
se debe proteger 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, Amazon Machine Image (AMI) oficial de Red Hat Enterprise Linux en Amazon Web
Services Marketplace se envía con las contraseñas root y ec2-user bloqueadas. La cuenta 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:
Puede volver a habilitar el requisito de ingresar una contraseña para sudo o puede hacer otros
cambios para reforzar la seguridad como parte de la configuración del sistema.
172 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Referencias
Páginas del manual: su(1), sudo(8), visudo(8) y sudoers(5)
(El paquete glibc-doc se debe haber instalado para que este nodo info esté
disponible).
RH124-RHEL9.0-es-5-20230516 173
capítulo 6 | Gestión de usuarios y grupos locales
Ejercicio Guiado
Resultados
• Usar el comando sudo para cambiar al usuario root y acceder a la shell interactiva como
root sin tener que saber la contraseña del superusuario.
• Explicar cómo los comandos su y su - pueden afectar al entorno de la shell al ejecutar o
no ejecutar los scripts de inicio de sesión.
• Usar el comando sudo para ejecutar otros comandos con el usuario root.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En workstation, abra una sesión de SSH servera con el usuario student.
2. Explore el entorno de la shell del usuario 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
174 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestió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 al usuario 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.
3.5. Salga de la shell del usuario root para volver a la shell del usuario student.
RH124-RHEL9.0-es-5-20230516 175
capítulo 6 | Gestión de usuarios y grupos locales
4. Cambie al usuario root en una shell con 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.
176 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
5. Verifique que el usuario operator1 pueda ejecutar cualquier comando como cualquier
usuario mediante el uso del comando sudo.
6.2. Intente ver las últimas cinco líneas de /var/log/messages sin usar sudo. No
debería poder.
6.3. Intente ver las últimas cinco líneas de /var/log/messages usando sudo. Debe ser
capaz de realizarse de manera correcta.
nota
La salida anterior puede diferir en su sistema.
6.4. Intente copiar /etc/motd como /etc/motdOLD sin usar sudo. No debería poder.
6.5. Intente copiar /etc/motd como /etc/motdOLD usando sudo. Debe ser capaz de
realizarse de manera correcta.
RH124-RHEL9.0-es-5-20230516 177
capítulo 6 | Gestión de usuarios y grupos locales
6.7. Intente eliminar /etc/motdOLD usando sudo. Debe ser capaz de realizarse de
manera correcta.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
178 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Objetivos
Crear, modificar y eliminar cuentas de usuario locales.
El comando useradd --help muestra las opciones básicas para anular los valores
predeterminados. Normalmente, puede usar las mismas opciones con el comando usermod para
modificar un usuario existente.
En Red Hat Enterprise Linux 9, el comando useradd asigna a los nuevos usuarios el primer UID
libre mayor o igual a 1000, a menos que especifique explícitamente un UID mediante la opción -u.
RH124-RHEL9.0-es-5-20230516 179
capítulo 6 | Gestión de usuarios y grupos locales
Advertencia
Cuando elimina un usuario sin especificar la opción userdel -r, los archivos del
usuario ahora son propiedad de un UID no asignado. Si crea un usuario y a ese
usuario se le asigna el UID del usuario eliminado, la nueva cuenta será propietaria de
esos archivos, lo que supone un riesgo para la seguridad. Por lo general, las políticas
de seguridad de la organización no permiten la eliminación de cuentas de usuario y,
en cambio, bloquean su uso para evitar este escenario.
Observe que user02 ahora es propietario de todos los archivos que pertenecieron
a user01. El usuario root puede usar el comando find / -nouser -o -
nogroup para encontrar todos los archivos y directorios que no pertenecen a nadie.
180 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Un usuario regular debe elegir una contraseña de al menos ocho caracteres. No use una palabra
del diccionario, el nombre de usuario ni 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: UID de la cuenta del sistema asignados estáticamente a los procesos del sistema.
• UID 201-999: UID asignados a procesos del sistema que no poseen archivos en este sistema.
El software que requiere un UID sin privilegios se asigna dinámicamente desde este conjunto
disponible.
• UID 1000+: el rango de UID para asignar a usuarios regulares sin privilegios.
nota
RHEL 6 y las versiones anteriores usan UID en el rango de 1 a 499 para usuarios del
sistema y UID superiores a 500 para usuarios regulares. Puede cambiar los rangos
predeterminados useradd y groupadd en el archivo /etc/login.defs.
Referencias
Páginas del manual: useradd(8), usermod(8) y userdel(8)
RH124-RHEL9.0-es-5-20230516 181
capítulo 6 | Gestión de usuarios y grupos locales
Ejercicio Guiado
Resultados
• Configurar un sistema Linux con cuentas de usuario adicionales.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Desde workstation, abra una sesión de SSH en servera con el usuario student y
cambie al usuario root.
182 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
4. Cree los usuarios adicionales operator2 y operator3. Establezca sus contraseñas como
redhat.
5. Actualice las cuentas de usuario operator1 y operator2 para incluir los comentarios
Operator One y Operator Two, respectivamente. Verifique que existan los comentarios
para las cuentas de usuario.
5.3. Vea el archivo /etc/passwd para confirmar que existen los comentarios para cada
uno de los usuarios operator1 y operator2.
6. Elimine el usuario operator3 junto con cualquier dato personal del usuario. Confirme que
operator3 no existe.
RH124-RHEL9.0-es-5-20230516 183
capítulo 6 | Gestión de usuarios y grupos locales
6.4. Salga de la shell del usuario root para volver a la shell del usuario student.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
184 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Objetivos
Crear, modificar y eliminar cuentas de grupo locales.
El comando groupadd con la opción -g especifica un GID para que el grupo use.
nota
Debido a la creación automática de grupos privados de usuarios (GID 1000+),
algunos administradores reservan un rango separado de GID para crear grupos
complementarios con otros fines. Sin embargo, esta gestión adicional no es
necesaria, ya que el UID y el GID primario de un usuario no necesitan ser el mismo
número.
El comando groupadd con la opción -r crea grupos del sistema. Al igual que con los grupos
normales, los grupos del sistema usan un GID del rango de GID del sistema válidos enumerados en
el archivo /etc/login.defs. Los ítems de configuración SYS_GID_MIN y SYS_GID_MAX en el
archivo /etc/login.defs definen el rango de GID del sistema.
RH124-RHEL9.0-es-5-20230516 185
capítulo 6 | Gestión de usuarios y grupos locales
Observe que el nombre del grupo se actualiza a group0022 desde group02. El comando
groupmod con la opción -g especifica un nuevo GID.
nota
No puede eliminar un grupo si es el grupo principal de un usuario existente. De
manera similar a usar el comando userdel, asegúrese primero que ubique los
archivos que son propiedad del grupo.
186 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Importante
El comando usermod con la opción -a habilita el modo de adición. Sin la opción
-a, el comando elimina al usuario de cualquiera de los grupos complementarios
actuales que no estén incluidos en la lista de la opción -G.
Los grupos complementarios de un usuario son los grupos adicionales que están configurados
para el usuario y visualizados en la entrada del usuario en el archivo /etc/group. Un usuario
puede pertenecer a tantos grupos complementarios como sea necesario para implementar el
acceso a los archivos y los permisos de manera eficaz.
Para configurar permisos de archivos basados en grupos, no existe diferencia entre los grupos
primarios y complementarios de un usuario. Si el usuario pertenece a un grupo al que se le ha
asignado acceso a archivos específicos, ese usuario tiene acceso a esos archivos.
Use el comando newgrp para cambiar su grupo primario, en esta sesión de shell. Puede cambiar
entre cualquier grupo primario o complementario al que pertenezca, pero solo un grupo a la vez
puede ser primario. Su grupo primario vuelve al valor predeterminado si cierra la sesión y vuelve a
iniciarla. En este ejemplo, el grupo group01 se convierte temporalmente en el grupo principal de
este usuario.
[user03@host ~]# id
uid=1007(user03) gid=1009(user03) groups=1009(user03),10000(group01)
[user03@host ~]$ newgrp group01
[user03@host ~]# id
uid=1007(user03) gid=10000(group01) groups=1009(user03),10000(group01)
Referencias
Páginas del manual: group(5), groupadd(8), groupdel(8) y usermod(8)
RH124-RHEL9.0-es-5-20230516 187
capítulo 6 | Gestión de usuarios y grupos locales
Ejercicio Guiado
Resultados
• Crear grupos y usarlos como grupos complementarios.
• Configurar acceso sudo para un grupo.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando crea las cuentas de usuario necesarias para configurar el entorno
correctamente.
Instrucciones
1. Desde workstation, abra una sesión de SSH en servera con el usuario student y
cambie al usuario root.
188 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
RH124-RHEL9.0-es-5-20230516 189
capítulo 6 | Gestión de usuarios y grupos locales
6.4. Cree el archivo /etc/sudoers.d/admin para que los miembros del grupo admin
tengan privilegios administrativos completos.
6.5. Cambie al usuario sysadmin1 (un miembro del grupo admin) y asegúrese de poder
ejecutar un comando sudo.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
190 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Objetivos
Establecer una política de gestión de contraseñas para los usuarios, y bloquear y desbloquear
manualmente las cuentas de los usuarios.
Al igual que el archivo /etc/passwd, cada usuario tiene una entrada con en el archivo /etc/
shadow. Una entrada de ejemplo del archivo /etc/shadow tiene nueve campos separados por
dos puntos:
Cada campo de este bloque de código está separado por dos puntos:
• 17933 : Días desde la época en que se cambió la contraseña por última vez, donde la época es
1970-01-01 en la zona horaria UTC.
• 0 : El número mínimo de días que deben transcurrir desde el último cambio de contraseña antes
de que el usuario pueda volver a cambiarla.
• 99999 : El número máximo de días que pueden transcurrir sin un cambio de contraseña antes de
que la contraseña caduque. Un campo vacío significa que la contraseña nunca caduca.
• 2 : Cantidad de días sin actividad, comenzando con el día en que caducó la contraseña, antes de
que la cuenta se bloquee automáticamente.
• 18113 : Día en que la cuenta caduca en días desde la época. Un campo vacío significa que la
cuenta nunca caduca.
• Por lo general, el último campo está vacío y se reserva para su uso en el futuro.
RH124-RHEL9.0-es-5-20230516 191
capítulo 6 | Gestión de usuarios y grupos locales
$6$CSsXcYG1L/4ZfHr/$2W6evvJahUfzfHpc9X.45Jc6H30E
• 6 : El algoritmo de hash usado para esta contraseña. Un 6 indica un hash SHA-512, el RHEL 9
predeterminado, un 1 indica MD5 y un 5 indica SHA-256.
El motivo principal para combinar un valor aleatorio con la contraseña es defenderse contra los
ataques que usan 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 obtiene una copia de un archivo /etc/shadow que usa valores aleatorios, necesita
adivinar las contraseñas con fuerza bruta, lo que requiere 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 el archivo /etc/shadow y combina el valor aleatorio del usuario con la contraseña de texto sin
formato que se ingresó. A continuación, el sistema aplica un hash criptográfico a la combinación
de la contraseña de texto sin formato y valor aleatorio con el algoritmo de hash especificado.
Si el resultado coincide con el hash criptográfico, el usuario ingresó la contraseña correcta. Si el
resultado no coincide con el hash criptográfico, 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 para el inicio de
sesión.
192 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Supongamos que gestiona las políticas de contraseña de usuario en un servidor de Red Hat. El
usuario cloudadmin10 es nuevo en el sistema y usted desea establecer una política de vigencia
de contraseña personalizada. Desea establecer la caducidad de la cuenta en 30 días a partir de
hoy, por lo que debe usar los siguientes comandos:
Use el comando chage con la opción -E para cambiar la fecha de vencimiento para el usuario
cloudadmin10.
Use el comando chage con la opción -l para mostrar la política de vigencia de la contraseña
para el usuario cloudadmin10.
La próxima vez que el usuario cloudadmin10 inicie sesión, se le solicitará que cambie la
contraseña.
nota
El comando date puede calcular una fecha en el futuro. La opción -u informa la
hora en UTC.
RH124-RHEL9.0-es-5-20230516 193
capítulo 6 | Gestión de usuarios y grupos locales
el curso Red Hat Security: Linux in Physical, Virtual, and Cloud (RH415) y la página del manual
login.defs(5).
Restricción de acceso
Puede usar el comando usermod para modificar el vencimiento de la cuenta de un usuario. Por
ejemplo, el comando usermod con la opción -L bloquea una cuenta de usuario y el usuario no
puede iniciar sesión en el sistema.
Al bloquear una cuenta, evita que el usuario logre la autenticación con una contraseña en el
sistema. Este método se recomienda para evitar el acceso a una cuenta por parte de un ex
empleado de la empresa. Use el comando usermod con la opción -U para habilitar el acceso a la
cuenta nuevamente.
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. Es una buena práctica de seguridad
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 para recuperar
correo. Dicho usuario no debe iniciar sesión directamente en el sistema.
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.
194 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Referencias
Páginas del manual: chage(1), usermod(8), shadow(5), crypt(3) y
login.defs(5)
RH124-RHEL9.0-es-5-20230516 195
capítulo 6 | Gestión de usuarios y grupos locales
Ejercicio Guiado
Resultados
• Forzar un cambio de contraseña cuando el usuario inicia sesión en el sistema por primera
vez.
• Forzar un cambio de contraseña cada 90 días.
• Configurar la cuenta para que caduque 180 días a partir del día actual.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Desde workstation, abra una sesión de SSH con el usuario student en la máquina
servera.
2.1. Con el usuario student, use los derechos administrativos para bloquear la cuenta
operator1.
2.2. Intente iniciar sesión como operator1. Este comando debería fallar.
196 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
2.4. Intente iniciar sesión como operator1 nuevamente. Esta vez, el comando debería
ser exitoso.
2.5. Cierre sesión en la shell del usuario operator1 para volver a la shell del
usuariostudent.
3.3. Verifique que la contraseña del usuario operator1 caduque 90 días después de que
se modifica.
RH124-RHEL9.0-es-5-20230516 197
capítulo 6 | Gestión de usuarios y grupos locales
6.2. Salga de la shell del usuario operator1 para volver al usuario student y luego
cambie al usuario root.
7. Configure la cuenta operator1 para que caduque 180 días a partir del día actual.
7.1. Determine la fecha de vencimiento en 180 días. Use el formato %F con el comando
date para obtener el valor exacto. Esta fecha devuelta es un ejemplo; use el valor en
su sistema para los pasos posteriores a este.
7.2. Configure la cuenta para que caduque en la fecha que se muestra en el paso anterior.
Por ejemplo:
198 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
8. 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.
...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_WARN_AGE 7
...output omitted...
Importante
La contraseña predeterminada y la configuración de caducidad de la cuenta aplican
a los nuevos usuarios, pero no a los usuarios existentes.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 199
capítulo 6 | Gestión de usuarios y grupos locales
200 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Trabajo de laboratorio
Resultados
• Establecer una política de vigencia de contraseña predeterminada de la contraseña del
usuario local.
• Configurar los miembros del grupo complementario para usar el comando sudo para
ejecutar cualquier comando como cualquier usuario.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, abra una sesión de SSH en la máquina serverb con el usuario
student y cambie al usuario root.
2. En la máquina serverb, asegúrese de que los usuarios creados recientemente tengan
contraseñas que se deben cambiar cada 30 días.
3. Cree el grupo consultants con un GID de 35000.
4. Configure los derechos administrativos para permitir que todos los miembros del grupo
consultants ejecuten cualquier comando como cualquier usuario. Evite usar visudo
para editar el archivo /etc/sudoers. En su lugar, coloque el archivo de configuración en el
directorio /etc/sudoers.d.
5. Cree los usuarios consultant1, consultant2 y consultant3 con el grupo
consultants como grupo complementario.
6. Establezca las contraseñas consultant1, consultant2 y consultant3 como redhat.
7. Configure las cuentas consultant1, consultant2 y consultant3 para que venzan en
90 días a partir del día actual.
RH124-RHEL9.0-es-5-20230516 201
capítulo 6 | Gestión de usuarios y grupos locales
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
202 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Solución
Resultados
• Establecer una política de vigencia de contraseña predeterminada de la contraseña del
usuario local.
• Configurar los miembros del grupo complementario para usar el comando sudo para
ejecutar cualquier comando como cualquier usuario.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, abra una sesión de SSH en la máquina serverb con el usuario
student y cambie al usuario root.
RH124-RHEL9.0-es-5-20230516 203
capítulo 6 | Gestió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_WARN_AGE 7
...output omitted...
4. Configure los derechos administrativos para permitir que todos los miembros del grupo
consultants ejecuten cualquier comando como cualquier usuario. Evite usar visudo
para editar el archivo /etc/sudoers. En su lugar, coloque el archivo de configuración en el
directorio /etc/sudoers.d.
204 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
9.1. Establezca el último día del cambio de contraseña en 0 para que los usuarios deban
cambiar la contraseña cuando inicien sesión en el sistema por primera vez.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
RH124-RHEL9.0-es-5-20230516 205
capítulo 6 | Gestión de usuarios y grupos locales
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
206 RH124-RHEL9.0-es-5-20230516
capítulo 6 | Gestión de usuarios y grupos locales
Resumen
• Los tipos de cuentas de usuario en Linux son: el superusuario, los usuarios del sistema y los
usuarios normales.
• Los tres archivos críticos que contienen información de usuarios y grupos son /etc/passwd, /
etc/group y /etc/shadow.
RH124-RHEL9.0-es-5-20230516 207
208 RH124-RHEL9.0-es-5-20230516
capítulo 7
RH124-RHEL9.0-es-5-20230516 209
capítulo 7 | Control de acceso a los archivos
Objetivos
Enumerar los permisos del sistema de archivos en archivos y directorios, e interpretar el efecto de
esos permisos en el acceso de los usuarios y grupos.
Los archivos tienen tres categorías de usuario a las que se les aplican permisos. El propietario del
archivo es un usuario que normalmente es quien lo creó. También es posible que el propietario del
archivo sea un solo grupo, generalmente el grupo principal del usuario que creó el archivo, pero
esto se puede cambiar.
Los permisos más específicos tienen prioridad. Los permisos de usuario anulan los permisos de
grupo, lo cual anula los permisos de other.
Como ejemplo de cómo la pertenencia a un grupo permite la colaboración entre usuarios, imagine
que su sistema tiene dos usuarios: alice y bob. alice es miembro de los grupos alice y web,
y bob es miembro de los grupos bob, wheel y web. Cuando alice y bob trabajan juntos, los
archivos deben asociarse con el grupo web y los permisos del grupo deben permitir a ambos
usuarios tener acceso a los archivos.
Se usan tres categorías de permisos: lectura, escritura y ejecución. En la siguiente tabla, se explica
cómo estos permisos afectan el acceso a archivos y directorios.
Los usuarios normalmente poseen permisos tanto de lectura como de ejecución en los directorios
de solo lectura, por lo que pueden enumerar el directorio y tener acceso completo de solo
lectura a todos sus contenidos. Si un usuario solo tiene acceso de lectura en un directorio, puede
210 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
enumerar los nombres de los archivos que contiene. Sin embargo, el usuario no puede acceder a
otra información, como permisos o marcas de tiempo. Si un usuario solo tiene acceso de ejecución
en un directorio, no puede enumerar nombres de archivo en el directorio. Si el usuario conoce el
nombre de un archivo para el cual tiene permiso de lectura, puede acceder al contenido de ese
archivo desde fuera del directorio al especificar explícitamente el nombre de archivo relativo.
Todo usuario que sea propietario o cuente con permisos de escritura para el directorio puede
quitar un archivo de él, sin importar la propiedad ni los permisos del archivo en sí. Puede anular
este comportamiento mediante el uso del permiso sticky bit, que se analizará más adelante en
este capítulo.
nota
Los permisos de archivos Linux funcionan de manera diferente al sistema de
permisos del sistema de archivos NTFS para Windows. En Linux, los permisos se
aplican solo al archivo o directorio en el que están configurados. Los subdirectorios
dentro de un directorio no heredan automáticamente los permisos del directorio
principal. Sin embargo, los permisos de un directorio pueden bloquear el acceso al
contenido del directorio si están definidos de manera restrictiva.
Use el comando ls con la opción -d para mostrar información detallada sobre un directorio, y no
sobre su contenido.
El primer carácter del listado extenso representa el tipo de archivo, que se interpreta de la
siguiente manera:
• - es un archivo regular.
• d es un directorio.
• l es un enlace simbólico.
RH124-RHEL9.0-es-5-20230516 211
capítulo 7 | Control de acceso a los archivos
Los siguientes nueve caracteres representan los permisos de archivo. Estos caracteres se
interpretan como tres conjuntos de tres caracteres: el primer conjunto son permisos que se
aplican al propietario del archivo. El segundo conjunto son para el propietario del grupo del
archivo. El último conjunto se aplica a todos los demás usuarios (mundiales). Si el conjunto es
una cadena rwx, esa categoría tiene los tres permisos: lectura, escritura y ejecución. Si se ha
reemplazado una letra por un carácter de guion -, entonces esa categoría no tiene ese permiso.
En el primer ejemplo, los permisos para el usuario student se especifican mediante el primer
conjunto de tres caracteres. El usuario student tiene permisos de lectura y escritura en el
archivo test, pero no tiene permiso de ejecución. El segundo conjunto de tres caracteres son los
permisos para el grupo student: permisos de lectura y escritura en test, pero no de ejecución.
El tercer conjunto de tres caracteres son los permisos para el resto de los usuarios; solo tienen
permiso de lectura para test.
Se aplica el conjunto de permisos más específicos. Por lo tanto, si el usuario student tiene
diferentes permisos del grupo student, y el usuario student también es miembro de ese grupo,
solo se aplican los permisos del usuario propietario. Este permiso permite establecer un conjunto
de permisos más restrictivo en un usuario que el que proporciona su membresía de grupo, cuando
puede no ser práctico eliminar al usuario del grupo.
Esos usuarios trabajan con archivos en el directorio dir. A continuación se incluye un listado
extenso de los archivos en ese directorio:
212 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
El comando ls con la opción -a muestra los permisos de los archivos ocultos, incluidos los
archivos especiales usados para representar el directorio y su directorio principal. En este ejemplo,
el directorio especial . refleja los permisos de dir, y el directorio especial .., los permisos de su
directorio principal.
Para el archivo db1.conf, el usuario propietario del archivo (database1) tiene permisos de
lectura y escritura en el archivo, pero no tiene permiso de ejecución. El grupo que es propietario
del archivo (consultant1) tiene permisos de lectura y escritura, pero no de ejecución. Todos los
demás usuarios tienen permiso de lectura, pero no de escritura ni de ejecución.
En la siguiente tabla, se muestran algunos efectos de este conjunto de permisos para estos
usuarios:
RH124-RHEL9.0-es-5-20230516 213
capítulo 7 | Control de acceso a los archivos
Referencias
Página del manual: ls(1)
214 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Cuestionario
1. ¿Qué archivo regular posee el usuario operator1 y todos los usuarios pueden leer?
a. app1.log
b. app2.log
c. db1.conf
d. db2.conf
RH124-RHEL9.0-es-5-20230516 215
capítulo 7 | Control de acceso a los archivos
216 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Solución
1. ¿Qué archivo regular posee el usuario operator1 y todos los usuarios pueden leer?
a. app1.log
b. app2.log
c. db1.conf
d. db2.conf
RH124-RHEL9.0-es-5-20230516 217
capítulo 7 | Control de acceso a los archivos
218 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Objetivos
Cambiar los permisos y la propiedad de los archivos con las herramientas de línea de comandos.
Quién es la clase de usuario, como se muestra en la siguiente tabla. Si no proporciona una clase de
usuario, el comando chmod usa el grupo all como predeterminado.
Cuál es el modo y especifica los permisos para los archivos o directorios, como se muestra en la
siguiente tabla.
RH124-RHEL9.0-es-5-20230516 219
capítulo 7 | Control de acceso a los archivos
El método simbólico de cambiar los permisos del archivo usa letras para representar los grupos de
permisos: u para usuario, g para grupo, o para otros y a para todos.
Una sola letra representa los permisos en sí: r para lectura, w para escritura y x para ejecución.
Puede usar una mayúscula X como indicador de permiso para agregar permisos de ejecución solo
si el archivo es un directorio o si la ejecución ya está configurada para usuario, grupo u otro.
En la siguiente lista, se muestran algunos ejemplos para cambiar los permisos con el método
simbólico:
Puede usar el comando chmod con la opción -R para establecer permisos de manera recursiva en
los archivos, en todo el árbol de directorios. Por ejemplo, el siguiente comando agrega de manera
recursiva permisos de lectura, escritura y ejecución para los miembros del grupo que poseen el
directorio myfolder y los archivos y directorios dentro de este.
También puede usar el comando chmod con la opción -R y la opción -X para establecer permisos
simbólicamente. Con el comando chmod, opción X, puede establecer el permiso de ejecución
(búsqueda) 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, la opción X establece el permiso de ejecución
especificado también en ese archivo.
220 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
pero aplica permisos de ejecución de grupo solo a directorios y archivos que ya tienen permisos de
ejecución establecidos para usuario, grupo u otros.
Al usar el método octal, puede representar los permisos con 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 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:
• Comience con 0.
• Para agregar permisos de lectura para este nivel de acceso, agregue 4.
• Para agregar permisos de escritura, agregue 2.
• Para agregar permisos de ejecución, agregue 1.
En el siguiente diagrama, se ilustra cómo los sistemas interpretan el valor de permiso octal 644.
En la siguiente lista, se muestran algunos ejemplos para cambiar los permisos con el método octal:
Establezca permisos de lectura y escritura para el usuario, permiso de lectura para el grupo y otros
en el archivo sample.txt:
Establezca permisos de lectura, escritura y ejecución para usuario, permisos de lectura y ejecución
para grupo y ningún permiso para otros en el directorio sampledir:
RH124-RHEL9.0-es-5-20230516 221
capítulo 7 | Control de acceso a los archivos
Solo el usuario root puede cambiar el usuario que es propietario de un archivo. Sin embargo, el
propietario del archivo y el usuario root pueden establecer la propiedad del grupo. El usuario
root puede otorgar propiedad del archivo a cualquier grupo, pero solo los usuarios regulares
pueden cambiar la propiedad del grupo del archivo si son miembros del grupo de destino.
Puede cambiar la propiedad del archivo con el comando chown (cambiar propietario). Por
ejemplo, para otorgarle propiedad del archivo app.conf al usuario student, use el siguiente
comando:
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 Pictures a admins:
Puede usar el comando chown para cambiar el propietario y el grupo al mismo tiempo. Para ello,
puede usar la sintaxis propietario:grupo. Por ejemplo, para cambiar la propiedad del directorio
Pictures al usuario visitor y el grupo a guests, use el siguiente comando:
En lugar de usar el comando chown, algunos usuarios cambian la propiedad del grupo usando el
comando chgrp. Este comando funciona de manera similar a chown, excepto que solo puede
usarlo para cambiar la propiedad del grupo y no se requieren los dos puntos (:) antes del nombre
del grupo.
222 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Importante
Puede encontrar una sintaxis alternativa chown que separa al propietario y al grupo
con un punto en lugar de dos puntos:
Red Hat recomienda no usar esta sintaxis y usar siempre dos puntos. Debido a que
un punto es un carácter válido en un nombre de usuario, un comando chown puede
malinterpretar su intención. El comando puede interpretar el usuario y el grupo
como un nombre de archivo. En su lugar, solo use dos puntos cuando configure el
usuario y el grupo al mismo tiempo.
Referencias
Páginas del manual: ls(1), chmod(1), chown(1) y chgrp(1)
RH124-RHEL9.0-es-5-20230516 223
capítulo 7 | Control de acceso a los archivos
Ejercicio Guiado
Resultados
• Crear un directorio de colaboración al que puedan acceder todos los miembros de un
grupo.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En workstation, inicie sesión en servera con el usuario student y cambie al usuario
root.
4. Modifique los permisos del grupo consultants para permitir que los miembros del grupo
creen y eliminen archivos en el directorio /home/consultants.
Los permisos actuales deben impedir que otros accedan a los archivos. Debe establecer los
permisos adecuados.
224 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
4.1. Verifique que los permisos del grupo consultants permitan que los miembros del
grupo creen y eliminen archivos en el directorio /home/consultants.
Tenga en cuenta que el grupo consultants actualmente no tiene permiso de
escritura.
4.2. Agregue permiso de escritura al grupo consultants. Use el método simbólico para
establecer los permisos adecuados.
4.3. Impida que otros accedan a los archivos del directorio /home/consultants. Use el
método octal para establecer los permisos adecuados.
7. Enumere las propiedades de grupo y de usuario predeterminadas del nuevo archivo y sus
permisos.
8. 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.
RH124-RHEL9.0-es-5-20230516 225
capítulo 7 | Control de acceso a los archivos
8.1. Use el comando chown para cambiar la propiedad del grupo del archivo
consultant1.txt a consultants.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
226 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Objetivos
Controlar los permisos predeterminados de los 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.
Permisos especiales
Los permisos especiales son un cuarto tipo de permiso, además del usuario básico, grupo y otros
tipos. Como su nombre lo indica, estos permisos especiales 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 describe el impacto de los permisos especiales, que se resumen en la siguiente tabla.
g+s (sgid) El archivo se ejecuta como Los archivos creados en el directorio han
el grupo propietario. 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 con el usuario
que es propietario de ese archivo, en lugar de con el usuario que ejecutó el comando. Un ejemplo
de este caso es el comando passwd:
En una larga lista, puede identificar los permisos setuid con una minúscula s, donde
normalmente esperaría ver el carácter x (el propietario ejecuta los permisos). Si el propietario no
posee permisos de ejecución, este carácter será reemplazado 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ó.
Esta función generalmente se usa en directorios colaborativos grupales para poder cambiar
RH124-RHEL9.0-es-5-20230516 227
capítulo 7 | Control de acceso a los archivos
Si setgid se establece en un archivo ejecutable, significa que los comandos se ejecutan con el
grupo que es propietario del archivo, no con el usuario que ejecutó el comando. Esta condición es
similar a la forma en que 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 el carácter x (el grupo ejecuta los permisos). Si el grupo no posee
permisos de ejecución, este carácter será reemplazado por una S mayúscula.
Finalmente, el sticky bit para un directorio establece una restricción especial en la eliminación
de archivos. Solo el propietario del archivo (y el usuario root) puede borrar archivos dentro del
directorio. Un ejemplo es el directorio /tmp:
En una larga lista, puede identificar los permisos sticky con una minúscula t, donde normalmente
esperaría ver el carácter x (otros ejecutan los permisos). Si otros no tienen permisos de ejecución,
este carácter será reemplazado por una T mayúscula.
Elimine el bit setuid en el directorio example mediante el uso del método simbólico:
228 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
agregar un 0 adicional al comienzo del valor de permisos al eliminar permisos especiales mediante
el uso del método octal:
Si crea un directorio, sus permisos octales iniciales son 0777 (drwxrwxrwx). Si crea un
archivo regular, sus permisos octales iniciales son 0666 (-rw-rw-rw-). Siempre debe agregar
explícitamente el permiso de ejecución a un archivo regular. Este paso dificulta que un atacante
ponga en peligro un sistema, cree un archivo malicioso y lo ejecute.
Además, la sesión de shell establece un umask para restringir aún más los permisos iniciales de
un archivo. El unmask 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 muestra el valor actual del umask de shell:
Use el comando umask con un argumento octal único para cambiar el umask de la shell actual. El
argumento debe ser un valor octal que se corresponda con el nuevo valor del umask. Puede omitir
los ceros iniciales en el umask. Por ejemplo, umask 077 es lo mismo que umask 0077.
Los valores unmask predeterminados del sistema para usuarios de shell de Bash se definen
en los archivos /etc/login.defs y /etc/bashrc. Los usuarios pueden anular los valores
predeterminados del sistema en sus archivos .bash_profile o .bashrc en sus directorios de
inicio.
RH124-RHEL9.0-es-5-20230516 229
capítulo 7 | Control de acceso a los archivos
Importante
En Red Hat Enterprise Linux 8 y versiones anteriores, si la cuenta de un usuario
tiene un UID de 200 o más y el nombre de usuario y el nombre de grupo principal
de la cuenta son los mismos, el unmask predeterminado es 0002. De lo contrario, la
máscara de usuario predeterminada es 0022.
Red Hat Enterprise Linux 9 está en proceso de cambiar esto para que todas las
cuentas tengan una máscara de usuario de 0022. En RHEL 9.0 y 9.1, cuando inicia
una shell de inicio de sesión, su unmask es 0022. Sin embargo, cuando inicia una
shell interactiva sin inicio de sesión (por ejemplo, cuando inicia gnome-terminal
en la IU gráfica), su máscara de usuario es 0002 si el UID de su cuenta es 200 o
mayor y su grupo principal tiene el mismo nombre que su cuenta de usuario. Este
unmask predeterminado se espera que cambie en futuras versiones de Red Hat
Enterprise Linux 9, de modo que el unmask se establezca de forma predeterminada
en 0022 en todas las circunstancias.
Importante
Los siguientes ejemplos suponen que el unmask de la shell se ha establecido en
0022.
Si crea un archivo regular, sus permisos octales iniciales son 0666 (000 110 110 110, en
representación binaria). Luego, la máscara de usuario 0022 (000 000 010 010) deshabilita el bit
de permiso de escritura para el grupo y otros. El propietario tiene tanto permiso de lectura como
de escritura en los archivos y ambos grupos y otros tienen permiso de lectura (000 110 100 100).
Si crea un directorio, sus permisos octales iniciales son 0777 (000 111 111 111). Luego, la máscara de
usuario 0022 (000 000 010 010) deshabilita el bit de permiso de escritura para el grupo y otros.
230 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
El propietario tiene permiso de lectura, escritura y ejecución en los directorios y ambos grupos y
otros tienen permiso de lectura y ejecución (000 111 101 101).
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 cambian de lectura y ejecución a lectura,
escritura y ejecución.
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 permiso de lectura y
ejecución para el grupo y no tienen permisos para otros.
RH124-RHEL9.0-es-5-20230516 231
capítulo 7 | Control de acceso a los archivos
En Red Hat Enterprise Linux 9.0 y 9.1, este archivo solo afecta a las shells de inicio de sesión. Si
inicia una nueva ventana de terminal o inicia una shell interactiva sin inicio de sesión de alguna otra
manera, la configuración en /etc/bashrc aún se aplica. Para estos shells, si la UID de la cuenta
es 200 o más y el nombre de usuario y el nombre de grupo principal son los mismos, se le asignará
una máscara de usuario de 0002. De lo contrario, el umask es 0022.
El usuario root puede cambiar la máscara de usuario predeterminada para las shells sin inicio de
sesión interactivas agregando el script de inicio de shell local-umask.sh en el directorio /etc/
profile.d/. En el siguiente ejemplo, se muestra el archivo local-umask.sh:
En el ejemplo anterior, se establece la máscara de usuario en 0007 para usuarios con un UID
mayor que 199 y con un nombre de usuario y un nombre de grupo primario iguales, y en 0022 para
todos los demás. (Se pueden omitir los ceros iniciales). Para establecer unmask en 0022 para
todos, puede crear ese archivo con el siguiente contenido:
La máscara de usuario actual de una shell se aplica hasta que cierre la sesión de la shell y vuelva a
iniciarla o hasta que la cambie manualmente con el comando umask.
Referencias
Páginas del manual: bash(1), ls(1), chmod(1) y umask(1)
232 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Ejercicio Guiado
Resultados
• Crear un directorio compartido en el que el grupo operators pasa automáticamente a
ser propietario de nuevos archivos.
• Verifique el cambio.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en el sistema servera con el usuario student.
RH124-RHEL9.0-es-5-20230516 233
capítulo 7 | Control de acceso a los archivos
4.1. Cree el directorio /tmp/shared. Enumere los permisos del nuevo directorio.
5.3. Cree un archivo group en el directorio /tmp/shared. Enumere 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 sean propiedad del
grupo operators.
234 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
6.3. Verifique que el grupo operators es el propietario del grupo para el nuevo archivo.
8. Abra una nueva ventana de terminal e inicie sesión en servera como operator1.
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 presenta cambios.
RH124-RHEL9.0-es-5-20230516 235
capítulo 7 | Control de acceso a los archivos
10.2. Cierre la sesión y vuelva a iniciar sesión con el usuario operator1. Confirme que el
cambio sea permanente.
12. En servera, cierre todas las shells de usuario operator1 y student. Regrese al sistema
workstation con el usuario student.
Advertencia
Si no sale de todas las shells operator1, el script de finalización fallará.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
236 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
RH124-RHEL9.0-es-5-20230516 237
capítulo 7 | Control de acceso a los archivos
Trabajo de laboratorio
Resultados
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en serverb con el usuario student. Ejecute el comando sudo -i en el
prompt de shell para convertirse en el usuario root. Use student como contraseña del
usuario student.
2. Cree un directorio /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.
El grupo techdocs ahora tiene permiso de escritura.
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 el archivo /etc/login.defs para ajustar la máscara de usuario predeterminada
para las shells de inicio de sesión. Los usuarios normales deben tener una configuración de
umask que permita al usuario y al grupo crear, escribir y ejecutar archivos y directorios, y
evitar que otros usuarios vean, modifiquen o ejecuten nuevos archivos y directorios.
238 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 239
capítulo 7 | Control de acceso a los archivos
Solución
Resultados
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en serverb con el usuario student. Ejecute el comando sudo -i en el
prompt de shell para convertirse en el usuario root. Use student como contraseña del
usuario student.
3.1. Use el comando chown para cambiar la propiedad del grupo para el directorio /home/
techdocs al grupo techdocs.
240 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
4. Verifique que los usuarios en el grupo techdocs no puedan crear archivos en el directorio /
home/techdocs.
RH124-RHEL9.0-es-5-20230516 241
capítulo 7 | Control de acceso a los archivos
8.1. Determine el umask del usuario student. Cambie a la shell de inicio de sesión
student. Salga de la shell cuando termine.
242 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
8.3. Con el usuario student, verifique que el umask global cambie a 007.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 243
capítulo 7 | Control de acceso a los archivos
244 RH124-RHEL9.0-es-5-20230516
capítulo 7 | Control de acceso a los archivos
Resumen
• Los permisos de propiedad de archivos tienen tres categorías. 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 puede usar uno de dos métodos para representar permisos: simbólico u
octal.
• El comando chown cambia la propiedad del archivo. El comando chown con la opción -R
cambia recursivamente la propiedad de un árbol de directorios.
• 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 la máscara de usuario predeterminados para Bash se definen en el archivo /etc/
login.defs y pueden verse afectados por la configuración de los archivos /etc/profile y /
etc/bashrc, los archivos en /etc/profile.d o los archivos de inicialización de la shell de su
cuenta.
RH124-RHEL9.0-es-5-20230516 245
246 RH124-RHEL9.0-es-5-20230516
capítulo 8
Monitoreo y gestión de
procesos Linux
Meta Evaluar y controlar los procesos que se ejecutan en
un sistema Red Hat Enterprise Linux.
RH124-RHEL9.0-es-5-20230516 247
capítulo 8 | Monitoreo y gestión de procesos Linux
Objetivos
Determinar el estado, el uso de recursos y la propiedad de los programas en ejecución en un
sistema para controlarlos.
Definición de un proceso
Un proceso es una instancia de un programa ejecutable que se inició y se encuentra en
funcionamiento. Desde el momento en que se crea un proceso, consta de los siguientes ítems:
El entorno de un proceso es una lista de información que incluye los siguientes ítems:
248 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
libera el último recurso del proceso adicional. El proceso principal continúa con la ejecución de su
propio código de programa.
En el siguiente diagrama y la siguiente tabla, se describen los estados de los procesos de Linux en
detalle.
Nombre Indicador
Nombre y descripción del estado definido por el kernel
RH124-RHEL9.0-es-5-20230516 249
capítulo 8 | Monitoreo y gestión de procesos Linux
Nombre Indicador
Nombre y descripción del estado definido por el kernel
250 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Use señales para suspender, detener, reanudar, finalizar o interrumpir procesos. Los procesos
pueden captar señales del kernel, otros procesos y otros usuarios en el mismo sistema. Las señales
se analizan posteriormente en este capítulo.
Lista de procesos
El comando ps se usa para elaborar una lista con información detallada de los procesos actuales.
• La identificación del usuario (UID) que determina los privilegios del proceso
• La identificación del proceso (PID) única
• Cantidad de CPU usada y tiempo real transcurrido
• Cantidad de memoria asignada
• La ubicación del proceso stdout, conocida como terminal de control
• El estado del proceso actual
Importante
La versión de Linux del comando ps admite los siguientes formatos de opciones:
• Opciones UNIX (POSIX), que pueden agruparse y deben estar precedidas por un
guion
• Opciones BSD, que pueden agruparse y no deben usarse con un guion
• Opciones extensas GNU, que están precedidas por dos guiones
La combinación común del comando ps con la opción aux muestra todos los procesos, incluidos
los procesos sin un terminal de control. Una lista extensa (opciones lax) proporciona más
detalles y da resultados más rápido al evitar las búsquedas de nombre de usuario. La sintaxis de
UNIX similar usa las opciones -ef para la visualización de todos los procesos. En los siguientes
ejemplos, los subprocesos programados del kernel se muestran entre paréntesis en la parte
superior de la lista.
RH124-RHEL9.0-es-5-20230516 251
capítulo 8 | Monitoreo y gestión de procesos Linux
De manera predeterminada, el comando ps sin opciones selecciona todos los procesos con la
identificación de usuario efectivo (EUID) del usuario actual y selecciona los procesos que están
asociados con la terminal en la que se ejecuta el comando. Los procesos zombies se enumeran
con la etiqueta exiting o defunct.
Puede usar el comando ps con la opción --forest para mostrar los procesos en formato de
árbol para que pueda ver las relaciones entre el proceso principal y los procesos adicionales.
Referencias
info libc signal (GNU C Library Reference Manual)
252 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Cuestionario
2. ¿Qué estado representa un proceso que ha liberado todos sus recursos excepto su
PID?
a. D
b. R
c. S
d. T
e. Z
3. ¿Qué proceso usa un recurso principal para duplicar su espacio de dirección y crear un
proceso adicional?
a. exec
b. fork
c. zombie
d. syscall
e. reap
4. ¿Qué estado representa un proceso que está inactivo hasta que se cumple alguna
condición?
a. D
b. R
c. S
d. T
e. Z
RH124-RHEL9.0-es-5-20230516 253
capítulo 8 | Monitoreo y gestión de procesos Linux
Solución
2. ¿Qué estado representa un proceso que ha liberado todos sus recursos excepto su
PID?
a. D
b. R
c. S
d. T
e. Z
3. ¿Qué proceso usa un recurso principal para duplicar su espacio de dirección y crear un
proceso adicional?
a. exec
b. fork
c. zombie
d. syscall
e. reap
4. ¿Qué estado representa un proceso que está inactivo hasta que se cumple alguna
condición?
a. D
b. R
c. S
d. T
e. Z
254 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Control de trabajos
Objetivos
Usar el control de trabajo Bash para gestionar múltiples procesos iniciados desde la misma sesión
de terminal.
Un trabajo está asociado con cada tubería ingresada en un prompt de shell. Todos los procesos
en esa tubería son parte del trabajo y son miembros del mismo grupo de procesos. Puede
considerarse a una tubería mínima como un solo comando que se ingresa en el prompt de shell
para crear un trabajo con un solo miembro.
Solo un trabajo por vez puede leer entradas y señales generadas por el teclado desde una ventana
de terminal específica. Los procesos que son parte de ese trabajo son procesos en primer plano
de dicha terminal de control.
Un proceso en segundo plano de dicho terminal de control es cualquier otro trabajo asociado con
ese terminal. Los procesos en segundo plano de un terminal no pueden leer entradas ni recibir
interrupciones generadas por el teclado desde el terminal, pero pueden escribir en el terminal.
Un trabajo en segundo plano puede detenerse (suspenderse) o puede estar ejecutándose. Si
un trabajo que se está ejecutando en segundo plano intenta leer desde el terminal, se suspende
automáticamente.
Cada terminal es su propia sesión, y puede tener un proceso en primer plano y cualquier cantidad
de procesos en segundo plano. Un trabajo que se ejecuta en su propia sesión pertenece a su
terminal de control.
El comando ps muestra el nombre del dispositivo del terminal de control en la columna TTY.
Algunos procesos, como daemons del sistema, son iniciados por el sistema y no desde un terminal
de control. Estos procesos no son miembros de un trabajo y no pueden colocarse en primer plano.
El comando ps muestra un signo de pregunta (?) en la columna TTY para estos procesos.
Cuando una línea de comandos que contiene una tubería (|) se envía a un segundo plano, se
muestra el PID del último comando de la tubería. Todos los procesos de la tubería son miembros
de ese trabajo.
RH124-RHEL9.0-es-5-20230516 255
capítulo 8 | Monitoreo y gestión de procesos Linux
Use el comando jobs para mostrar la lista de trabajos para la sesión de la shell.
Use el comando fg para traer un trabajo en segundo plano al primer plano. Use el formato
(%jobNumber) para especificar el proceso en primer plano.
[user@host ~]$ fg %1
sleep 10000
Para enviar un proceso en primer plano a segundo plano, presione primero la solicitud de
suspensión (Ctrl+z) en el terminal. El trabajo se colocará en segundo plano y se suspenderá.
El comando ps j muestra información relacionada con los trabajos. Use el comando ps j para
buscar procesos e información de la sesión.
[user@host ~]$ ps j
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
2764 2768 2768 2768 pts/0 6377 Ss 1000 0:00 /bin/bash
2768 5947 5947 2768 pts/0 6377 T 1000 0:00 sleep 10000
2768 6377 6377 2768 pts/0 6377 R+ 1000 0:00 ps j
[user@host ~]$ bg %1
[1]+ sleep 10000 &
256 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
La shell emite una advertencia al usuario que intente salir de una ventana de terminal (sesión) con
trabajos suspendidos. Si el usuario vuelve a intentar salir de inmediato, los trabajos suspendidos se
anulan.
nota
En los ejemplos anteriores, el signo + indica que este trabajo es el trabajo
predeterminado actual. Si un comando de control de trabajo se usa sin el argumento
%jobNumber, la acción se realiza en el trabajo predeterminado. El signo - indica el
trabajo anterior que se convertirá en el trabajo predeterminado cuando finalice el
trabajo predeterminado actual.
Referencias
Página de información Bash (The GNU Bash Reference Manual)
https://www.gnu.org/software/bash/manual
RH124-RHEL9.0-es-5-20230516 257
capítulo 8 | Monitoreo y gestión de procesos Linux
Ejercicio Guiado
Control de trabajos
En este ejercicio, usará el control de trabajos para iniciar, suspender y mover varios procesos
al primer plano y al segundo plano.
Resultados
• Usar el control de trabajos para suspender y reiniciar los procesos de usuario.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, abra dos ventanas de terminal, una al lado de la otra. En esta
sección, estos dos terminales se denominan izquierda y derecha. En cada terminal, inicie
sesión en la máquina servera con el usuario student.
258 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
nota
El script control se ejecuta hasta que el proceso se termine. El script adjunta
argumentos de línea de comandos al archivo ~/control_outfile una vez por
segundo.
^Z
[1]+ Stopped control technical
[student@servera ~]$
6. En la shell de terminal izquierda, vea la salida del comando jobs. Recuerde que el signo
+ indica el trabajo predeterminado. Reinicie el trabajo en segundo plano. En la shell de
terminal derecha, verifique que la salida del proceso esté de nuevo activa.
[student@servera ~]$ bg
[1]+ control technical &
RH124-RHEL9.0-es-5-20230516 259
capítulo 8 | Monitoreo y gestión de procesos Linux
6.4. En la shell de terminal derecha, confirme que el comando tail está produciendo la
salida.
...output omitted...
technical technical technical technical technical technical technical technical
7. En la shell de terminal izquierda, inicie dos procesos control más para anexar al archivo
~/output. Use el comando del signo especial (&) para iniciar los procesos en segundo
plano. Reemplace technical con documents y, luego, con database. Reemplazar los
argumentos ayuda a diferenciar los tres procesos.
8. En la shell de terminal izquierda, use el comando jobs para ver los tres procesos en
ejecución. En la shell de terminal derecha, verifique que los tres procesos se estén
adjuntando al archivo.
...output omitted...
technical documents database technical documents database technical documents
database technical documents database
...output omitted...
[student@servera ~]$ fg %1
control technical
^Z
[1]+ Stopped control technical
[student@servera ~]$ jobs
[1]+ Stopped control technical
[2] Running control documents &
[3]- Running control database &
260 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
[student@servera ~]$ fg %2
control documents
^C
[student@servera ~]$ jobs
[1]+ Stopped control technical
[3]- Running control database &
...output omitted...
database database database database database database database database
...no further output...
10. En la shell de terminal izquierda, vea los trabajos restantes. Los trabajos suspendidos tiene
el estado T. Los otros trabajos en segundo plano están inactivos y tienen el estado S.
[student@servera ~]$ ps jT
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
27277 27278 27278 27278 pts/1 28702 Ss 1000 0:00 -bash
27278 28234 28234 27278 pts/1 28702 T 1000 0:00 /bin/bash /home/student/
bin/control technical
27278 28251 28251 27278 pts/1 28702 S 1000 0:00 /bin/bash /home/student/
bin/control database
28234 28316 28234 27278 pts/1 28702 T 1000 0:00 sleep 1
28251 28701 28251 27278 pts/1 28702 S 1000 0:00 sleep 1
27278 28702 28702 27278 pts/1 28702 R+ 1000 0:00 ps jT
11. En la shell de terminal izquierda, vea los trabajos actuales. Finalice el proceso control
database y confirme que ha sido terminado.
RH124-RHEL9.0-es-5-20230516 261
capítulo 8 | Monitoreo y gestión de procesos Linux
[student@servera ~]$ fg %3
control database
^C
[student@servera ~]$ jobs
[1]+ Stopped control technical
12. En la shell de terminal derecha, use el comando, use el comando Ctrl+c para detener el
comando tail. Elimine el archivo ~/control_outfile.
...output omitted...
^C
[student@servera ~]$ rm ~/control_outfile
13. Cierre el terminal adicional. Regrese al sistema workstation con el usuario student.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
262 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Finalización de procesos
Objetivos
Usar comandos para finalizar procesos y comunicarse con ellos, definir las características de un
proceso daemon y detener sesiones y procesos de usuario.
En la siguiente tabla, se enumeran 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).
RH124-RHEL9.0-es-5-20230516 263
capítulo 8 | Monitoreo y gestión de procesos Linux
nota
Los números de señal varían en las distintas plataformas de hardware de Linux, pero
los nombres y los significados están estandarizados. Se recomienda usar nombres
de señales en lugar de números al realizar la señalización. Los números analizados
en esta sección son para los sistemas con arquitectura x86_64.
Cada señal tiene una acción predeterminada que, por lo general, es una de las siguientes:
Puede especificar las señales por nombre (por ejemplo, con las opciones -HUP o -SIGHUP) o
por número (con la opción -1 relacionada). Los usuarios pueden finalizar sus procesos, pero se
necesitan privilegios de root para finalizar procesos que son propiedad de otros usuarios.
El comando kill usa un número PID para enviar una señal a un proceso. 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 con la opción -l para enumerar los nombres y números
de todas las señales disponibles.
264 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
user 5199 0.0 0.1 222448 3132 pts/1 S 16:39 0:00 /bin/bash /home/
user/bin/control job2
user 5205 0.0 0.1 222448 3124 pts/1 S 16:39 0:00 /bin/bash /home/
user/bin/control job3
user 5783 0.0 0.0 221860 964 pts/1 S+ 16:43 0:00 grep --color=auto
job
[1] Terminated control job1
[user@host ~]$ kill -9 5199
[user@host ~]$ ps aux | grep job
user 5205 0.0 0.1 222448 3124 pts/1 S 16:39 0:00 /bin/bash /home/
user/bin/control job3
user 5930 0.0 0.0 221860 1048 pts/1 S+ 16:44 0:00 grep --color=auto
job
[2]- Killed control job2
[user@host ~]$ kill -SIGTERM 5205
user 5986 0.0 0.0 221860 1048 pts/1 S+ 16:45 0:00 grep --color=auto job
[3]+ Terminated control job3
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 de la
señal SIGKILL.
Primero, use el comando pgrep para identificar los números de PID que desea eliminar. Este
comando funciona de manera similar al comando pkill, incluida la mayoría de las mismas
opciones, excepto que el comando pgrep enumera los procesos en lugar de eliminarlos.
Use el comando pgrep con la opción -l para enumerar los nombres de los procesos y sus ID. Use
cualquiera de los comandos con la opción -u para especificar el ID del usuario propietario de los
procesos.
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. Use el comando w para
determinar la terminal de control para la sesión y, a continuación, finalice solo los procesos con
hagan referencia a la misma ID de terminal.
RH124-RHEL9.0-es-5-20230516 265
capítulo 8 | Monitoreo y gestión de procesos Linux
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 de forma correcta la solicitud de finalización, pero finaliza todos los
demás procesos de sesión.
Use la opción -t para hacer coincidir los procesos con un ID de terminal específico.
Importante
Los administradores suelen usar SIGKILL.
Puede aplicar el mismo proceso selectivo de finalización con las relaciones de proceso principal
y adicional. Use el comando pstree para visualizar un árbol de proceso para el sistema o un solo
usuario. Use el PID del proceso principal para finalizar todos los procesos secundarios creados.
Esta vez, la shell de inicio de sesión Bash principal sobrevive porque la señal se dirige solo a sus
procesos secundarios.
266 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Use el comando jobs para encontrar el número de trabajo del proceso que desea finalizar.
Termine un trabajo específico con el comando kill. Anteponga un prefijo al número de trabajo
con el signo de porcentaje (%).
Primero, para cerrar la sesión de un usuario, 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 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 es pts/N, se trata de un pseudoterminal asociado con una ventana
de terminal gráfica o sesión remota de inicio de sesión. Si es ttyN, el usuario se encuentra en una
consola del sistema, consola alternativa u otro dispositivo terminal conectado directamente.
RH124-RHEL9.0-es-5-20230516 267
capítulo 8 | Monitoreo y gestión de procesos Linux
[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 desktop.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. Los
recursos de CPU consumidos por los trabajos actuales, incluidas las tareas en segundo plano y los
procesos adicionales, se encuentran en la columna JCPU para cada sesión. El consumo de CPU del
proceso de primer plano actual está en la columna PCPU.
Referencias
Páginas del manual: kill(1), killall(1), pgrep(1), pkill(1), pstree(1),
signal(7) y w(1)
268 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Ejercicio Guiado
Finalización de procesos
En este ejercicio, usa señales para gestionar y detener procesos.
Resultados
• Iniciar y detener varios procesos de shell.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina 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 la máquina servera con el usuario student.
RH124-RHEL9.0-es-5-20230516 269
capítulo 8 | Monitoreo y gestión de procesos Linux
nota
El script instance se ejecuta hasta que el proceso se termine. Adjunta argumentos
de línea de comandos al archivo ~/instance_outfile una vez cada 5 segundos.
4. En la shell de terminal derecha, verifique que los tres procesos se estén adjuntando al
archivo /home/student/instance_outfile.
6. Use señales para suspender el proceso instance network. Verifique que el proceso
instance network esté configurado como Stopped. Verifique que el proceso network
ya no anexe contenido al archivo ~/instance_output.
6.1. Detenga el proceso instance network. Verifique que el proceso esté detenido.
6.2. En la shell de terminal derecha, vea la salida del comando tail. Confirme que la
palabra network ya no esté anexada al archivo ~/instance_outfile.
270 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
...output omitted...
interface connection interface connection interface connection interface
7.1. Finalice el proceso instance interface. Verifique que el proceso haya terminado.
7.2. En la shell de terminal derecha, vea la salida del comando tail. Confirme que la
palabra interface ya no esté anexada al archivo ~/instance_outfile.
...output omitted...
connection connection connection connection connection connection connection
connection
8.2. En la shell de terminal derecha, vea la salida del comando tail. Verifique que la
palabra network esté anexada al archivo ~/instance_outfile.
...output omitted...
network connection network connection network connection network connection
network connection
9. En la shell de terminal izquierda, finalice los dos trabajos restantes. Verifique que no queden
trabajos y que se haya detenido la salida.
RH124-RHEL9.0-es-5-20230516 271
capítulo 8 | Monitoreo y gestión de procesos Linux
10. En la shell de terminal izquierda, enumere los procesos que se están ejecutando en todas
las shells de terminales abiertas. Finalice los procesos tail. Verifique que los procesos ya
no estén en funcionamiento.
10.1. Enumere todos los procesos en ejecución actuales. Refine la búsqueda para ver solo
tail líneas.
10.2. Finalice el proceso tail. Verifique que los procesos ya no estén ejecutándose.
...output omitted...
network connection network connection network connection Terminated
[student@servera ~]$
11. Cierre el terminal adicional. Regrese al sistema workstation con el usuario student.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
272 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Objetivos
Definir el promedio de carga y determinar los procesos del servidor que consumen muchos
recursos.
El kernel recoge la cantidad de carga actual cada cinco segundos 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 el uso de la CPU o la longitud de la cola de
ejecución para indicar la carga del sistema. Linux también incluye el uso del disco o de la
red porque el uso elevado de estos recursos puede tener un impacto tan significativo en el
rendimiento del sistema como la carga de la CPU. Para promedios altos de carga con actividad
mínima de CPU, se debe examinar la actividad del disco y de la red.
RH124-RHEL9.0-es-5-20230516 273
capítulo 8 | Monitoreo y gestión de procesos Linux
Los tres valores del promedio de carga representan la carga durante los últimos 1, 5 y 15 minutos.
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. Linux tratará esta configuración de CPU 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 uso de
recursos adecuado y tiempos de espera mínimos. Un valor por encima de 1 indica saturación de
recursos y cierto 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 y 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 del uso de la CPU, estos procesos se agregan al recuento de la cola
porque esperan recursos y no pueden ejecutarse en una CPU hasta que obtienen esos recursos.
Esta métrica sigue siendo una carga del sistema debido a las limitaciones de recursos que están
haciendo que los procesos no se ejecuten.
274 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
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 se encuentran en las colas de espera. El promedio de
carga solo aumenta cuando la saturación del recurso provoca que las solicitudes se mantengan en
cola y sean contadas por la rutina del cálculo de carga. Cuando el uso del recurso se aproxima al
100 %, cada solicitud adicional comienza a experimentar un tiempo de espera del servicio.
• La memoria virtual (VIRT) es toda la memoria que usa el proceso, incluido el conjunto residente,
las librerías compartidas y cualquier página de memoria asignada o intercambiada (etiquetado
como VSZ en el comando ps).
• La memoria residente (RES) es la memoria física que usa el proceso, incluido cualquier objeto
residente compartido (etiquetado como RSS en el comando ps).
• El estado del proceso (S) puede ser uno de los siguientes estados:
– D = Suspensión ininterrumpida
– R = En ejecución o ejecutable
– S = En espera
– T = Detenido o en seguimiento
– Z = Zombie
• 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 adicionales.
Clave Propósito
RH124-RHEL9.0-es-5-20230516 275
capítulo 8 | Monitoreo y gestión de procesos Linux
Clave Propósito
Shift+p Ordenar procesos enumerados por uso del procesador, en orden decreciente.
q Salir.
nota
Las teclas s, k y r no están disponibles cuando el comando top se inicia en un
modo seguro.
Referencias
Páginas del manual: ps(1), top(1), uptime(1) y w(1)
276 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Ejercicio Guiado
Resultados
• Gestionar procesos en tiempo real.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina 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, inicie sesión
en la máquina servera con el usuario student.
RH124-RHEL9.0-es-5-20230516 277
capítulo 8 | Monitoreo y gestión de procesos Linux
done
sleep 1
done
nota
El script monitor se ejecuta hasta que el proceso se termine. Genera carga
artificial de CPU al realizar sesenta mil cálculos de suma. Después de generar la
carga de CPU, se inactiva durante un segundo, restablece la variable y se repite.
5. En la shell de terminal izquierda, ejecute una sola instancia del archivo ejecutable monitor
en segundo plano.
278 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
7. Anote el ID de proceso (PID) para el proceso monitor. Observe el porcentaje de CPU para
el proceso, que se espera que sea alrededor del 15 % o el 25 %.
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 del archivo ejecutable
monitor 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 del archivo ejecutable
monitor en segundo plano.
RH124-RHEL9.0-es-5-20230516 279
capítulo 8 | Monitoreo y gestión de procesos Linux
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 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 dos CPU, por lo que solo tres procesos no son suficientes
para alterarla. Inicie tres procesos monitor más en segundo plano. Observe de nuevo el
promedio de carga de un minuto, que ahora se espera que sea superior a 1. Espere al menos
un minuto para 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 el comando top.
12.1. En la terminal de shell derecha, presione k para observar el prompt que está debajo
de los encabezados y arriba de las columnas.
...output omitted...
PID to signal/kill [default pid = 11338]
12.2. El prompt elige los procesos monitor en la parte superior de la lista. Presione Enter
para finalizar el proceso.
...output omitted...
Send pid 11338 signal [15/sigterm]
280 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
13. Repita el paso anterior para cada instancia del proceso monitor restante. Verifique que no
quede ningún proceso monitor en el comando top.
14. En la shell de terminal derecha, presione q para salir del comando top. Cierre el terminal
derecho.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 281
capítulo 8 | Monitoreo y gestión de procesos Linux
Trabajo de laboratorio
Resultados
• Gestionar procesos con top como herramienta de gestión de procesos.
Antes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
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 ventana de terminal, inicie
sesión en serverb con el usuario student.
Cree el script process101 en el directorio /home/student/bin. El script process101
genera una carga de CPU artificial.
#!/bin/bash
while true; do
var=1
while [[ var -lt 50000 ]]; do
var=$(($var+1))
done
sleep 1
done
282 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
7. En la shell de terminal derecha, verifique que el proceso se está ejecutando y que usa la
mayoría de los recursos de la CPU. La carga debe ser del 25 % al 35 %.
8. El promedio de carga es inferior a 1. Copie process101 a un nuevo script denominado
process103. Incremente el recuento de sumas a ochocientos mil. Inicie process103 en
segundo plano. Confirme que el promedio de carga sea superior a 1. El promedio de carga
puede tardar unos minutos en cambiar.
9. En la shell de terminal izquierda, cambie al usuario root. Suspenda el proceso process101.
Enumere los trabajos restantes. Observe que el estado del proceso process101 ahora es T.
10. Reanude el proceso process101.
11. Finalice process101, process102 y process103 desde la línea de comandos. Verifique
que los procesos ya no se muestren en top.
12. Detenga los procesos y regrese a la máquina workstation.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 283
capítulo 8 | Monitoreo y gestión de procesos Linux
Solución
Resultados
• Gestionar procesos con top como herramienta de gestión de procesos.
Antes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
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 ventana de terminal, inicie
sesión en serverb con el usuario student.
Cree el script process101 en el directorio /home/student/bin. El script process101
genera una carga de CPU artificial.
#!/bin/bash
while true; do
var=1
while [[ var -lt 50000 ]]; do
var=$(($var+1))
done
sleep 1
done
1.1. En workstation, abra dos ventanas de terminal una al lado de la otra. En cada
terminal, use el comando ssh para iniciar sesión en la máquina serverb con el usuario
student.
284 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
1.3. En la shell de terminal izquierda, cree el script process101. Presione la tecla i para
ingresar al modo interactivo Vim. Escriba :wq para guardar el archivo.
2.1. Modifique el tamaño de la ventana para que sea lo más alta posible.
RH124-RHEL9.0-es-5-20230516 285
capítulo 8 | Monitoreo y gestión de procesos Linux
4. En la shell de terminal derecha, observe la pantalla de top. Observe el ID del proceso (PID)
y vea el porcentaje de CPU que usa el proceso process101. El porcentaje de CPU que usa
el proceso debe oscilar entre el 10 % y el 15 %. Alterne la visualización de la utilidad top entre
cargas, subprocesos y memoria. Regrese a la pantalla de uso de CPU de la utilidad top.
nota
Cuando la utilidad top cambia al modo de memoria, el proceso process101 ya no
es el primer proceso. Puede presionar Shift+p para volver al uso de la CPU.
4.3. Presione t.
286 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
5. Desactive el uso de negrita en la pantalla. Guarde esta configuración para volver a usarla
cuando se reinicie top. Confirme que los cambios están guardados.
RH124-RHEL9.0-es-5-20230516 287
capítulo 8 | Monitoreo y gestión de procesos Linux
5.3. En la shell de terminal derecha, salga de top y, luego, reinícielo. Confirme que la nueva
pantalla usa la configuración guardada.
6.2. Edite el script process102 e incremente los problemas de suma de cincuenta mil a
cien mil. Ingrese al modo interactivo mediante el uso de i. Escriba :wq para guardar el
archivo y salir.
7. En la shell de terminal derecha, verifique que el proceso se está ejecutando y que usa la
mayoría de los recursos de la CPU. La carga debe ser del 25 % al 35 %.
7.1. En la shell de terminal derecha, confirme que el proceso se está ejecutando. La carga
debe ser del 25 % al 35 %.
288 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
nota
Si no ve los procesos process101 y process102 en la parte superior de la lista
de procesos, presione Shift+p para garantizar que la utilidad top ordene la salida
según el uso de la CPU.
8.1. En la shell de terminal derecha, verifique que el promedio de carga sea inferior a 1.
8.4. Inicie el proceso process103 en segundo plano. El uso de la CPU oscila entre el 60 %
y 85 %.
RH124-RHEL9.0-es-5-20230516 289
capítulo 8 | Monitoreo y gestión de procesos Linux
8.6. En la shell de terminal derecha, verifique que el promedio de carga sea superior a 1. La
carga puede tardar unos minutos en aumentar.
[student@serverb bin]$ su -
Password: redhat
290 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
[root@serverb ~]# ps jT
...output omitted...
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1117 1118 1118 1118 pts/1 5778 Ss 1000 0:00 -bash
1118 1161 1161 1118 pts/1 5778 T 1000 10:00 /bin/bash /home/student/bin/
process101
1118 4023 4023 1118 pts/1 5778 S 1000 4:19 /bin/bash /home/student/bin/
process102
1118 5172 5172 1118 pts/1 5778 S 1000 3:59 /bin/bash /home/student/bin/
process103
...output omitted...
Tenga en cuenta que process101 tiene un estado de T. Esto significa que el proceso
está actualmente suspendido.
11.2. En la shell de terminal derecha, verifique que los procesos ya no aparecen en top.
RH124-RHEL9.0-es-5-20230516 291
capítulo 8 | Monitoreo y gestión de procesos Linux
12.2. En la shell de terminal derecha, presione q para salir de top. Regrese al sistema
workstation con el usuario student.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
292 RH124-RHEL9.0-es-5-20230516
capítulo 8 | Monitoreo y gestión de procesos Linux
Resumen
• Un proceso es una instancia en ejecución de un programa ejecutable. A los procesos se les
asigna un estado, que pueden ser: en ejecución, en espera, detenido o zombie. Se usa el
comando ps para enumerar los procesos.
• Cada terminal tiene su propia sesión y puede tener un proceso en primer plano y procesos en
segundo plano independientes. El comando jobs muestra los procesos dentro de una sesión de
terminal.
• 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.
• El promedio de carga es una estimación de cuán ocupado está el sistema. Para mostrar los
valores promedio de carga, puede usar los comandos top, uptime o w.
RH124-RHEL9.0-es-5-20230516 293
294 RH124-RHEL9.0-es-5-20230516
capítulo 9
RH124-RHEL9.0-es-5-20230516 295
capítulo 9 | Control de servicios y daemons
Objetivos
Enumerar daemons del sistema y los servicios de red iniciados por el servicio systemd y las
unidades socket.
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 usted los detiene manualmente. Por convención, los
nombres de los demonios terminan con d.
Un servicio en el sentido de systemd a menudo se refiere a uno o más daemons. Sin embargo,
iniciar o detener un servicio puede cambiar el estado del sistema una vez, sin dejar un proceso
daemon en ejecución después (denominado oneshot).
En Red Hat Enterprise Linux, el primer proceso que se inicia (PID1) es el daemon systemd, que
aporta estas funciones:
Las unidades están representadas por archivos de configuración, denominados archivos de unidad
que encapsulan información sobre los servicios del sistema, los sockets de escucha y otros objetos
relevantes para el sistema de inicio systemd.
Una unidad tiene un nombre y un tipo de unidad. El nombre proporciona una identidad única a la
unidad. El tipo de unidad permite agrupar unidades con otros tipos de unidades similares.
• Las unidades de servicio tienen una extensión .service y representan servicios del sistema.
Puede usar unidades de servicio para iniciar los daemons usados con más frecuencia, como un
servidor web.
296 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
• Las unidades de 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, el
gerente systemd iniciará un daemon y le pasará la conexión. Puede usar unidades socket para
demorar el inicio de un servicio en el momento del arranque y para iniciar servicios usados con
menos frecuencia a pedido.
• 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. Puede usar unidades
de ruta para servicios que usan directorios de cola, como un sistema de impresión.
Para gestionar unidades, use el comando systemctl. Por ejemplo, el comando systemctl -t
help permite visualizar los tipos de unidad disponibles. El comando systemctl puede abreviar
los nombres de las unidades, las entradas de árbol de proceso y las descripciones de unidad.
UNIT
El nombre de la unidad de servicio.
LOAD
Si el daemon systemd analizó adecuadamente la configuración de la unidad y cargó la unidad
en la memoria.
ACTIVE
El estado de activación de alto nivel de la unidad. Esta información indica si la unidad se inició
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
La descripción breve de la unidad.
RH124-RHEL9.0-es-5-20230516 297
capítulo 9 | Control de servicios y daemons
El comando systemctl sin ningún argumento enumera las unidades que están cargadas y
activas.
El comando systemctl con la opción list-units muestra las unidades que el servicio
systemd intenta analizar y cargar en la memoria. Esta opción no muestra los servicios que están
instalados pero no habilitados. Puede usar el comando systemctl con la opción list-unit-
files para ver el estado de todos los archivos de unidad instalados:
298 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Campo Descripción
Active Si la unidad de servicio se está ejecutando y, de ser así, por cuánto tiempo
lo ha hecho
Main PID El ID de proceso principal del servicio, incluido el nombre del comando
Las palabras clave en la salida del estado indican el estado del servicio:
RH124-RHEL9.0-es-5-20230516 299
capítulo 9 | Control de servicios y daemons
static El servicio 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 comando systemctl con la opción is-enabled 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 y el estado generalmente es enabled o disabled.
Para verificar si la unidad falló durante el arranque, ejecute el comando systemctl con la opción
is-failed:
300 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Para enumerar todas las unidades que han presentado un error, ejecute el comando systemctl
--failed --type=service.
Referencias
Páginas del manual systemd(1), systemd.unit(5), systemd.service(5),
systemd.socket(5) y systemctl(1)
Para obtener más información, consulte el capítulo Managing Services with systemd
de la Red Hat Enterprise Linux 9 Configuring Basic System Settings Guide en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/
html-single/configuring_basic_system_settings/managing-services-with-
systemd_configuring-basic-system-settings#managing-services-with-
systemd_configuring-basic-system-settings
RH124-RHEL9.0-es-5-20230516 301
capítulo 9 | Control de servicios y daemons
Ejercicio Guiado
Resultados
• Enumerar las unidades de servicio instaladas.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina servera con el usuario student.
302 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
4. Explore el estado del servicio chronyd. Puede usar este servicio para la sincronización del
protocolo de tiempo en red (NTP).
4.1. Muestre el estado del servicio chronyd. Observe el ID del proceso de todos los
daemons activos.
RH124-RHEL9.0-es-5-20230516 303
capítulo 9 | Control de servicios y daemons
5. Explore el estado del servicio sshd. Puede usar este servicio 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.
304 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 305
capítulo 9 | Control de servicios y daemons
Objetivos
Controlar los daemons del sistema y los servicios de red con systemctl.
Use el comando systemctl status para verificar el estado del servicio y saber si el servicio
está ejecutándose o está detenido.
A continuación, use el comando systemctl start con el usuario root (con el comando sudo
si es necesario). Si ejecuta el comando systemctl start con el nombre del servicio solamente
(sin el tipo de servicio), el servicio systemd busca archivos .service.
Para detener un servicio en ejecución, use el comando systemctl con la opción stop. En los
siguientes ejemplos, se muestra cómo detener el servicio sshd.service:
Algunos servicios pueden recargar sus archivos de configuración sin requerir un reinicio, lo que
se denomina recarga de servicio. La recarga de un servicio no cambia el ID del proceso asociado
con diversos procesos del servicio. Para volver a cargar un servicio en ejecución, use el comando
systemctl con la opción reload. En el siguiente ejemplo, se muestra cómo volver a cargar el
servicio sshd.service después de modificar la configuración:
306 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
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 comando systemctl con la opción reload-or-
restart. El comando vuelve a cargar los cambios de configuración si la función de recarga está
disponible. De lo contrario, el comando reinicia el servicio para implementar los nuevos cambios de
configuración:
Sin embargo, para detener todos los servicios de impresión en un sistema, debe detener las tres
unidades. Al deshabilitar el servicio, se deshabilitarán las dependencias.
RH124-RHEL9.0-es-5-20230516 307
capítulo 9 | Control de servicios y daemons
El intento de iniciar una unidad de servicio enmascarada falla y arroja la siguiente salida:
Importante
Usted, u otro archivo de unidad, pueden iniciar manualmente un servicio
deshabilitado, pero no se inicia automáticamente en el arranque. Un servicio
enmascarado no se inicia de forma manual ni automática.
Este comando crea un enlace simbólico desde el archivo de la unidad de servicio, normalmente
en el directorio /usr/lib/systemd/system, que se conecta con la ubicación en el disco
donde el comando systemd busca archivos, que se encuentran en el directorio /etc/systemd/
system/TARGETNAME.target.wants. La habilitación de un servicio no inicia el servicio en la
sesión actual. Para iniciar el servicio y habilitarlo para que se inicie automáticamente durante el
arranque, ejecute los comandos systemctl start y systemctl enable, o use el comando
systemctl enable --now equivalente.
308 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Para deshabilitar el servicio para que no se inicie automáticamente, use el comando systemctl
disable que quita el enlace simbólico creado al habilitar un servicio. La desactivación de un
servicio no detiene el servicio si se está ejecutando actualmente. Para deshabilitar y detener un
servicio, puede ejecutar ambos comandos systemctl stop y systemctl disable, o use el
comando equivalente systemctl disable --now.
Para verificar si el servicio está habilitado o deshabilitado, use el comando systemctl is-
enabled.
Comando Tarea
RH124-RHEL9.0-es-5-20230516 309
capítulo 9 | Control de servicios y daemons
Comando Tarea
Referencias
Páginas del manual systemd(1), systemd.unit(5), systemd.service(5),
systemd.socket(5) y systemctl(1)
Para obtener más información, consulte el capítulo Managing System Services with
systemctl de la Red Hat Enterprise Linux 9 Configuring Basic System Settings Guide
en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-
single/configuring_basic_system_settings/index#managing-system-services-with-
systemctl_configuring-basic-system-settings
310 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Ejercicio Guiado
Resultados
• Usar el comando systemctl para controlar los servicios systemd.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina servera con el usuario student y cambie al usuario root.
2.1. Muestre el estado del servicio sshd. Tenga en cuenta el ID del proceso del daemon
sshd. Presione q para salir del comando.
2.2. Reinicie el servicio sshd y visualice el estado. En este ejemplo, el ID de proceso del
daemon cambia de 784 a 1193. Presione q para salir del comando.
RH124-RHEL9.0-es-5-20230516 311
capítulo 9 | Control de servicios y daemons
2.3. Vuelva a cargar el servicio sshd y visualice el estado. El ID del proceso del daemon no
se modifica. Presione q para salir del comando.
3. Verifique que el servicio chronyd se esté ejecutando. Presione q para salir del comando.
4. Detenga el servicio chronyd y visualice el estado. Presione q para salir del comando.
312 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
5. Determine si el servicio chronyd está habilitado para que se inicie en el arranque del
sistema.
Inicie sesión con el usuario student en la máquina servera y cambie al usuario root.
Visualice el estado del servicio chronyd. Presione q para salir del comando.
7. Inhabilite el servicio chronyd para que no se inicie en el arranque del sistema y, luego,
visualice el estado del servicio. Presione q para salir del comando.
RH124-RHEL9.0-es-5-20230516 313
capítulo 9 | Control de servicios y daemons
Inicie sesión con el usuario student en servera y visualice el estado del servicio
chronyd. Presione q para salir del comando.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
314 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Trabajo de laboratorio
Resultados
• Habilitar, deshabilitar, iniciar y detener servicios.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina serverb con el usuario student. En
la máquina serverb, inicie el servicio psacct.
2. Configure el servicio psacct para que se inicie en el arranque del sistema.
3. Detenga el servicio rsyslog.
4. Configure el servicio rsyslog para que no se inicie en el momento de arranque del sistema.
5. Reinicie la máquina serverb antes de evaluar el trabajo de laboratorio.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 315
capítulo 9 | Control de servicios y daemons
Solución
Resultados
• Habilitar, deshabilitar, iniciar y detener servicios.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina serverb con el usuario student. En
la máquina serverb, inicie el servicio psacct.
1.1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
1.2. Verifique el estado del servicio psacct. El servicio psacct está en estado inactivo
y deshabilitado. El estado deshabilitado confirma que el servicio no se inicia en el
momento del arranque.
316 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
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. Verifique 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. Presione q
para salir del comando.
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.
RH124-RHEL9.0-es-5-20230516 317
capítulo 9 | Control de servicios y daemons
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
318 RH124-RHEL9.0-es-5-20230516
capítulo 9 | Control de servicios y daemons
Resumen
• La utilidad systemd proporciona un método para activar 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.
• Se usa systemctl para iniciar, detener, volver a cargar, habilitar y deshabilitar servicios.
• Use la utilidad systemd para gestionar unidades de servicio, unidades de socket y unidades de
ruta.
• Use el comando systemctl status para determinar el estado de los daemons del sistema y
los servicios de red iniciados por systemd.
• La utilidad systemd puede enmascarar una unidad de servicio para que no se ejecute ni
siquiera para dar respuesta a las dependencias.
RH124-RHEL9.0-es-5-20230516 319
320 RH124-RHEL9.0-es-5-20230516
capítulo 10
Configuración y seguridad de
SSH
Meta Configurar un servicio seguro de línea de
comandos en sistemas remotos con OpenSSH.
RH124-RHEL9.0-es-5-20230516 321
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Iniciar sesión en un sistema remoto y ejecutar comandos con ssh.
Use el comando ssh para crear una conexión segura a un sistema remoto, autenticarse como un
usuario específico y obtener una sesión de shell interactiva en el sistema remoto. El comando ssh
puede ejecutar una sesión en un sistema remoto sin ejecutar una shell interactiva.
El siguiente comando ssh inicia sesión en el servidor remoto hosta con el nombre de usuario
developer2. El sistema remoto le solicita que se autentique con la contraseña de usuario
developer2.
El siguiente comando ssh ejecuta el comando hostname en el sistema remoto hosta con el
usuario developer2 sin acceder a la shell interactiva remota.
322 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Cuando un usuario ejecuta el comando ssh para conectarse a un servidor SSH, el comando
verifica si tiene una copia de la clave pública del servidor en sus archivos de hosts locales
conocidos. La clave puede estar preconfigurada en el archivo /etc/ssh/ssh_known_hosts, o
el usuario puede tener el archivo ~/.ssh/known_hosts que contiene la clave en su directorio de
inicio.
Si el cliente tiene una copia de la clave, el comando ssh comparará la clave de los archivos de
hosts conocidos para ese servidor con el que recibió. Si las claves no coinciden, el cliente supone
que el tráfico de red al servidor está comprometido y solicita al usuario que confirme si desea
continuar o interrumpir la conexión.
RH124-RHEL9.0-es-5-20230516 323
capítulo 10 | Configuración y seguridad de SSH
Si la clave SSH del host de destino cambió desde la última vez que se conectó a ella, el comando
ssh solicita su confirmación para iniciar sesión y aceptar la nueva clave.
Si acepta la nueva clave, se guarda una copia de la clave pública en el archivo ~/.ssh/
known_hosts para confirmar automáticamente la identidad del servidor en las conexiones
posteriores.
nota
Red Hat recomienda establecer el parámetro StrictHostKeyChecking en yes
en el archivo específico del usuario ~/.ssh/config o en el archivo de todo el
sistema /etc/ssh/ssh_config para que el comando ssh siempre interrumpa la
conexión SSH si las claves públicas no coinciden.
Verifique la huella digital de la clave de host SSH del servidor de destino con el comando ssh-
keygen. En este ejemplo, el comando ssh-keygen se ejecuta en el servidor de destino hostb.
El comando ssh-keygen muestra la huella digital de la clave para que pueda compararla con la
salida del comando ssh y verificar que la clave es válida. Utilice las opciones -lf para enumerar la
huella digital de la clave pública en el archivo de clave pública predeterminado del host.
Debido a que no puede conectarse a través de SSH, debe verificar la huella digital de la clave del
host de destino iniciando sesión localmente. Use un método de comunicación fuera de banda para
compartir claves públicas, como una llamada telefónica o una videoconferencia.
Después de verificar la clave en el host de destino, puede aceptar la clave y conectarse al host de
destino.
324 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Es posible que la clave pública de un servidor haya cambiado porque la clave se perdió debido a
una falla en el disco duro o se reemplazó por alguna razón legítima. En ese caso, para iniciar sesión
correctamente en ese sistema, el archivo /etc/ssh/ssh_known_hosts debe modificarse para
reemplazar la entrada de clave pública anterior con la nueva clave pública.
Si se conecta a un sistema remoto y la clave pública de ese sistema no está en el archivo /etc/
ssh/ssh_known_hosts, el cliente SSH busca la clave en el archivo ~/.ssh/known_hosts.
Cada entrada de clave de host conocida consta de una línea que contiene tres campos:
• El primer campo es una lista de nombres de host y direcciones IP que comparten la clave
pública.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:hxttxb/qVi1/ycUU2wXF6mfGH++Ya7WYZv0r+tIkg4I.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
RH124-RHEL9.0-es-5-20230516 325
capítulo 10 | Configuración y seguridad de SSH
Si no sabe por qué ha cambiado la clave, verifique la nueva huella digital de la clave, ya que esta
clave podría ser un ataque real a su red. Use un método fuera de banda para la verificación, como
hablar con el administrador de sistemas del sistema objetivo.
Si sabe por qué ha cambiado la clave, por ejemplo, un cambio de dirección IP, resuelva este
problema eliminando la entrada de clave relevante del archivo ~/.ssh/known_hosts y, a
continuación, vuelva a conectarse al sistema para recibir la nueva entrada de clave.
Referencias
Páginas del manual: ssh(1), w(1) y hostname(1)
326 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
• Iniciar sesión en un sistema remoto.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Desde workstation, abra una sesión de SSH en la máquina servera con el usuario
student.
2. Abra una sesión de SSH en la máquina serverb con el usuario student. Acepte la clave
de host. Use la contraseña student cuando se le solicite la contraseña para el usuario
student en la máquina serverb.
RH124-RHEL9.0-es-5-20230516 327
capítulo 10 | Configuración y seguridad de SSH
comando ssh no se puede ejecutar correctamente si el host remoto tiene otra clave que no
es la que está registrada.
3. Muestre los usuarios que actualmente han iniciado sesión en la máquina serverb. Se
indica que el usuario student ha iniciado sesión en el sistema desde el host con una
dirección IP 172.25.250.10, que corresponde a la máquina servera en la red del aula.
5. Abra una sesión de SSH en la máquina serverb con el usuario root. Use redhat como
contraseña para el usuario root. El comando no le pidió que aceptara la clave de host
porque esta se encontró entre los hosts conocidos. Si la identidad de la máquina serverb
cambia, OpenSSH le solicita que desafíe la nueva clave de host.
6. Ejecute el comando w para mostrar los usuarios que actualmente han iniciado sesión en la
máquina serverb. El resultado indica que el usuario root ha iniciado sesión en el sistema
desde el host con una dirección IP 172.25.250.10, que corresponde a la máquina
servera en la red del aula.
328 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Las claves de host pueden cambiar por razones legítimas: quizás la máquina remota se
reinstaló o se reemplazó debido a una falla del hardware. Por lo general, es aconsejable
eliminar la entrada de clave solo para el host particular en el archivo known_hosts. Dado
que este archivo particular known_hosts tiene solo una entrada, puede eliminar todo el
archivo.
9. Abra una sesión de SSH en la máquina serverb con el usuario student. Si se le solicita,
acepte la clave de host. Use student cuando se le solicite la contraseña para el usuario
student en la máquina serverb.
El comando ssh le solicitó que confirmara si deseaba aceptar o rechazar la clave de host
porque no pudo encontrar una para el host remoto.
10. Salga de la shell del usuario student en la máquina serverb y confirme que una instancia
nueva de known_hosts existe en la máquina servera.
11. Confirme si la nueva instancia del archivo known_hosts tiene la clave de host de
la máquina serverb. La siguiente salida del comando es un ejemplo; su salida de
workstation puede diferir .
12. Ejecute de forma remota el comando hostname en la máquina serverb sin acceder a la
shell interactiva.
RH124-RHEL9.0-es-5-20230516 329
capítulo 10 | Configuración y seguridad de SSH
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
330 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Configurar una cuenta de usuario para usar autenticación basada en claves para iniciar sesión en
sistemas remotos de forma segura y sin una contraseña.
Cuando inicia sesión en su cuenta en un servidor remoto, el servidor remoto usa su clave pública
para cifrar un mensaje de desafío y enviarlo a su cliente SSH. Su cliente SSH debe demostrar
que puede descifrar este mensaje, lo que demuestra que tiene la clave privada asociada. Si esta
verificación se realiza correctamente, su solicitud es de confianza y se le permite el acceso sin
proporcionar una contraseña.
Las contraseñas se pueden aprender o robar fácilmente, pero las claves privadas almacenadas de
forma segura son más difíciles de comprometer.
RH124-RHEL9.0-es-5-20230516 331
capítulo 10 | Configuración y seguridad de SSH
| ..O o + * + |
|.+% O . + B . |
|=*oO . . + * |
|++. . +. |
+----[SHA256]-----+
Puede elegir proporcionar una frase de contraseña a ssh-keygen, que se usa para cifrar su clave
privada. Se recomienda usar una frase de contraseña, de modo que su clave privada no pueda ser
usada por alguien que acceda a ella. Si establece una frase de contraseña, debe ingresar la frase
de contraseña cada vez que use la clave privada. La frase de contraseña se usa localmente para
descifrar su clave privada antes de usarla, a diferencia de su contraseña, que debe enviarse en
texto sin cifrar a través de la red para su uso.
Puede usar el administrador de claves ssh-agent localmente, que almacena en caché su frase
de contraseña al usarla por primera vez en una sesión de inicio de sesión, y luego proporciona la
frase de contraseña para todos los usos posteriores de clave privada en la misma sesión de inicio
de sesión. Este comando ssh-agent se analiza más adelante en esta sección.
En el siguiente ejemplo, se crea una clave privada protegida con frase de contraseña con la clave
pública.
El comando ssh-keygen con la opción -f especifica los archivos en los que se guardan las
claves. En el ejemplo anterior, el comando ssh-keygen guardó el par de claves en los archivos /
home/user/.ssh/key-with-pass y /home/user/.ssh/key-with-pass.pub.
332 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Advertencia
Durante el uso del nuevo comando ssh-keygen, si especifica el nombre de
un par de archivos de claves existente, incluido el par id_rsa predeterminado,
sobrescribirá ese par de claves existente, que solo se puede restaurar si tiene una
copia de seguridad (backup) de esos archivos. Al sobrescribir un par de claves, se
pierde la clave privada original que se requiere para acceder a las cuentas que ha
configurado con la clave pública correspondiente en los servidores remotos.
Luego de colocar la clave pública, pruebe el acceso remoto con la clave privada correspondiente.
Si la configuración es correcta, accede a su cuenta en el sistema remoto sin que se le solicite la
contraseña de su cuenta. Si no especifica un archivo de clave privada, el comando ssh usa el
archivo predeterminado ~/.ssh/id_rsa si existe.
Importante
Si configuró una frase de contraseña para proteger su clave privada, SSH solicitará
la frase de contraseña en el primer uso. Sin embargo, si la autenticación de la clave
se realiza correctamente, no se le solicita la contraseña de su cuenta.
RH124-RHEL9.0-es-5-20230516 333
capítulo 10 | Configuración y seguridad de SSH
Los siguientes comandos de ejemplo ssh-add agregan las claves privadas del archivo ~/.ssh/
id_rsa predeterminado y después de un archivo ~/.ssh/key-with-pass:
El siguiente comando ssh usa el archivo de clave privada predeterminado para acceder a su
cuenta en un servidor SSH remoto:
334 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Cuando cierra sesión en una sesión que usó un administrador de claves ssh-agent, todas las
frases de contraseña almacenadas en caché se borran de la memoria.
RH124-RHEL9.0-es-5-20230516 335
capítulo 10 | Configuración y seguridad de SSH
Si un intento de método de autenticación falla, un servidor SSH remoto fallará a otros métodos
de autenticación permitidos hasta que se prueben todos los métodos disponibles. En el siguiente
ejemplo, se demuestra un acceso remoto con una clave SSH que falla, pero luego el servidor SSH
ofrece autenticación de contraseña que se realiza correctamente.
host serverb
HostName serverb.example.com
User userb
IdentityFile ~/.ssh/id_rsa_serverb
Referencias
Páginas del manual: ssh-keygen(1), ssh-copy-id(1), ssh-agent(1) y ssh-
add(1)
336 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
• Generar un par de claves SSH sin protección de frase de contraseña.
• Realizar la autenticación con claves SSH sin frase de contraseña y mediante claves SSH
protegidas con frase de contraseña.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina serverb con el usuario student.
RH124-RHEL9.0-es-5-20230516 337
capítulo 10 | Configuración y seguridad de SSH
4. Envíe la clave pública del par de claves SSH al usuario operator1 en la máquina servera,
con redhat como contraseña.
El comando ssh anterior no le solicita una contraseña porque usa la clave privada sin frase
de contraseña correspondiente a la clave pública exportada para realizar la autenticación
con el usuario operator1 en la máquina servera.
Este enfoque no es seguro, ya que cualquier persona que tenga acceso al archivo de clave
privada puede iniciar sesión en la máquina servera con el usuario operator1.
En el siguiente paso de este ejercicio, hará que su clave privada sea más segura cifrándola y
protegiendo el acceso mediante la adición de una frase de contraseña.
338 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
6. Genere otro conjunto de claves SSH con el nombre predeterminado y sin una frase de
contraseña y sobrescriba los archivos de claves SSH generados anteriormente. Intente
conectarse a la máquina servera con las nuevas claves SSH. El comando ssh solicita
una contraseña, ya que no puede autenticarse con la clave SSH. Ejecute nuevamente el
comando ssh con la opción -v (detallado) para verificarlo.
Envíe la nueva clave pública del par de claves SSH al usuario operator1 en la máquina
servera para reemplazar la clave pública anterior. Use la contraseña redhat para el
usuario operator1 en la máquina servera. Ejecute el comando hostname en la máquina
servera de forma remota usando el comando ssh sin acceder a la shell interactiva remota
para comprobar que esté funcionando otra vez.
6.1. Vuelva a generar otro conjunto de claves SSH con el nombre predeterminado y
sin una frase de contraseña y sobrescriba los archivos de claves SSH generados
anteriormente.
6.2. Intente conectarse a la máquina servera con las nuevas claves SSH. El comando
ssh solicita una contraseña, ya que no puede autenticarse con la clave SSH.
Presione Ctrl+c para salir del comando ssh cuando se le solicite una contraseña.
Ejecute nuevamente el comando ssh con la opción -v (detallado) para verificarlo.
Presione Ctrl+c nuevamente para salir del comando ssh cuando se le solicite una
contraseña.
RH124-RHEL9.0-es-5-20230516 339
capítulo 10 | Configuración y seguridad de SSH
6.3. Envíe la nueva clave pública del par de claves SSH al usuario operator1 en la
máquina servera para reemplazar la clave pública anterior. Use la contraseña
redhat para el usuario operator1 en la máquina servera. Ejecute el comando
hostname en la máquina servera de forma remota usando el comando ssh sin
acceder a la shell interactiva remota para comprobar que esté funcionando otra vez.
7. Genere 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.
8. Envíe la clave pública del par de claves protegidas con frase de contraseña al usuario
operator1 en la máquina servera. El comando no le solicita una contraseña porque
usa la clave pública de la clave privada sin frase de contraseña que exportó a la máquina
servera en el paso anterior
340 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Use el programa 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 del programa ssh-
agent resulta más conveniente y más seguro cuando los administradores inician sesión en
sistemas remotos con regularidad.
10. Ejecute el programa 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 inicia el programa ssh-agent y configura esta sesión de shell para usarla.
Luego, use el comando ssh-add para proporcionar la clave privada desbloqueada al
programa ssh-agent.
11. Ejecute el comando hostname en la máquina servera de forma remota sin acceder a la
shell interactiva remota. Use la clave /home/operator1/.ssh/key2 como el archivo de
identidad.
El comando no le solicita que ingrese la frase de contraseña de forma interactiva.
RH124-RHEL9.0-es-5-20230516 341
capítulo 10 | Configuración y seguridad de SSH
12. Abra otro terminal en la máquina workstation e inicie sesión en la máquina serverb con
el usuario student.
13. En la máquina serverb, cambie al usuario operator1 e inicie sesión de forma remota en
la máquina servera. Use la clave /home/operator1/.ssh/key2 como el archivo de
identidad para realizar la autenticación por medio de claves SSH.
13.1. Use el comando su para cambiar al usuario operator1. Use redhat como
contraseña para el usuario operator1.
14. Salga y cierre todos los terminales adicionales y regrese a la máquina workstation.
14.1. Salga y cierre las ventanas de terminal extra. 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 la máquina serverb.
342 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 343
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Deshabilitar los inicios de sesión directos como root y la autenticación basada en contraseñas
para el servicio OpenSSH.
La configuración predeterminada del servidor OpenSSH funciona bien para varios casos de uso.
Sin embargo, es posible que desee realizar algunos cambios para fortalecer la seguridad de su
sistema. Es posible que desee prohibir el inicio de sesión remoto directo en la cuenta root, y es
posible que desee prohibir la autenticación basada en contraseña (a favor de la autenticación de
clave privada SSH).
• El nombre de usuario root existe en cada sistema Linux de manera predeterminada; por lo
tanto, un posible atacante solo tiene que adivinar la contraseña en lugar de una combinación de
nombre de usuario y contraseña válidos. Este escenario reduce la complejidad para un atacante.
• El usuario root tiene privilegios sin restricciones, por lo que su grado de vulnerabilidad puede
generar un daño importantísimo en el sistema.
• Desde una perspectiva de auditoría, puede ser difícil rastrear qué usuario autorizado inició
sesión con el usuario root e hizo cambios. Si los usuarios deben iniciar sesión como un
usuario regular y cambiar a la cuenta root, puede ver un evento de registro para proporcionar
responsabilidad.
Importante
A partir de Red Hat Enterprise Linux 9, el parámetro PermitRootLogin se
establece en el valor prohibit-password de forma predeterminada. Este valor
impone el uso de autenticación basada en claves en lugar de contraseñas para
iniciar sesión con el usuario root y reduce el riesgo de ataques de fuerza bruta.
PermitRootLogin yes
344 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
• Los atacantes no pueden usar ataques de adivinación de contraseñas para acceder de forma
remota a cuentas conocidas en el sistema.
• Con las claves privadas protegidas con frase de contraseña, un atacante necesita tanto la
frase de contraseña como una copia de la clave privada. Con las contraseñas, un atacante solo
necesita la contraseña.
• Mediante el uso de claves privadas protegidas con frase de contraseña junto con ssh-agent,
la frase de contraseña se ingresa y se expone con menos frecuencia y el inicio de sesión es más
conveniente para el usuario.
PasswordAuthentication yes
Siempre que cambie el archivo /etc/ssh/sshd_config, debe volver a cargar el servicio sshd
para que se apliquen los cambios.
Importante
Si desactiva la autenticación basada en contraseña para ssh, debe asegurarse que
el archivo ~/.ssh/authorized_keys del usuario en el servidor remoto se rellene
con su clave pública, para que puedan iniciar sesión.
Referencias
Páginas del manual ssh(1), sshd_config(5)
RH124-RHEL9.0-es-5-20230516 345
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
• Deshabilitar los inicios de sesión directos como root en ssh.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando garantiza que estén disponibles todos los recursos requeridos.
Instrucciones
1. Desde workstation, abra una sesión de SSH en la máquina serverb con el usuario
student.
3. Use el comando ssh-keygen para generar claves SSH. No introduzca ninguna frase de
contraseña para las claves.
346 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
4. Use el comando ssh-copy-id para enviar la clave pública del par de claves SSH al
usuario operator2 en la máquina servera. Use redhat como contraseña para el usuario
operator2 en servera.
5. Confirme que pueda iniciar sesión correctamente en la máquina servera con el usuario
operator2 por medio de las claves SSH.
5.1. Abra una sesión de SSH en la máquina servera con el usuario operator2.
RH124-RHEL9.0-es-5-20230516 347
capítulo 10 | Configuración y seguridad de SSH
6. Confirme que pueda iniciar sesión correctamente en la máquina servera con el usuario
root y la contraseña redhat.
6.1. Abra una sesión de SSH en la máquina servera con el usuario root y la contraseña
redhat.
7. Confirme que pueda iniciar sesión correctamente en la máquina servera con el usuario
operator3 y la contraseña redhat.
7.1. Abra una sesión de SSH en la máquina servera con el usuario operator3 y la
contraseña redhat.
8. Configure el servicio sshd en la máquina servera para evitar que los usuarios inicien
sesión con el usuario root. Use la contraseña redhat para el superusuario cuando sea
necesario.
8.1. Abra una sesión de SSH en la máquina servera con el usuario operator2 con las
claves SSH.
348 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
8.2. En la máquina servera, cambie al usuario root. Use redhat como contraseña para
el usuario root.
[operator2@servera ~]$ su -
Password: redhat
[root@servera ~]#
...output omitted...
PermitRootLogin no
...output omitted...
[root@servera ~]# systemctl reload sshd
8.4. Abra otro terminal en workstation y abra una sesión de SSH en la máquina
serverb con el usuario operator2. Desde la máquina serverb, intente iniciar
sesión en la máquina servera con el usuario root. Este comando debería fallar
porque ha deshabilitado el inicio de sesión del usuario root mediante SSH en el paso
anterior.
nota
Para su comodidad, el inicio de sesión sin contraseña ya está configurado entre
workstation y serverb en el entorno del aula.
9. Configure el servicio sshd en la máquina servera para permitir que los usuarios realicen la
autenticación por medio de claves SSH solamente, en lugar de usar sus contraseñas.
9.1. Regrese al primer terminal que tiene la shell del usuario root activa en la máquina
servera. Establezca el parámetro PasswordAuthentication en no en el archivo
/etc/ssh/sshd_config y vuelva a cargar el servicio sshd. Puede usar el comando
vim /etc/ssh/sshd_config para editar el archivo de configuración del servicio
sshd.
RH124-RHEL9.0-es-5-20230516 349
capítulo 10 | Configuración y seguridad de SSH
...output omitted...
PasswordAuthentication no
...output omitted...
[root@servera ~]# systemctl reload sshd
9.2. Vaya al segundo terminal con la shell activa del usuario operator2 en la máquina
serverb e intente iniciar sesión en la máquina servera con el usuario operator3.
Este comando debería fallar porque las claves SSH no están configuradas para el
usuario operator3 y el servicio sshd en la máquina servera no permite el uso de
contraseñas para la autenticación.
nota
Para mayor granularidad, puede usar las opciones explícitas -o
PubkeyAuthentication=no y -o PasswordAuthentication=yes con el
comando ssh. Luego, puede anular los valores predeterminados del comando
ssh y comprobar con seguridad que el comando anterior falla en función de la
configuración que haya ajustado en el archivo /etc/ssh/sshd_config en el paso
anterior.
9.3. Regrese al primer terminal que tiene la shell del usuario root activa en la máquina
servera. Verifique que PubkeyAuthentication esté habilitado en el archivo /
etc/ssh/sshd_config. Puede usar el comando vim /etc/ssh/sshd_config
para ver el archivo de configuración del servicio sshd.
...output omitted...
#PubkeyAuthentication yes
...output omitted...
9.4. Regrese al segundo terminal con la shell activa del usuario operator2 en la máquina
serverb e intente iniciar sesión en la máquina servera con el usuario operator2.
Este comando debería obtener un resultado satisfactorio porque las claves SSH
están configuradas para que el usuario operator2 inicie sesión en la máquina
servera desde la máquina serverb.
9.5. Desde el segundo terminal, salga de la shell del usuario operator2 en las máquinas
servera y serverb.
350 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
9.7. Desde el primer terminal, salga de la shell del usuario root en la máquina servera.
9.8. Desde el primer terminal, salga de la shell del usuario operator2 en las máquinas
servera y serverb.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 351
capítulo 10 | Configuración y seguridad de SSH
Trabajo de laboratorio
Resultados
• Realizar una autenticación con claves SSH.
• Evitar que los usuarios inicien sesión directamente con el usuario root en el servicio ssh.
• Evitar que los usuarios inicien sesión en el sistema con la autenticación basada en
contraseñas de SSH.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Desde la máquina workstation, inicie sesión en la máquina servera con el usuario
student.
2. Cambie al usuario production1 en la máquina servera. Ingrese la contraseña redhat.
3. Genere claves SSH sin frase de contraseña para el usuario production1 en la máquina
servera.
4. Envíe la clave pública del par de claves SSH al usuario production1 en la máquina
serverb.
5. Confirme que el usuario production1 pueda iniciar sesión correctamente en la máquina
serverb por medio de las claves SSH.
6. Configure el servicio sshd en serverb para evitar que los usuarios inicien sesión con el
usuario root. Use redhat como la contraseña root.
7. Configure el servicio sshd en la máquina serverb para permitir que los usuarios realicen la
autenticación por medio de claves SSH solamente, en lugar de usar sus contraseñas.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
352 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 353
capítulo 10 | Configuración y seguridad de SSH
Solución
Resultados
• Realizar una autenticación con claves SSH.
• Evitar que los usuarios inicien sesión directamente con el usuario root en el servicio ssh.
• Evitar que los usuarios inicien sesión en el sistema con la autenticación basada en
contraseñas de SSH.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Desde la máquina workstation, inicie sesión en la máquina servera con el usuario
student.
3. Genere claves SSH sin frase de contraseña para el usuario production1 en la máquina
servera.
354 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
4. Envíe la clave pública del par de claves SSH al usuario production1 en la máquina
serverb.
6. Configure el servicio sshd en serverb para evitar que los usuarios inicien sesión con el
usuario root. Use redhat como la contraseña root.
[production1@serverb ~]$ su -
Password: redhat
[root@serverb ~]#
RH124-RHEL9.0-es-5-20230516 355
capítulo 10 | Configuración y seguridad de SSH
...output omitted...
PermitRootLogin no
...output omitted...
[root@serverb ~]# systemctl reload sshd.service
6.3. Abra otro terminal en la máquina workstation e inicie sesión en la máquina servera
con el usuario production1. Desde servera, intente iniciar sesión en la máquina
serverb con el usuario root. Este comando debería fallar porque ha deshabilitado el
inicio de sesión del usuario root mediante SSH.
El comando se cerró después de tres intentos fallidos de iniciar sesión en la máquina
servera con el usuario root. De manera predeterminada, el comando ssh prefiere
usar claves SSH para la autenticación, y si no encuentra las claves necesarias del
usuario, solicita la contraseña del usuario para la autenticación.
nota
Para comodidad del curso, el inicio de sesión root sin contraseña ya está
configurado entre workstation y servera en el entorno del aula. Sin embargo,
esta configuración es muy insegura y no se recomienda para ningún entorno de
producción.
7. Configure el servicio sshd en la máquina serverb para permitir que los usuarios realicen la
autenticación por medio de claves SSH solamente, en lugar de usar sus contraseñas.
7.1. Regrese al primer terminal que tiene la shell root activa en la máquina serverb.
Establezca el parámetro PasswordAuthentication en no en el archivo /etc/
ssh/sshd_config y vuelva a cargar el servicio sshd. Edite el parámetro activo sin
comentarios y no un ejemplo comentado.
...output omitted...
PasswordAuthentication no
...output omitted...
[root@serverb ~]# systemctl reload sshd
7.2. Vaya al segundo terminal con la shell activa production1 en la máquina servera
e intente iniciar sesión en la máquina serverb con el usuario production2. Este
comando debería fallar porque las claves SSH no están configuradas para el usuario
356 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
nota
Para mayor granularidad, puede usar las opciones explícitas
ssh y -o PubkeyAuthentication=no con el comando -o
PasswordAuthentication=yes. Con estas opciones, puede anular los valores
predeterminados del comando ssh y establecer con seguridad si el comando
anterior falla en función de la configuración que haya ajustado en el archivo /etc/
ssh/sshd_config en el paso anterior.
7.3. Regrese al primer terminal que tiene la shell root activa en la máquina serverb.
Verifique que PubkeyAuthentication esté habilitado en el archivo /etc/ssh/
sshd_config.
7.4. Regrese al segundo terminal con la shell activa production1 en la máquina servera
e intente iniciar sesión en la máquina serverb con el usuario production1. Este
comando debería obtener un resultado satisfactorio porque las claves SSH están
configuradas para que el usuario production1 pueda iniciar sesión en la máquina
serverb desde la máquina servera.
RH124-RHEL9.0-es-5-20230516 357
capítulo 10 | Configuración y seguridad de SSH
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
358 RH124-RHEL9.0-es-5-20230516
capítulo 10 | Configuración y seguridad de SSH
Resumen
• Con el comando ssh, los usuarios pueden acceder de manera segura a los sistemas remotos
con el protocolo SSH.
• Un sistema cliente almacena las identidades de los servidores remotos en los archivos ~/.ssh/
known_hosts y /etc/ssh/ssh_known_hosts.
• 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.
• El servicio sshd implementa el protocolo SSH en los sistemas de Red Hat Enterprise Linux.
• Una práctica recomendada para configurar sshd es deshabilitar los inicios de sesión remotos
como root y requerir la autenticación de clave pública en lugar de la autenticación basada en
contraseña.
RH124-RHEL9.0-es-5-20230516 359
360 RH124-RHEL9.0-es-5-20230516
capítulo 11
Gestión de redes
Meta Configurar las interfaces de red y la configuración
en servidores Red Hat Enterprise Linux.
RH124-RHEL9.0-es-5-20230516 361
capítulo 11 | Gestión de redes
Objetivos
Describir conceptos fundamentales de direccionamiento y enrutamiento de redes para un servidor
El protocolo se especifica mediante RFC 1122, Requirements for Internet Hosts - Communication
Layers.
• Aplicación
Cada aplicación tiene especificaciones para que los clientes y los servidores puedan
comunicarse en las plataformas. Entre los protocolos comunes se incluyen SSH, HTTPS (web
segura), NFS o CIFS (uso compartido de archivo) y SMTP (envío de correo electrónico).
• Transporte
TCP y UDP son protocolos de transporte. TCP es una confiable comunicación orientada a la
conexión, mientras que UDP es un protocolo de datagramas sin conexión. Los protocolos de
aplicaciones pueden usar puertos TCP o UDP. En el archivo /etc/services, encontrará una
lista de puertos conocidos y registrados.
Cuando un paquete se envía por la red, la combinación del puerto de servicio y la dirección
IP forma un socket. Cada paquete tiene un socket de origen y un socket de destino. Esta
información puede usarse al realizar tareas de monitoreo y filtrado del tráfico de red.
• Internet
La capa de Internet, o capa de red, transporta datos desde el host de origen hasta el host de
destino. Los protocolos IPv4 e IPv6 son protocolos de capa de Internet. Cada host tiene una
dirección IP y un prefijo que se usan para determinar direcciones de red. Los enrutadores se
usan para conectar redes.
• Enlace
La capa de enlace, o acceso a medios, proporciona la conexión a medios físicos. Los tipos
de redes más comunes son Ethernet (802.3) cableada y Wi-Fi (802.11) inalámbrica. Cada
dispositivo físico tiene una dirección de Control de Acceso a los Medios (MAC), también
conocida como dirección de hardware, para identificar el destino de paquetes en el segmento
de red local.
362 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Versiones anteriores de Red Hat Enterprise Linux usaban nombres como eth0, eth1 y eth2 para
cada interfaz de red. El nombre de la interfaz eth0 fue el primer puerto de red detectado por el
sistema operativo; eth1 fue la segunda interfaz y así sucesivamente. Sin embargo, a medida que
se agregaban y eliminaban dispositivos, el mecanismo que los detectaba y los nombraba podía
cambiar el nombre que recibía cada interfaz. Además, el estándar PCIe no garantiza el orden en
el que se detectan los dispositivos PCIe durante el inicio, lo que podría cambiar la denominación
del dispositivo inesperadamente debido a las variaciones durante el inicio del dispositivo o del
sistema.
El resto del nombre de la interfaz después del tipo se basa en la información del firmware del
servidor o se determina por la ubicación del dispositivo en la topología PCI.
• oN indica un dispositivo integrado con un índice N único del firmware del servidor. El nombre
eno1 es el dispositivo Ethernet integrado 1.
RH124-RHEL9.0-es-5-20230516 363
capítulo 11 | Gestión de redes
• sN indica un dispositivo en la ranura PCI hotplug N. Por ejemplo, ens3 es una tarjeta Ethernet
en la ranura PCI hotplug 3.
• pMsN indica un dispositivo PCI en el bus M en la ranura N. Una interfaz wlp4s0 es una tarjeta
WLAN en el bus PCI 4 en la ranura 0. Si la tarjeta es un dispositivo multifunción (como una
tarjeta Ethernet con varios puertos o un dispositivo con Ethernet más alguna otra función),
puede ver fN al nombre del dispositivo. Una interfaz enp0s1f0 es la función 0 de la tarjeta
Ethernet en el bus 0 en la ranura 1. También puede haber una segunda interfaz llamada
enp0s1f1 que es la función 1 de ese mismo dispositivo.
La asignación de nombres persistente significa que cuando se establece el nombre para una
interfaz de red en el sistema, el nombre de la interfaz no cambia, incluso si agrega o elimina
hardware. Un comportamiento de asignación de nombres persistente es que un sistema con una
sola interfaz generar un nombre de dispositivo usando un esquema de información de hardware y
no se espera que use el esquema de asignación de nombres del kernel eth0.
Redes IPv4
Aunque actualmente IPv4 sigue siendo el esquema de direccionamiento más común en las redes
empresariales, IPv6 ha superado el uso de IPv4 en las redes móviles. Necesita un conocimiento
básico de las redes IPv4 para gestionar las redes en sus servidores.
Direcciones IPv4
Una dirección IPv4 es un número de 32 bits, expresado en decimales como cuatro octetos de 8
bits cuyo valor varía entre 0 y 255, separado por puntos. La dirección se divide en dos partes: el
prefijo de red y el número de host. El prefijo de red identifica una subred física o virtual única. El
número de host identifica un host específico en la subred. Todos los hosts en la misma subred
tienen el mismo prefijo de red y pueden comunicarse entre sí directamente sin un enrutador. Una
puerta de enlace de red conecta diferentes redes y un enrutador de red generalmente funciona
como puerta de enlace para una subred.
nota
Una subred es un segmento de una red más grande, y el uso del término depende
del contexto. Una red IP se divide en varios segmentos de red más pequeños. Por
lo general, el segmento se refiere a la capa de enlace física o virtual, mientras que
la subred se refiere al direccionamiento lógico de la capa de red para el segmento
correspondiente.
En la especificación IPv4 original, los prefijos de red permitidos eran uno de los tres tamaños fijos
para paquetes de unidifusión que tienen un solo origen y destino. El prefijo de red puede ser de 8
bits (clase A), 16 bits (clase B) o 24 bits (clase C). Hoy en día, la cantidad de bits en el prefijo de
red es variable, lo que significa que el prefijo puede ser cualquier número en el rango admitido y
esta nueva especificación se denomina enrutamiento entre dominios sin clase (CIDR). Si bien las
clases de dirección fija ya no están en uso, muchos profesionales de redes aún se refieren a redes
con prefijos de red de 8, 16 o 24 bits que usan la designación original de clase A, B o C.
364 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Una máscara de red (netmask) es una máscara binaria cuya longitud indica cuántos bits
pertenecen al prefijo de red que identifica la subred. Debido a que una dirección IPv4 siempre
tiene una longitud de 32 bits, una subred con una máscara de red más larga tiene menos bits
disponibles para identificar hosts, lo que significa menos hosts posibles. Una subred con una
máscara de red más corta tiene más bits disponibles para identificar hosts, lo que significa más
hosts posibles y una subred más grande.
Las máscaras de red se expresan en una de dos formas, que se usan de forma rutinaria. La primera
forma, conocida como notación CIDR, agrega una barra oblicua (/) y un número entero hasta 32
que indica la cantidad de bits en la máscara binaria. La segunda notación muestra el número de
bits en la máscara binaria como cuatro octetos de 8 bits en formato decimal.
• La dirección de red para una subred es la dirección más baja posible en una subred, donde el
número de host es todo ceros binarios.
• La dirección de difusión para una subred es la dirección más alta posible en una subred, donde el
número de host es todo binario, y es una dirección especial para transmitir paquetes a todos los
hosts de la subred.
• La dirección de la puerta de enlace para una subred puede ser cualquier número de host único
en la subred, pero generalmente se establece en el primer número de host disponible, que
es un número binario de todos los ceros, excepto un '1' en el último bit. Esta convención de
numeración de puerta de enlace no es obligatoria y las subredes que no necesitan comunicación
externa no establecen una puerta de enlace de red.
Las siguientes figuras ilustran cómo se usan una dirección IP y una máscara de red para calcular
el prefijo de red y el número de host para una subred. Realice un cálculo AND binario en el
que cada bit en la dirección IP y máscara de red sea binaria y se compare cada bit con su bit
correspondiente en la dirección P y máscara de red hasta la longitud del prefijo. En un cálculo
AND, ambos bits deben ser un '1' para que el resultado sea un '1', y todas las demás combinaciones
dan como resultado 0. Realice un cálculo OR binario en los bits restantes en el número de host,
donde cualquiera de los bits puede ser un '1' para que el resultado sea un '1'. En un cálculo OR
binario, solo dos bits '0' dan como resultado un '0'.
Figura 11.2: Cálculo de la máscara de red IPv4 para una red pequeña
RH124-RHEL9.0-es-5-20230516 365
capítulo 11 | Gestión de redes
Figura 11.3: Cálculo de la máscara de red IPv4 para una red grande
En el siguiente ejemplo, una máscara de red /19 es un prefijo de red válido que usa solo un octeto
parcial. Las máscaras de red de longitud variable permiten subredes con una cantidad diferente
de hosts que las máscaras de red de octetos completos. Los 13 bits restantes, u 8190 direcciones,
están disponibles para el direccionamiento de host.
366 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
En el siguiente ejemplo, /8 indica una red grande. Solo el primer octeto se usa para el prefijo
de red (10.0.0.0). Los 24 bits restantes, o 16,777,214 direcciones, están disponibles para el
direccionamiento de host. La dirección de difusión 10.255.255.255 es la última dirección de la
red.
Rutas IPv4
Los paquetes de red se mueven de un host a otro en una subred y a través de enrutadores de
una red a otra. Cada host tiene una tabla de enrutamiento, que determina qué interfaz de red
es correcta para enviar paquetes a redes particulares. Una entrada de la tabla de enrutamiento
enumera la red de destino, la interfaz de red que se debe usar y la dirección IP del enrutador que
reenviará el paquete en su destino final. La entrada de la tabla de enrutamiento que coincide con
el prefijo de red de la dirección de destino se usa para enrutar el paquete. Si varias entradas son
válidas para la dirección de destino, se usa la entrada con el prefijo más largo.
Si la red de destino no coincide con una entrada más específica, el paquete se enruta con la
entrada predeterminada 0.0.0.0/0. Esta ruta predeterminada apunta al enrutador de la puerta
de enlace en una subred local a la que puede acceder el host.
Cuando un enrutador recibe paquetes que no están dirigidos a sí mismo, el enrutador reenvía
el tráfico en función de su propia tabla de enrutamiento. El reenvío puede enviar el paquete
directamente al host de destino si este enrutador está en la subred de destino, o reenviar
nuevamente el paquete a la red de otro enrutador. El reenvío de paquetes en los enrutadores
continúa hasta que el paquete alcanza la red y el host de destino solicitados.
RH124-RHEL9.0-es-5-20230516 367
capítulo 11 | Gestión de redes
192.168.5.0/24 enp0s1f0
192.168.6.0/24 enp0s2f0
– Este tráfico se debe a que la máquina hostb tiene una interfaz conectada a esa red y es la
coincidencia más cercana a la entrada de la ruta.
• El tráfico de red desde la máquina hostb a un host con la dirección IP 172.17.50.120 usa la
interfaz enp0s1f0 porque el tráfico coincide con la tercera entrada en la tabla de enrutamiento.
– La máquina hostb no tiene una interfaz conectada directamente a esta red, por lo que
este tráfico se envía al enrutador del siguiente salto con la dirección 192.168.5.1, que es
accesible a través de la interfaz enp0s1f0. A continuación, el tráfico se reenvía a su destino.
– Debido a que la máquina hostb no tiene una interfaz conectada directamente a la red
172.17.0.0/16, alguien con conocimiento de la topología de la red debe agregar esta
entrada de ruta a la tabla de enrutamiento.
• El tráfico de red con un destino que no coincide con ninguna entrada en la tabla de
enrutamiento se envía a la ruta predeterminada. La ruta predeterminada, designada por
0.0.0.0/0, se muestra en la cuarta entrada.
– Por ejemplo, todo el tráfico de la máquina hostb a Internet se reenvía al enrutador del
siguiente salto con la dirección 192.168.5.1 que es accesible a través de la interfaz
enp0s1f0. A continuación, el tráfico se reenvía a su destino.
368 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
enlace para localizar un servidor DHCP o proxy, y negocia el uso de una dirección única y otras
configuraciones para un período de concesión específico. El cliente debe solicitar periódicamente
la renovación de la concesión (lease) para mantener el uso de la configuración de red asignada.
Como alternativa, puede configurar un servidor para usar una configuración estática de la red. La
configuración de red estática se lee desde los archivos de configuración locales. La configuración
que use debe ser adecuada para su subred. Coordine con su administrador de red para evitar
conflictos con otros servidores en las mismas subredes.
Redes IPv6
IPv6 está diseñado para ampliar en gran medida el número total de direcciones de dispositivos
disponibles. IPv6 se usa tanto en redes empresariales como para comunicaciones móviles. La
mayoría, si no todos, los proveedores de servicios de Internet (ISP) usan ampliamente IPv6 para la
asignación a equipos internos y para la asignación dinámica de dispositivos de clientes.
IPv6 también se puede usar en paralelo con IPv4 en un modelo de pila doble. Una sola interfaz de
red puede tener ambas direcciones IPv4 o IPv6. De forma predeterminada, Red Hat Enterprise
Linux opera en un modo de pila doble.
Direcciones IPv6
Una dirección IPv6 es un número de 128 bits que, en general, se expresa en ocho grupos
separados por dos puntos de cuatro cuartetos (medio byte) hexadecimales. Cada cuarteto
representa cuatro bits de la dirección IPv6, por lo que cada grupo representa 16 bits de la dirección
IPv6.
2001:0db8:0000:0010:0000:0000:0000:0001
Para simplificar la escritura de direcciones IPv6, no son necesarios los ceros a la izquierda en un
grupos separado por dos puntos. Sin embargo, se debe escribir al menos un dígito hexadecimal en
cada grupo separado por dos puntos.
2001:db8:0:10:0:0:0:1
Dado que las direcciones con largas cadenas de ceros son habituales, uno o más grupos de ceros
consecutivos pueden combinarse con exactamente un bloque de dos caracteres :: con dos
puntos.
2001:db8:0:10::1
• Use un bloque de dos puntos :: para acortar la dirección tanto como sea posible.
• Si una dirección contiene dos grupos de ceros consecutivos, de igual longitud, acorte los grupos
de ceros situados más a la izquierda a :: y los grupos más a la derecha a :0: para cada grupo.
• Aunque está permitido, no use :: para acortar un grupo único de ceros. Use :0: en su lugar, y
guarde :: para grupos de ceros consecutivos.
RH124-RHEL9.0-es-5-20230516 369
capítulo 11 | Gestión de redes
Importante
Al incluir un puerto de red TCP o UDP después de una dirección IPv6, encierre
siempre la dirección IPv6 entre corchetes de manera que el puerto no parezca
formar parte de la dirección.
[2001:db8:0:10::1]:80
Subredes IPv6
Una dirección de monodifusión IPv6 normal se divide en dos partes: el prefijo de red y la ID de
la interfaz. El prefijo de red identifica la subred. Dos interfaces de red en la misma subred no
pueden tener el mismo ID de la interfaz: el ID de la interfaz identifica una interfaz en particular en
la subred.
A diferencia de IPv4, IPv6 tiene una máscara de subred estándar, /64, que se usa para casi todas
las direcciones normales. En este caso, una mitad de la dirección de 128 bits es el prefijo de red y
la otra mitad es el ID de la interfaz. Con 64 bits para direcciones de host, una sola subred podría
contener, en teoría, 2^64 hosts.
En general, el proveedor de red asignará un prefijo más corto a una organización, como /48. Esto
permite que el resto de la parte de red quede libre para asignar subredes (siempre de longitud/64
como máximo) de ese prefijo asignado. Por ejemplo, cuando se asigna un prefijo de asignación
/48, hay 16 bits disponibles para hasta 65536 subredes.
370 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Importante
La tabla anterior enumera las asignaciones de direcciones de red que están
reservadas para fines específicos. Estas asignaciones pueden consistir en muchas
redes. Recuerde que las redes IPv6 asignadas desde los espacios de direcciones
de monodifusión global y monodifusión de enlace-local tienen una máscara de red
estándar /64.
RH124-RHEL9.0-es-5-20230516 371
capítulo 11 | Gestión de redes
Una dirección de enlace-local en IPv6 es una dirección no enrutable que el sistema usa solo para
comunicarse con sistemas en el mismo enlace de red. Para asegurarse de que la dirección IP sea
única, el sistema usa un método específico para computar el ID de interfaz de la dirección de
enlace-local.
nota
En un principio, el ID de la interfaz para la dirección de enlace-local IPv6 se creó a
partir de la dirección MAC del dispositivo de red. La exposición de la dirección MAC
como parte de la dirección IPv6 puede causar algunos problemas de seguridad y
privacidad, ya que es posible identificar y seguir una computadora en la red.
Las extensiones de privacidad de IPv6 (RFC 4941) son una solución diferente a la
misma preocupación y están controladas por diferentes configuraciones, que están
deshabilitadas de manera predeterminada.
Puede usar el comando ip addr show para recuperar la dirección de enlace-local IPv6, como
en el siguiente ejemplo. Agregue la opción -br para obtener una breve lista de direcciones
solamente.
Agregue la opción -br para obtener una breve lista de direcciones IPv4 e IPv6, solamente.
La multidifusión permite que un sistema envíe tráfico a una dirección IP especial que es recibida
por múltiples sistemas. La multidifusión difiere de la difusión porque los paquetes de difusión
no son enrutables y solo llegan a los hosts de la subred local. Por el contrario, los paquetes de
multidifusión se enrutan a hosts específicos que anunciaron una solicitud para los paquetes de
multidifusión direccionados de forma única. Los paquetes de multidifusión pueden enrutarse
a otras subredes, si todos los enrutadores intermediarios admiten el reenvío de solicitudes de
multidifusión y enrutamiento.
La multidifusión desempeña un rol más importante en IPv6 que en IPv4 ya que no hay una
dirección de difusión en IPv6. La dirección IPv6 ff02::1 es una dirección de multidifusión clave
372 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
que se usa como dirección de enlace-local all-nodes y se comporta como una dirección de
difusión. Puede hacer ping a esta dirección para enviar el tráfico a todos los nodos del enlace.
Las direcciones de multidifusión de ámbito de vínculo (que empiezan con ff02::/8) deben
especificarse con un identificador de ámbito, al igual que una dirección de enlace-local.
Puede seleccionar ID de interfaz para direcciones IPv6 estáticas, similar a IPv4. En IPv4, no se
pueden usar dos direcciones en una red: la dirección más baja, que es la dirección de red y la
dirección más alta, que es la dirección de difusión. En IPv6, se reservan dos ID de interfaz y no se
pueden usar como direcciones de interfaz de host normales:
Las negociaciones de concesión (lease) de DHCPv6 funcionan de manera diferente a IPv4 DHCP,
ya que DHCPv6 no tiene una dirección de difusión. Un host envía una solicitud de DHCPv6 desde
su dirección de enlace local hasta el puerto 547/UDP en el grupo de multidifusión de enlace local
ff02::1:2 all-dhcp-servers específico. A continuación, el servidor DHCPv6 puede optar
por enviar una respuesta con la información apropiada al puerto 546/UDP en la dirección de
enlace-local del cliente.
El paquete dhcp en Red Hat Enterprise Linux 9 proporciona soporte para un servidor DHCPv6.
Además de DHCPv6, IPv6 también admite otro método de configuración dinámica, llamado
Autoconfiguración de direcciones sin estado (SLAAC). Para usar SLAAC, un host configura su
interfaz con una dirección de enlace local fe80::/64 y envía una "solicitud de enrutador" al grupo
de multidifusión de enlace-local ff02::2 all-routers. Un enrutador IPv6 en el vínculo local
responde a la dirección de enlace-local del host con un prefijo de red previamente configurado
y, posiblemente, con otra información relevante. El host usa el prefijo de red provisto con un ID
de interfaz construido de la misma manera que para las direcciones de enlace-local. El enrutador
envía, de manera periódica, actualizaciones multidifusión (anuncios de enrutador) para confirmar o
actualizar la información de red proporcionada.
El paquete radvd en Red Hat Enterprise Linux 9 permite que un enrutador IPv6 basado en
Red Hat Enterprise Linux genere SLAAC a través de anuncios de enrutador.
RH124-RHEL9.0-es-5-20230516 373
capítulo 11 | Gestión de redes
Importante
Un sistema Red Hat Enterprise Linux 9 típico que está configurado para direcciones
IPv4 dinámicas mediante DHCP se configura normalmente para IPv6 dinámico
mediante SLAAC. Los hosts con una configuración de IPv6 dinámica pueden
obtener inesperadamente direcciones IPv6 adicionales cuando se agrega un nuevo
enrutador IPv6 a la red.
Un método es crear entradas estáticas para cada nombre de host en el archivo /etc/hosts de
cada sistema. Con este método, debe actualizar manualmente cada copia del archivo hosts del
servidor.
Cuando está configurado, puede buscar la dirección para un nombre de host (o un nombre de
host de una dirección) con el servicio de red Sistema de Nombres de Dominio (DNS). DNS es una
red distribuida de servidores que proporciona asignaciones de resolución de nombres. Para que
la resolución de nombres funcione, se debe configurar un host para saber dónde contactar un
servidor de nombres. El servidor de nombres no debe estar en la misma subred, pero el host debe
tener acceso a ella. Una configuración de servidor de nombres generalmente se obtiene a través
de DHCP o mediante la creación de una configuración de dirección estática en el archivo /etc/
resolv.conf. Las siguientes secciones de este capítulo explican cómo configurar la resolución
de nombres.
374 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Referencias
Páginas del manual: services(5), ping(8), biosdevname(1) y udev(7)
RH124-RHEL9.0-es-5-20230516 375
capítulo 11 | Gestión de redes
Cuestionario
3. ¿Qué dirección representa una dirección de host IPv4 válida en la red 192.168.1.0/24?
a. 192.168.1.188
b. 192.168.1.0
c. 192.168.1.255
d. 192.168.1.256
376 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
6. ¿Qué término se refiere a la capacidad de que un sistema envíe tráfico a una dirección
IP especial que es recibida por múltiples sistemas?
a. netscope
b. máscara de red
c. subred
d. multidifusión
e. netaddr
f. red
RH124-RHEL9.0-es-5-20230516 377
capítulo 11 | Gestión de redes
Solución
3. ¿Qué dirección representa una dirección de host IPv4 válida en la red 192.168.1.0/24?
a. 192.168.1.188
b. 192.168.1.0
c. 192.168.1.255
d. 192.168.1.256
378 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
6. ¿Qué término se refiere a la capacidad de que un sistema envíe tráfico a una dirección
IP especial que es recibida por múltiples sistemas?
a. netscope
b. máscara de red
c. subred
d. multidifusión
e. netaddr
f. red
RH124-RHEL9.0-es-5-20230516 379
capítulo 11 | Gestión de redes
Objetivos
Probar e inspeccionar la configuración de red actual con las utilidades de la línea de comando.
Para configurar una interfaz de red correctamente, debe saber qué interfaz está conectada a
qué red. A menudo, puede obtener 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.
380 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
La cadena inet muestra una dirección IPv4, la longitud del prefijo de red y el alcance.
La cadena inet6 muestra una dirección IPv6, la longitud del prefijo de red y el alcance. Esta
dirección es de alcance global y se usa con normalidad.
Esta cadena inet6 muestra que la interfaz tiene una dirección IPv6 del alcance de vínculo
que solo puede usarse para la comunicación en el vínculo de Ethernet local.
El comando ping6 es la versión de IPv6 del comando ping en Red Hat Enterprise Linux. La
diferencia entre estos comandos es que el comando ping6 se comunica a través de IPv6 y toma
direcciones IPv6.
RH124-RHEL9.0-es-5-20230516 381
capítulo 11 | Gestión de redes
Cuando hace ping a las direcciones de enlace-local y al grupo multidifusión de todos los nodos de
enlace-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 se omite esta interfaz de red,
se muestra el error de conexión: argumento no válido.
Puede usar el comando ping6 ff02::1 para buscar otros nodos IPv6 en la red local.
Las direcciones de enlace-local de IPv6 pueden ser usadas por otros hosts en el mismo vínculo, al
igual que las direcciones normales.
382 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Todos los paquetes que estén destinados para la red 10.0.0.0/8 se envían directamente al
destino mediante el dispositivo ens4. Todos los paquetes que estén destinados para la red
192.0.2.0/24 se envían directamente al destino mediante el dispositivo ens3. Todos los demás
paquetes se envían al enrutador predeterminado que está ubicado en 192.0.2.254, y también
mediante el dispositivo ens3.
1. La red 2001:db8:0:1::/64 usa la interfaz ens3 (que supuestamente tiene una dirección
en esa red).
2. La red fe80::/64 usa la interfaz ens3 para la dirección de enlace-local. En un sistema con
múltiples interfaces, hay una ruta a la red fe80::/64 en cada interfaz para cada dirección de
enlace-local.
3. La ruta predeterminada a todas las redes en Internet IPv6 (la red ::/0) usa el enrutador en la
red 2001:db8:0:1::ffff y es accesible con el dispositivo ens3.
Cada línea del resultado del comando tracepath representa un enrutador o hop por donde pasa
el paquete entre el origen y el destino final. El comando proporciona información adicional para
RH124-RHEL9.0-es-5-20230516 383
capítulo 11 | Gestión de redes
cada hop según esté 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 regresó de ese enrutador usando diferentes rutas (asimétricas).
Estos enrutadores aquí son para el tráfico saliente, no para el tráfico de retorno.
Los comandos tracepath6 y traceroute -6 son los comandos de IPv6 equivalentes a los
comandos tracepath y traceroute.
El comando ss se usa para mostrar las estadísticas del socket. El comando ss reemplaza
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.
*:ssh : Puerto usado para SSH está atento a todas las direcciones IPv4. El carácter
de asterisco (*) se usa para indicar todos cuando se hace referencia a los puertos o las
direcciones IPv4.
:::ssh : Puerto usado para SSH está atento a todas las direcciones IPv6. La sintaxis de dos
puntos (::) representa todas las interfaces IPv6.
::1:smtp : El puerto usado para SMTP escucha la interfaz de circuito de retorno ::1 IPv6.
384 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Opción Descripción
-A inet Muestra las conexiones activas (pero no los sockets que se escuchan) para
la familia de direcciones inet. Es decir, ignora los sockets de dominio UNIX
local. Para el comando ss, se muestran las conexiones IPv4 e IPv6. Para
el comando netstat, se muestran solo las conexiones IPv4. (El comando
netstat -A inet6 mostrará las conexiones IPv6 y el comando netstat
-46 mostrará IPv4 e IPv6 al mismo tiempo).
Referencias
Páginas del manual: ip-link(8), ip-address(8), ip-route(8), ip(8), ping(8),
tracepath(8), traceroute(8), ss(8) y netstat(8).
RH124-RHEL9.0-es-5-20230516 385
capítulo 11 | Gestión de redes
Ejercicio Guiado
Resultados
• Identificar las interfaces de la red actual y las direcciones de la red.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en servera con el usuario student. Los sistemas
están configurados para usar claves SSH para la autenticación y acceso sin contraseña para
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 varían según la plataforma del curso y el hardware en uso.
386 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
RH124-RHEL9.0-es-5-20230516 387
capítulo 11 | Gestión de redes
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
388 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Objetivos
Gestionar los parámetros de configuración de red con el comando nmcli.
Un solo dispositivo puede tener varias configuraciones de conexión y cambiar entre ellas, pero
solo una conexión puede estar activa por dispositivo. Por ejemplo, un dispositivo inalámbrico de
computadora portátil puede configurar una dirección IP fija para su uso en un sitio de trabajo
seguro en una conexión, pero puede configurar una segunda conexión con una dirección
automatizada y una red privada virtual (VPN) para acceder a la misma red de la empresa desde
casa.
Importante
A partir de Red Hat Enterprise Linux 8, los archivos de configuración de formato
ifcfg y el directorio /etc/sysconfig/network-scripts/ están obsoletos.
NetworkManager ahora usa un formato de archivo de clave de estilo INI, que es una
estructura de par de clave-valor para organizar las propiedades. NetworkManager
almacena perfiles de red en el directorio /etc/NetworkManager/system-
connections/. Para compatibilidad con versiones anteriores, las conexiones de
formato ifcfg en el directorio /etc/sysconfig/network-scripts/ aún se
reconocen y cargan.
RH124-RHEL9.0-es-5-20230516 389
capítulo 11 | Gestión de redes
nota
Puede abreviar nmcli objetos y acciones. Por ejemplo, puede abreviar nmcli
device disconnect como nmcli dev dis y abreviar nmcli connection
modify como nmcli con mod. La abreviatura puede ser tan corta como una sola
letra, siempre y cuando use suficientes caracteres para identificar de manera única
el objeto que se debe gestionar.
El comando nmcli connection show muestra una lista de todas las conexiones. Use la opción
--active para enumerar solo las conexiones activas.
El siguiente ejemplo agrega la conexión eno2 del tipo ethernet para la interfaz de red eno2.
El siguiente ejemplo crea la conexión eno3 del tipo ethernet para la interfaz de red eno3 con
una configuración de red IPv4 estática. Este comando configura la dirección IP 192.168.0.5 con
un prefijo de red de /24 y una puerta de enlace de red de 192.168.0.254. El comando nmcli
connection add falla si el nombre de conexión que intenta agregar existe.
[root@host ~]# nmcli con add con-name eno3 type ethernet ifname eno3 \
ipv4.method manual ipv4.addresses 192.168.0.5/24 ipv4.gateway 192.168.0.254
El siguiente ejemplo crea la conexión eno4 para el dispositivo eno4 con direcciones IPv6 e IPv4
estáticas. Este comando configura la dirección IPv6 2001:db8:0:1::c000:207 con el prefijo
de red /64 y la dirección 2001:db8:0:1::1 como puerta de enlace predeterminada. Este
390 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
comando también configura la dirección IPv4 192.0.2.7 con el prefijo de red /24 y la dirección
192.0.2.1 como puerta de enlace predeterminada.
[root@host ~]# nmcli con add con-name eno4 type ethernet ifname eno4 \
ipv6.addresses 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 \
ipv6.method manual ipv4.addresses 192.0.2.7/24 ipv4.gateway 192.0.2.1 \
ipv4.method manual
Importante
Use nmcli device disconnect para detener el tráfico en una interfaz de red y
desactivar la conexión.
Para enumerar la configuración actual de una conexión, use el comando nmcli connection
show. 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.
RH124-RHEL9.0-es-5-20230516 391
capítulo 11 | Gestión de redes
392 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Use el siguiente comando para actualizar la conexión static-ens3 para establecer la dirección
IPv4 192.0.2.2/24 y la puerta de enlace predeterminada 192.0.2.254. Use el parámetro
nmcli comando connection.autoconnect para habilitar o deshabilitar automáticamente la
conexión en el arranque del sistema.
Use el siguiente comando para actualizar la conexión static-ens3 para establecer la dirección
IPv6 2001:db8:0:1::a00:1/64 y la puerta de enlace predeterminada 2001:db8:0:1::1.
Importante
Para cambiar la configuración de una conexión DHCP para que sea estática,
actualice la configuración de ipv4.method de auto o dhcp a manual. Para
una conexión IPv6, actualice la configuración ipv6.method. Si el método no se
configura correctamente, la conexión puede bloquearse o estar incompleta cuando
se activa, o puede obtener una dirección de DHCP o SLAAC además de la dirección
estática configurada.
Algunas configuraciones pueden tener varios valores. Es posible agregar un valor específico a la
lista o eliminarlo de la configuración de la conexión al agregar un símbolo más (+) o un símbolo
menos (-) al comienzo del nombre de la configuración. Si no se incluye un signo más o menos,
el valor especificado reemplaza la lista actual de la configuración. El siguiente ejemplo agrega el
servidor DNS 2.2.2.2 a la conexión static-ens3.
RH124-RHEL9.0-es-5-20230516 393
capítulo 11 | Gestión de redes
Los usuarios sin privilegios que han iniciado sesión en la consola física o virtual también pueden
realizar la mayoría de los cambios de configuración de red. Si hay una persona en la consola
del sistema, es probable que el sistema se esté usando como una estación de trabajo o una
computadora portátil donde el usuario necesita configurar, activar y desactivar las conexiones. Los
usuarios sin privilegios que inician sesión con ssh deben cambiar al usuario root para cambiar la
configuración de red.
Use el comando nmcli general permissions para ver sus permisos actuales. El siguiente
ejemplo enumera los permisos de NetworkManager del usuario root.
394 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
org.freedesktop.NetworkManager.settings.modify.global-dns auth
org.freedesktop.NetworkManager.settings.modify.hostname auth
org.freedesktop.NetworkManager.settings.modify.own auth
org.freedesktop.NetworkManager.settings.modify.system auth
org.freedesktop.NetworkManager.sleep-wake no
org.freedesktop.NetworkManager.wifi.scan auth
org.freedesktop.NetworkManager.wifi.share.open no
org.freedesktop.NetworkManager.wifi.share.protected no
Comando Propósito
nmcli con add con-name name Agrega y asigna un nombre a un nuevo perfil
de conexión.
Referencias
Para obtener más información, consulte el capítulo Getting Started with nmcli en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/
html-single/configuring_and_managing_networking/index#getting-started-with-
nmcli_configuring-and-managing-networking
.
RH124-RHEL9.0-es-5-20230516 395
capítulo 11 | Gestión de redes
Ejercicio Guiado
Resultados
• Actualizar una configuración de conexión de red de DHCP a estática.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina servera con el usuario student.
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.
396 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
3.1. Use el comando nmcli con show --active para mostrar solo las conexiones
activas.
Su nombre de interfaz de red debe aparecer debajo de la columna DEVICE de los
resultados, y el nombre de la conexión activa para ese dispositivo aparece en la
misma línea debajo de la columna NAME. Este ejercicio asume que la conexión activa
es Wired connection 1. Si el nombre de la conexión activa es diferente, use ese
nombre en lugar de Wired connection 1 para el resto de este ejercicio.
RH124-RHEL9.0-es-5-20230516 397
capítulo 11 | Gestión de redes
GENERAL.UUID: ec3a15fb-2e26-3254-9433-90c66981e924
GENERAL.DEVICES: eth0
GENERAL.IP-IFACE: eth0
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
...output omitted...
4. Cree una conexión estática con la misma dirección IPv4, prefijo de red y puerta de enlace
predeterminada que la conexión activa. Asigne el nombre static-addr a la conexión
nueva.
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 no puede encontrar su máquina, use el botón
Reset que está arriba de lo que antes era la pantalla gráfica del equipo e inténtelo
de nuevo.
398 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
6. Actualice la conexión anterior para que no se inicie en el arranque. Verifique que se use la
conexión static-addr cuando se reinicie el sistema.
RH124-RHEL9.0-es-5-20230516 399
capítulo 11 | Gestión de redes
6.3. Inicie sesión en la máquina servera y verifique que la conexión static-addr sea la
conexión activa.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
400 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Objetivos
Modificar la configuración de la red mediante la edición de los archivos de configuración.
Si bien la forma recomendada de gestionar perfiles es con el comando nmcli, los usuarios aún
pueden crear o modificar manualmente los archivos de configuración. Después de editar el archivo
de configuración, ejecute el comando nmcli con reload para informar a NetworkManager
acerca de estos cambios.
RH124-RHEL9.0-es-5-20230516 401
capítulo 11 | Gestión de redes
402 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
id=Main eth0
Según el propósito del perfil de conexión, NetworkManager usa los siguientes directorios para
almacenar los archivos de configuración:
[connection]
id=Main eth0
uuid=27afa607-ee36-43f0-b8c3-9d245cdc4bb3
type=802-3-ethernet
RH124-RHEL9.0-es-5-20230516 403
capítulo 11 | Gestión de redes
autoconnect=true
[ipv4]
method=manual
[802-3-ethernet]
mac-address=00:23:5a:47:1f:71
address1=172.25.0.10/24 interface-name=ens3
dns=172.25.254.254 autoconnect=true
uuid=f3e8(…)ad3e
type=ethernet
Después de modificar los archivos de configuración, ejecute el comando nmcli con reload
para que NetworkManager cargue los cambios de configuración. Si la variable autoconnect se
establece en false en el perfil de conexión, active la conexión manualmente.
Referencias
Páginas del manual: nmcli(1), nm-settings(5) y nm-settings-keyfile(5)
404 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Ejercicio Guiado
Resultados
• Configurar direcciones de red adicionales en cada sistema.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, use el comando ssh para iniciar sesión en la máquina
servera con el usuario student.
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.
RH124-RHEL9.0-es-5-20230516 405
capítulo 11 | Gestión de redes
4.1. Vuelva a cargar los cambios en la configuración para que NetworkManager los lea.
406 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
7.1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario
root.
7.3. Vuelva a cargar los cambios en la configuración para que NetworkManager los lea.
RH124-RHEL9.0-es-5-20230516 407
capítulo 11 | Gestión de redes
8. Pruebe la conectividad entre las máquinas servera y serverb con las direcciones de red
nuevas.
8.1. Desde la máquina serverb, haga ping a la nueva dirección de la máquina servera.
8.3. Desde la máquina servera, con el usuario student, haga ping a la nueva dirección
de la máquina serverb.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
408 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Objetivos
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 el archivo /etc/hostname. Red Hat Enterprise Linux 6 y versiones anteriores
almacenan el nombre de host como variable en el archivo /etc/sysconfig/
network.
RH124-RHEL9.0-es-5-20230516 409
capítulo 11 | Gestión de redes
El comando getent hosts hostname puede usarse para probar la resolución de nombre del
host con el archivo /etc/hosts. Si no se encuentra una entrada en el archivo /etc/hosts, el
sistema de resolución de nombres usa un servidor de nombres DNS para buscar el nombre de
host. El archivo /etc/resolv.conf controla la forma en que se realiza esta consulta:
• search : Lista de nombres de dominio para probar con un nombre de host corto. Se debe
establecer search o domain en el mismo archivo; si ambos están configurados, solo se aplica la
última entrada. Consulte resolv.conf(5) para obtener más detalles.
• nameserver : La dirección IP de un servidor de nombres que se consultará. Se pueden
proporcionar hasta tres directivas de servidor de nombres para proporcionar copias de
seguridad en caso de que un servidor de nombre no funcione.
410 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
nota
Las configuraciones DNS IPv4 e IPv6 estáticas terminan todas como directivas
nameserver en /etc/resolv.conf. En un sistema de pila doble, mantenga al
menos un servidor de nombres accesible por IPv4 y uno IPv6 en la lista (suponiendo
un sistema de pila doble), en caso de problemas de red con cualquiera de las pilas.
Importante
DHCP reescribe automáticamente el archivo /etc/resolv.conf cuando se
inician las interfaces, a menos que usted especifique ignore-auto-dns = yes
en el archivo de configuración de interfaz correspondiente en el directorio /etc/
NetworkManager/system-connections/.
Use el comando de dig HOSTNAME para probar la conectividad del servidor DNS.
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 947ea2a936353423c3bc0d5f627cc1ae7147460e10d2777c (good)
;; QUESTION SECTION:
;classroom.example.com. IN A
;; ANSWER SECTION:
classroom.example.com. 85326 IN A 172.25.254.254
...output omitted...
RH124-RHEL9.0-es-5-20230516 411
capítulo 11 | Gestión de redes
Los comandos host y dig no ven la configuración en el archivo /etc/hosts. Para probar el
archivo /etc/hosts, use el comando getent hosts HOSTNAME.
Referencias
Páginas del manual: nmcli(1), hostnamectl(1), hosts(5), getent(1), host(1),
dig(1), getent(1) y resolv.conf(5)
412 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Ejercicio Guiado
Resultados
• Establecer un nombre de host personalizado.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando garantiza que estén disponibles todos los recursos requeridos.
Instrucciones
1. Inicie sesión en servera con el usuario student y cambie al usuario root.
2.2. Muestre el estado del nombre del host. El nombre de host persistente configurado
localmente se muestra en el campo Static hostname. El nombre de host de
tiempo de ejecución actual, que se obtiene de los servicios de red DHCP o DNS, se
muestra en el campo Transient hostname.
RH124-RHEL9.0-es-5-20230516 413
capítulo 11 | Gestión de redes
Chassis: vm #
Machine ID: ace63d6701c2489ab9c0960c0f1afe1d
Boot ID: 03bf1d5518bd43b4a25cfe9a18d5a46a
Virtualization: kvm
Operating System: Red Hat Enterprise Linux 9.0 (Plow)
CPE OS Name: cpe:/o:redhat:enterprise_linux:9::baseos
Kernel: Linux 5.14.0-70.13.1.el9_0.x86_64
Architecture: x86-64
Hardware Vendor: Red Hat
Hardware Model: OpenStack Compute
3. Configure un nombre de host estático para que coincida con el nombre del host estático
actual.
3.2. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
3.3. Cierre la sesión y vuelva a iniciarla en servera con el usuario student. Cambie al
usuario root para cambiar el símbolo del sistema a fin de mostrar el nombre de host
actualizado.
3.4. Muestre el estado del nombre del host. El nombre de host temporal no se muestra
ahora que se configuró un nombre de host estático.
414 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
4.3. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
4.5. Inicie sesión en servera con el usuario student y cambie al usuario root.
5. Agregue class como apodo local para el servidor del aula y asegúrese de poder hacer
ping al servidor con ese apodo.
RH124-RHEL9.0-es-5-20230516 415
capítulo 11 | Gestión de redes
5.2. Actualice el archivo /etc/hosts para agregar el servidor class para acceder a la
dirección IP 172.25.254.254. En el siguiente ejemplo, se muestra el contenido
esperado del archivo /etc/hosts.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
416 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Trabajo de laboratorio
Gestión de redes
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
• Configurar dos direcciones IPv4 estáticas para la interfaz de red principal.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina serverb con el usuario student. Cambie al usuario root.
2. Cree una conexión con una configuración de red estática con los parámetros de
configuración que figuran en la tabla.
Parámetro Configuración
dirección IP 172.25.250.11/24
RH124-RHEL9.0-es-5-20230516 417
capítulo 11 | Gestión de redes
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
418 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
Solución
Gestión de redes
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
• Configurar dos direcciones IPv4 estáticas para la interfaz de red principal.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina serverb con el usuario student. Cambie al usuario root.
1.1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
2. Cree una conexión con una configuración de red estática con los parámetros de
configuración que figuran en la tabla.
Parámetro Configuración
dirección IP 172.25.250.11/24
RH124-RHEL9.0-es-5-20230516 419
capítulo 11 | Gestión de redes
Importante
El nombre de la conexión puede variar según la plataforma del curso y el hardware
en uso. La solución asume que el nombre de la interfaz es eth0 y el nombre de la
conexión es System eth0. Busque el nombre de la conexión actual (como System
eth0 o Wired connection 1) que está asociado con la interfaz en la tabla. Use
el nombre de conexión ubicado para reemplazar System eth0 a lo largo de este
ejercicio en caso de ser diferente.
2.2. Cree el perfil de conexión lab basado en la información en la tabla descrita en las
instrucciones. Asocie el perfil con la interfaz de red que aparece en el resultado del
comando ip link anterior.
[root@serverb ~]# nmcli con add con-name lab ifname eth0 type ethernet \
ipv4.method manual ipv4.dns 172.25.250.254 \
ipv4.addresses 172.25.250.11/24 ipv4.gateway 172.25.250.254
Connection 'lab' (d5b4815d-231b-43c0-8565-445e3a07b97a) successfully added.
5. Configure el archivo hosts para que pueda hacer referencia a la dirección IP 10.0.1.1 con
el nombre private.
420 RH124-RHEL9.0-es-5-20230516
capítulo 11 | Gestión de redes
6. Reinicie el sistema.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 421
capítulo 11 | Gestión de redes
Resumen
• El modelo de red TCP/IP es un conjunto de abstracciones simplificado, de cuatro capas, que
describe cómo los diferentes protocolos interactúan para que los equipos envíen el tráfico de
una máquina a otra a través de Internet.
• De forma predeterminada, Red Hat Enterprise Linux opera en un modo de pila doble, con
ambos protocolos en paralelo.
• Las rutas de red determinan la interfaz de red correcta para enviar paquetes a una red en
particular.
• La herramienta de la línea de comandos nmcli configura los parámetros de red con el daemon
NetworkManager.
• A partir de Red Hat Enterprise Linux 9, la ubicación predeterminada para las configuraciones de
red es el directorio /etc/NetworkManager/system-connections.
• El comando hostnamectl modifica o ve el estado del nombre de host del sistema y los
parámetros relacionados.
422 RH124-RHEL9.0-es-5-20230516
capítulo 12
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
DNF.
RH124-RHEL9.0-es-5-20230516 423
capítulo 12 | Instalación y actualización de paquetes de software
Objetivos
Registrar un sistema para su cuenta de Red Hat y asignarle derechos para actualizaciones de
software y servicios de soporte mediante Red Hat Suscription Management.
Puede realizar las siguientes tareas principales con las herramientas de Red Hat Subscription
Management:
• Registrar un sistema para asociarlo con la cuenta de Red Hat con una suscripción activa. Con el
administrador de suscripciones, el sistema puede registrarse de forma única en el inventario de
servicios de suscripción. Puede anular el registro del sistema cuando no esté en uso.
• Suscribir un sistema para autorizar las actualizaciones de productos de Red Hat seleccionados.
Las suscripciones tienen niveles específicos de asistencia, fechas de vencimiento y repositorios
predeterminados. Las herramientas se usan para adjuntar en forma automática o seleccionar un
derecho específico.
• Revisar y rastrear derechos disponibles o que se consumen. En el portal de clientes de Red Hat,
puede ver la información de suscripción localmente en un sistema específico o para una cuenta
de Red Hat.
Acceso a Contenido Simple es una función opcional de Red Hat Satellite Server y Red Hat
Subscription Management. Este curso incluye los comandos de suscripción, según sea necesario,
si aún no ha habilitado SCA.
424 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
la consola web de RHEL, o puede registrar su sistema mediante una herramienta de línea de
comandos.
Para registrar un sistema mediante una aplicación GNOME, inicie la aplicación Red Hat
Subscription Manager desde el menú Activities. Escriba suscripción en el campo Type to
search y haga clic en la aplicación Red Hat Subscription Manager. Cuando se le solicite, ingrese la
contraseña correspondiente para autenticarse. En la ventana Subscriptions, haga clic en Register
para abrir el cuadro de diálogo Register System.
Por defecto, los sistemas se registran en 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 y haga clic en Register
para registrarse en el sistema. Cuando está registrado, el sistema adjunta automáticamente una
suscripción disponible.
RH124-RHEL9.0-es-5-20230516 425
capítulo 12 | Instalación y actualización de paquetes de software
Registrar un sistema con las credenciales del Portal de clientes de Red Hat con el usuario root:
426 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Claves de activación
Una clave de activación es un archivo de gestión de suscripciones preconfigurado que está
disponible para su uso con Red Hat Satellite Server y la gestión de suscripciones a través
del portal de clientes de Red Hat. Use el comando subscription-manager con claves de
activación para simplificar el registro y la asignación de suscripciones predefinidas. Este método
de registro es beneficioso para automatizar las instalaciones e implementaciones. Para las
organizaciones que habilitan el Acceso Simple a Contenidos, las claves de activación pueden
registrar sistemas y habilitar repositorios sin necesidad de adjuntar suscripciones.
Certificados de derechos
Los certificados digitales almacenan información actual sobre los derechos en el sistema local. El
sistema registrado almacena los certificados de derechos en el directorio /etc/pki.
Referencias
Páginas del manual: subscription-manager(8) y rct(8)
Para obtener más información, consulte Registering the System and Managing
Subscriptions en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-
single/configuring_basic_system_settings/assembly_registering-the-system-and-
managing-subscriptions_configuring-basic-system-settings
RH124-RHEL9.0-es-5-20230516 427
capítulo 12 | Instalación y actualización de paquetes de software
Cuestionario
1. ¿Qué ítem ayuda a registrar el sistema en Red Hat Subscription Management sin un
nombre de usuario y una contraseña?
a. ID de la organización
b. URL del proxy
c. Claves de activación
d. dnf
3. ¿Qué directorio almacena los certificados para los productos de Red Hat cuando se
usan certificados de derechos?
a. /etc/pki/entitlement
b. /etc/subscription/product
c. /etc/pki/product
d. /etc/certs/pki
e. Ninguna de las opciones anteriores.
428 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Solución
1. ¿Qué ítem ayuda a registrar el sistema en Red Hat Subscription Management sin un
nombre de usuario y una contraseña?
a. ID de la organización
b. URL del proxy
c. Claves de activación
d. dnf
3. ¿Qué directorio almacena los certificados para los productos de Red Hat cuando se
usan certificados de derechos?
a. /etc/pki/entitlement
b. /etc/subscription/product
c. /etc/pki/product
d. /etc/certs/pki
e. Ninguna de las opciones anteriores.
RH124-RHEL9.0-es-5-20230516 429
capítulo 12 | Instalación y actualización de paquetes de software
Objetivos
Explicar cómo se proporciona el software como paquetes de RPM e investigar los paquetes
instalados en el sistema con DNF y RPM.
Los nombres de los archivos del paquete RPM constan de cuatro elementos (más el sufijo .rpm)
name-version-release.architecture:
• RELEASE es el número de lanzamiento del paquete que se basa en la versión y que es definido
por el empaquetador, que es posible que no sea el desarrollador del software original (31.el9).
Solo necesita el nombre del paquete para instalar los paquetes RPM desde los repositorios.
• Si existen varias versiones, RPM Package Manager instala el paquete con el número de versión
más alto.
• Si existen varias versiones de una sola versión, RPM Package Manager instala el paquete con el
número de versión más alto.
430 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
• Scripts que pueden ejecutarse al instalar, actualizar o eliminar el paquete. Scripts que pueden
ejecutarse al instalar, actualizar o eliminar otros paquetes.
Por lo general, los proveedores de software firman digitalmente paquetes RPM con claves GPG
(GNU Privacy Guard). (Red Hat firma digitalmente todos los paquetes que lanza). El sistema
RPM verifica la integridad del paquete al confirmar que el paquete está firmado con la clave GPG
apropiada. El sistema RPM rechaza la instalación de un paquete si la firma GPG no coincide.
Por lo general, solo se instala una versión de un paquete a la vez. Si un paquete se crea con
nombres de archivo que no entran en conflicto, puede instalar varias versiones. El paquete
kernel es un ejemplo de instalación de varias versiones de paquetes. Debido a que prueba un
nuevo kernel solo arrancando en ese kernel, el paquete está diseñado para permitir la instalación
de varias versiones. Si el nuevo kernel no arranca, puede volver al kernel anterior.
RH124-RHEL9.0-es-5-20230516 431
capítulo 12 | Instalación y actualización de paquetes de software
• rpm -q --scripts : enumera los scripts de la shell que pueden ejecutarse antes o después
de que se instaló o eliminó el paquete.
432 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Advertencia
Tenga cuidado al instalar paquetes de terceros, no solo por el software que pueden
instalar, sino también porque el paquete RPM puede incluir scripts arbitrarios que se
ejecutan con el usuario root durante el proceso de instalación.
El comando rpm2cpio convierte un paquete RPM en un archivo cpio. Una vez que el paquete
RPM se convierte en un archivo cpio, el comando cpio puede extraer una lista de archivos.
Use el comando cpio con la opción -i para extraer archivos de la entrada estándar. Use la opción
-d para crear subdirectorios según sea necesario a partir del directorio de trabajo actual. Use la
opción -v para obtener resultados detallados.
RH124-RHEL9.0-es-5-20230516 433
capítulo 12 | Instalación y actualización de paquetes de software
./etc/httpd/conf.modules.d/00-base.conf
./etc/httpd/conf.modules.d/00-dav.conf
./etc/httpd/conf.modules.d/00-mpm.conf
./etc/httpd/conf.modules.d/00-optional.conf
./etc/httpd/conf.modules.d/00-proxy.conf
./etc/httpd/conf.modules.d/00-systemd.conf
./etc/httpd/conf.modules.d/01-cgi.conf
./etc/httpd/conf.modules.d/README
./etc/httpd/conf/httpd.conf
...output omitted...
9774 blocks
[user@host tmp-extract]$ ls -l
total 1552
drwxr-xr-x. 5 user user 55 Feb 3 15:06 etc
-rw-r--r--. 1 user user 1588633 Feb 3 15:06 httpd-2.4.51-7.el9_0.x86_64.rpm
drwxr-xr-x. 3 user user 19 Feb 3 15:06 run
drwxr-xr-x. 7 user user 70 Feb 3 15:06 usr
drwxr-xr-x. 5 user user 41 Feb 3 15:06 var
Use los comandos rpm2cpio y cpio -t para enumerar los archivos en el paquete RPM. Use la
opción -v del comando cpio para obtener resultados detallados.
434 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Referencias
Páginas del manual rpm(8), rpm2cpio(8), cpio(1) y rpmkeys(8)
RH124-RHEL9.0-es-5-20230516 435
capítulo 12 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
• Instalar en un servidor un paquete que no sea de los repositorios de software.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en la máquina servera con el usuario student.
436 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
nota
El paquete anterior modifica el MOTD o "Mensaje del día". Un sistema muestra el
MOTD a los usuarios cuando inician sesión en los sistemas.
2.3. También vea el script que se ejecuta cuando se instala o desinstala el paquete
rhcsa-script-1.0.0-1.noarch.rpm.
3.1. Use los comandos rpm2cpio y cpio -tv para enumerar los archivos en el paquete
rhcsa-script-1.0.0-1.noarch.rpm.
3.3. Enumere los archivos en el directorio /home/student/opt para verificar que los
archivos extraídos sean los mismos que los archivos dentro del paquete.
RH124-RHEL9.0-es-5-20230516 437
capítulo 12 | Instalación y actualización de paquetes de software
opt/rhcsa-script:
total 4
-rw-r--r--. 1 student student 593 Mar 23 09:22 mymotd
4.1. Use el comando sudo rpm -ivh para instalar el paquete RPM rhcsa-
script-1.0.0-1.noarch.rpm.
4.2. Use el comando rpm para verificar que el paquete esté instalado correctamente.
5. Salga de la máquina servera y conéctese nuevamente para probar el nuevo mensaje del
día.
438 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 439
capítulo 12 | Instalación y actualización de paquetes de software
Objetivos
Buscar, instalar y actualizar paquetes de software con el comando dnf.
[user@host ~]$ ls -l /bin/ | grep yum | awk '{print $9 " " $10 " " $11}'
yum -> dnf-3
yum-builddep -> /usr/libexec/dnf-utils
yum-config-manager -> /usr/libexec/dnf-utils
yum-debug-dump -> /usr/libexec/dnf-utils
yum-debug-restore -> /usr/libexec/dnf-utils
yumdownloader -> /usr/libexec/dnf-utils
yum-groups-manager -> /usr/libexec/dnf-utils
En este curso, trabajará con el comando dnf. Es posible que parte de la documentación haga
referencia al comando yum, pero los archivos son el mismo comando vinculado.
El comando de bajo nivel rpm se puede usar para instalar paquetes, pero no está diseñado
para trabajar con repositorios de paquetes o para resolver dependencias de múltiples fuentes
automáticamente.
DNF mejora la instalación y las actualizaciones de software basadas en RPM. Con el comando
dnf, puede 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.
440 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
El comando dnf search KEYWORD enumera paquetes por palabras claves 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:
El comando dnf info PACKAGENAME arroja información detallada sobre un paquete, que incluye
el espacio en disco necesario para la instalación. Por ejemplo, el siguiente comando recupera
información acerca del paquete httpd:
El comando dnf provides PATHNAME muestra paquetes que coinciden con el nombre de ruta
especificado (que a menudo, incluye caracteres comodines). Por ejemplo, el siguiente comando
busca paquetes que proporcionan el directorio /var/www/html:
RH124-RHEL9.0-es-5-20230516 441
capítulo 12 | Instalación y actualización de paquetes de software
Transaction Summary
================================================================================
Install 10 Packages
442 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
El comando dnf update PACKAGENAME obtiene e instala una versión posterior 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 nombre anterior no funcionará después de la actualización. Si no se especifica el
PACKAGENAME, instala todas las actualizaciones relevantes.
Dado que un kernel nuevo puede evaluarse solo mediante el inicio en ese kernel, el paquete
soporta específicamente la instalación de múltiples versiones simultáneamente. Si el kernel nuevo
no arranca, el kernel anterior sigue estando disponible. La ejecución del comando dnf update
kernel instala el nuevo kernel. Los archivos de configuración contienen una lista de paquetes que
siempre deben instalarse aunque el administrador solicite una actualización.
Use el comando dnf list kernel para detallar todos los kernel instalados y disponibles. Para
ver el kernel en funcionamiento actualmente, use el comando uname. El comando uname con la
opción -r muestra solamente la versión y el lanzamiento del kernel, y el comando uname con la
opción -a muestra el lanzamiento e información adicional del kernel.
Advertencia
El comando dnf remove quita los paquetes enumerados y cualquier paquete que
requiere que se eliminen los paquetes (y los paquetes que requieren esos paquetes,
etc.). Este comando puede dar lugar a una eliminación inesperada de paquetes, por
lo que debe verificar detenidamente la lista de paquetes que se quitarán.
En Red Hat Enterprise Linux 9, el comando dnf puede instalar dos tipos de grupos de paquetes.
Los grupos regulares son colecciones de paquetes. Los grupos de entorno son colecciones de
grupos regulares. Los paquetes o grupos proporcionados por estas colecciones pueden ser
mandatory (deben instalarse si el grupo se instala), default (normalmente se instalan si el
grupo se instala) o optional (no se instalan cuando se instala el grupo a menos que se lo solicite
específicamente).
RH124-RHEL9.0-es-5-20230516 443
capítulo 12 | Instalación y actualización de paquetes de software
Al igual que el comando dnf list, el comando dnf group list muestra los nombres de
grupos instalados y disponibles.
El comando dnf group info muestra información relacionada con un grupo. Incluye una lista de
nombres de paquetes obligatorios, predeterminados u opcionales.
El comando dnf group install instala un grupo que instala sus paquetes obligatorios y
predeterminados, y los paquetes de los que depende.
Transaction Summary
================================================================================
Install 19 Packages
444 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Importante
A partir de Red Hat Enterprise Linux 7, el comportamiento de los grupos Yum
cambió para ser tratados como objetos y monitoreados por el sistema. Si un grupo
instalado se actualiza y el repositorio Yum agregó paquetes nuevos obligatorios o
predeterminados al grupo, dichos paquetes nuevos se instalan en la actualización.
RH124-RHEL9.0-es-5-20230516 445
capítulo 12 | Instalación y actualización de paquetes de software
Tarea: Comando:
El repositorio de BaseOS proporciona el contenido del sistema operativo central para Red Hat
Enterprise Linux como paquetes RPM. Los componentes de BaseOS tienen el mismo ciclo de
vida que el contenido de versiones anteriores de Red Hat Enterprise Linux. El repositorio de
Application Stream proporciona contenido con distintos ciclos de vida como módulos y paquetes
tradicionales.
Application Stream 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. Cada flujo de aplicaciones tiene un ciclo de vida que es el mismo que
Red Hat Enterprise Linux 9 o inferior.
Tanto BaseOS como AppStream son una parte necesaria de un sistema Red Hat Enterprise
Linux 9.
El repositorio de Application Stream, 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
446 RH124-RHEL9.0-es-5-20230516
capítulo 12 | 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. Normalmente, los módulos se organizan en torno a una
versión específica de una aplicación de software o lenguaje de programación. Un módulo típico
contiene paquetes con una aplicación, paquetes con las librerías de dependencia específica de la
aplicación, paquetes con documentación para la aplicación y paquetes con utilidades auxiliares.
Importante
Red Hat Enterprise Linux 9.0 se envía sin módulos. Las versiones futuras de RHEL 9
pueden incluir contenido adicional y versiones de software posteriores como
módulos. Además, a partir de RHEL 9, debe especificar manualmente los flujos de
módulos predeterminados, ya que ya no están definidos de forma predeterminada.
Puede definir flujos de módulos predeterminados con archivos de configuración en
el directorio /etc/dnf/modules.defaults.d/.
Flujos de módulos
Cada módulo tiene 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 puede habilitarse uno de sus flujos, y este flujo proporciona sus paquetes.
Perfiles de módulos
Cada módulo puede tener uno o más perfiles. Un perfil es una lista de paquetes que puede
instalar juntos para un determinado caso de uso, por ejemplo, para un servidor, cliente, desarrollo,
instalación mínima u otro.
Consulte la siguiente lista para ver algunos comandos importantes para gestionar módulos:
• dnf module list : enumera los módulos disponibles con el nombre del módulo, el flujo, los
perfiles y un resumen.
• dnf module list module-name : enumera los flujos de módulos para un módulo específico
y recupera su estado.
• dnf module info module-name : muestra los detalles de un módulo, incluidos los perfiles
disponibles y una lista de los paquetes que instala el módulo. La ejecución del comando dnf
module info sin especificar un flujo de módulo enumera los paquetes que se instalan desde
el perfil y el flujo predeterminados. 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.
• dnf module provides package : muestra qué módulo proporciona un paquete específico.
RH124-RHEL9.0-es-5-20230516 447
capítulo 12 | Instalación y actualización de paquetes de software
Referencias
Páginas del manual: dnf(1) y dnf.conf(5)
Modularidad
https://docs.fedoraproject.org/en-US/modularity/
448 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
• Instalar y eliminar paquetes con dependencias.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando garantiza que estén disponibles todos los recursos requeridos.
Instrucciones
1. Desde workstation, abra una sesión de SSH en la máquina servera con el usuario
student. Use el comando sudo -i para cambiar al usuario root.
2.2. Use el comando dnf search para buscar paquetes con nmap como parte de su
nombre o resumen.
2.3. Use el comando dnf info para obtener más información acerca del paquete nmap.
RH124-RHEL9.0-es-5-20230516 449
capítulo 12 | Instalación y actualización de paquetes de software
Transaction Summary
===============================================================================
Install 1 Package
4. Quite paquetes.
4.1. Use el comando dnf remove para eliminar el paquete nmap, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitan?
Transaction Summary
===============================================================================
Remove 1 Package
450 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Freed space: 24 M
Is this ok [y/N]: n
Operation aborted.
4.2. Use el comando dnf remove para eliminar el paquete tar, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitan?
Transaction Summary
===============================================================================
Remove 12 Packages
Freed space: 48 M
Is this ok [y/N]: n
Operation aborted.
5.1. Use el comando dnf group list para enumerar todos los grupos de componentes
disponibles.
5.2. Use el comando dnf group info para obtener más información acerca del grupo
de componentes Security Tools, incluida una lista de paquetes incluidos.
RH124-RHEL9.0-es-5-20230516 451
capítulo 12 | Instalación y actualización de paquetes de software
tpm2-tools
tss2
udica
5.3. Use el comando dnf group install para instalar el grupo de componentes
Security Tools.
Transaction Summary
===============================================================================
Install 5 Packages
Complete!
6.1. Use el comando dnf history para mostrar el historial de dnf reciente.
6.2. Use el comando dnf 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.
452 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
6.3. Use el comando dnf history undo para eliminar el conjunto de paquetes que
se instalaron cuando se instaló el paquete nmap. En su sistema, busque el ID de
transacción correcto de la salida del comando dnf history y luego, use ese ID en
el siguiente comando.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 453
capítulo 12 | Instalación y actualización de paquetes de software
Objetivos
Habilitar y deshabilitar el uso de repositorios DNF de terceros o de Red Hat por un servidor.
nota
Las suscripciones a Red Hat otorgan acceso a repositorios específicos. En el
pasado, los administradores necesitaban adjuntar suscripciones por sistema. Acceso
a Contenido Simple (SCA) simplifica la forma en que los sistemas acceden a los
repositorios. Con SCA, los sistemas pueden acceder a cualquier repositorio desde
cualquier suscripción que adquiera, sin necesidad de asociar una suscripción. Puede
habilitar SCA en el portal de clientes de Red Hat dentro de My Subscriptions >
Subscription Allocations o en su servidor de Red Hat Satellite.
El comando dnf config-manager puede habilitar o deshabilitar los repositorios. Por ejemplo, el
siguiente comando habilita el repositorio rhel-9-server-debug-rpms:
Las fuentes que no son de Red Hat proporcionan software a través de repositorios de terceros.
Por ejemplo, Adobe proporciona parte de su software para Linux a través de repositorios DNF. En
un aula Red Hat, el servidor content.example.com aloja repositorios DNF. El comando dnf puede
acceder a los repositorios desde un sitio web, un servidor FTP o el sistema de archivos local.
Puede agregar un repositorio de terceros de dos maneras. Puede crear un archivo .repo en el
directorio /etc/yum.repos.d/ o puede agregar una sección [repository] al archivo /etc/
dnf/dnf.conf. Red Hat recomienda usar archivos .repo y reservar el archivo dnf.conf para
configuraciones de repositorio adicionales. El comando dnf busca ambas ubicaciones de manera
predeterminada; sin embargo, los archivos .repo tienen prioridad. Un archivo .repo contiene la
URL del repositorio, un nombre, si se debe usar GPG para verificar las firmas del paquete y, en ese
caso, la URL que apunta a la clave GPG de confianza.
454 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
El comando rpm usa claves GPG para firmar paquetes e importa claves públicas para verificar
la integridad y autenticidad de los paquetes. El comando dnf usa archivos de configuración del
repositorio para proporcionar las ubicaciones de las claves públicas GPG e importa las claves
para verificar los paquetes. Las claves se almacenan en diversas ubicaciones en el sitio del
repositorio remoto, como http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9. Los
administradores deberían descargar la clave en un archivo local en lugar que el comando dnf la
recupere de una fuente externa. Por ejemplo, el siguiente archivo .repo usa el parámetro gpgkey
para hacer referencia a una clave local:
[EPEL]
name=EPEL 9
baseurl=https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-9
Por ejemplo, el siguiente comando importa la clave pública GPG (EPEL) RPM-GPG-KEY-EPEL-9
e instala el RPM del repositorio RHEL9 Extra Packages for Enterprise Linux (EPEL):
RH124-RHEL9.0-es-5-20230516 455
capítulo 12 | Instalación y actualización de paquetes de software
Advertencia
Instale la clave GPG de RPM antes de instalar los paquetes firmados para
asegurarse de que los paquetes provengan de una fuente confiable. Si la clave GPG
de RPM no se importa, el comando dnf no puede instalar los paquetes firmados.
El comando dnf con la opción --nogpgcheck ignora las claves GPG que faltan,
pero puede resultar en la instalación de paquetes comprometidos o falsificados.
Los archivos .repo suelen enumeran varias referencias de repositorio en un solo archivo. Cada
referencia de repositorio comienza con un nombre de una sola palabra entre corchetes.
Referencias
Páginas del manual: dnf(8), dnf.conf(5) y dnf-config-manager(8)
Para obtener más información, consulte el capítulo Managing Software with the DNF
Tool en la documentación del producto Red Hat Enterprise Linux 9 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-
single/managing_software_with_the_dnf_tool
.
456 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
• Configurar un sistema para obtener actualizaciones de software de un servidor de aula y
actualizar el sistema para usar los paquetes más recientes.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Use el comando ssh para iniciar sesión en el sistema servera con el usuario student.
Use el comando sudo -i para cambiar al usuario root.
RH124-RHEL9.0-es-5-20230516 457
capítulo 12 | Instalación y actualización de paquetes de software
[rht-updates]
name=rht updates
baseurl=http://content.example.com/rhel9.0/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
2.4. Use el comando dnf repolist all para enumerar todos los repositorios en el
sistema.
458 RH124-RHEL9.0-es-5-20230516
capítulo 12 | 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!
3.3. Verifique que el paquete rht-system esté instalado y anote el número de versión
del paquete.
4.2. Use el comando dnf update para actualizar todos los paquetes de software en
servera.
4.3. Verifique que el paquete rht-system esté actualizado y anote el número de versión
del paquete.
5. Salga de servera.
RH124-RHEL9.0-es-5-20230516 459
capítulo 12 | Instalación y actualización de paquetes de software
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
460 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Trabajo de laboratorio
Resultados
• Gestionar repositorios de software.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina serverb, configure un repositorio de software para obtener actualizaciones.
Otorgue el nombre errata al repositorio y configure el repositorio en el archivo /etc/
yum.repos.d/errata.repo. Configure el archivo errata.repo para usar el repositorio
http://content.example.com/rhel9.0/x86_64/rhcsa-practice/errata. No
verifique las firmas de GPG.
2. En serverb, instale el paquete rht-system.
3. Por razones de seguridad, la máquina serverb no deberá ser capaz de conectarse a una
impresora de papel. Puede lograrlo al eliminar el paquete cups. Cuando finalice, salga de la
shell root.
4. El script de inicio descarga el paquete rhcsa-script-1.0.0-1.noarch.rpm en el
directorio /home/student en la máquina serverb.
Confirme que el paquete rhcsa-script-1.0.0-1.noarch.rpm esté disponible en
serverb e instálelo con los privilegios de root. Verifique que el paquete esté instalado.
Salga de la máquina serverb.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
RH124-RHEL9.0-es-5-20230516 461
capítulo 12 | Instalación y actualización de paquetes de software
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
462 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Solución
Resultados
• Gestionar repositorios de software.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina serverb, configure un repositorio de software para obtener actualizaciones.
Otorgue el nombre errata al repositorio y configure el repositorio en el archivo /etc/
yum.repos.d/errata.repo. Configure el archivo errata.repo para usar el repositorio
http://content.example.com/rhel9.0/x86_64/rhcsa-practice/errata. No
verifique las firmas de GPG.
1.1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
[errata]
name=Red Hat Updates
baseurl=http://content.example.com/rhel9.0/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
RH124-RHEL9.0-es-5-20230516 463
capítulo 12 | Instalación y actualización de paquetes de software
3. Por razones de seguridad, la máquina serverb no deberá ser capaz de conectarse a una
impresora de papel. Puede lograrlo al eliminar el paquete cups. Cuando finalice, salga de la
shell root.
Freed space: 94 M
Is this ok [y/N]: y
...output omitted...
Complete!
464 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Transaction Summary
==========================================================================
Install 1 Package
RH124-RHEL9.0-es-5-20230516 465
capítulo 12 | Instalación y actualización de paquetes de software
Installed:
rhcsa-script-1.0.0-1.noarch
Complete!
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
466 RH124-RHEL9.0-es-5-20230516
capítulo 12 | Instalación y actualización de paquetes de software
Resumen
• Red Hat Subscription Management 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 puede consultar una base de datos local para proporcionar información sobre
el contenido de los paquetes instalados e instalar archivos de paquetes descargados.
• La utilidad dnf 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 usa Application Streams para proporcionar un solo repositorio que
aloje varias versiones del paquete de una aplicación y sus dependencias.
RH124-RHEL9.0-es-5-20230516 467
468 RH124-RHEL9.0-es-5-20230516
capítulo 13
RH124-RHEL9.0-es-5-20230516 469
capítulo 13 | Acceso a los sistemas de archivos de Linux
Objetivos
Identificar un directorio en la jerarquía del sistema de archivos y el dispositivo donde se almacena.
Un punto de montaje difiere ligeramente de una letra de unidad de Microsoft Windows, donde
cada sistema de archivos es una entidad separada. Los puntos de montaje permiten que varios
dispositivos del sistema de archivos estén disponibles en una única estructura de árbol. Este punto
de montaje es similar a las carpetas montadas en NTFS en Microsoft Windows.
El directorio /dev almacena archivos de dispositivos de bloque, que RHEL crea automáticamente
para todos los dispositivos. En RHEL 9, el primer disco duro SATA, SAS, SCSI o USB detectado se
denomina /dev/sda, el segundo /dev/sdb, y así sucesivamente. Estos nombres representan el
disco duro en su totalidad.
470 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Con las particiones, puede compartimentar un disco; las diferentes particiones pueden
formatearse con diferentes sistemas de archivos o usarse para otros fines. Por ejemplo, una
partición puede contener directorios de inicio de un usuario mientras que otra partición puede
contener registros y datos del sistema. Incluso cuando la partición del directorio de inicio se
cargue con datos, la partición del sistema puede seguir teniendo espacio disponible.
Las particiones son dispositivos de bloque por derecho propio. Por ejemplo, en el primer
almacenamiento adjunto a SATA, la primera partición es el disco /dev/sda1. La segunda
partición del mismo almacenamiento es el disco /dev/sda2. La tercera partición en el tercer
dispositivo de almacenamiento conectado a SATA es el disco /dev/sdc3, y así sucesivamente.
Los dispositivos de almacenamiento paravirtualizados tienen un sistema de nomenclatura similar.
Por ejemplo, en el primer almacenamiento, la primera partición es el disco /dev/vda1. La
segunda partición en el segundo dispositivo de almacenamiento es el disco /dev/vdb2, y así
sucesivamente.
Los nombres del dispositivo SSD adjunto a NVMe nombran sus particiones de manera diferente a
los dispositivos adjuntos a SATA. Para los dispositivos de almacenamiento NVMe, la parte nvmeX
del nombre se refiere al dispositivo, la parte nY se refiere al espacio de nombres y la parte pZ se
refiere a la partición. Por ejemplo, la primera partición para el primer espacio de nombres en el
primer disco es la partición /dev/nvme0n1p1. La tercera partición para el primer nombre de
espacio en el segundo disco es la partición /dev/nvme1n1p3, y así sucesivamente.
Las tarjetas SD o MMC a veces pueden tener un sistema de nombres similar al de los dispositivos
SATA (/dev/sdN). En algunos casos, las tarjetas SD o MMC pueden tener nombres como /dev/
mmcblk0p1, donde la parte mmcblkX del nombre se refiere al dispositivo de almacenamiento y la
parte pY del nombre se refiere al número de partición en ese dispositivo.
Una lista ampliada del archivo de dispositivo /dev/sda1 en la máquina host revela el tipo de
archivo b, que significa un dispositivo de bloque:
Volúmenes lógicos
Otra manera de organizar discos y particiones es mediante la gestión de volúmenes lógicos (LVM).
Con LVM, es posible agregar dispositivos de bloque en un grupo de volúmenes. El espacio en
disco en el grupo de volúmenes se divide en volúmenes lógicos, que son el equivalente funcional
de una partición que reside en un disco físico.
RH124-RHEL9.0-es-5-20230516 471
capítulo 13 | Acceso a los sistemas de archivos de Linux
El sistema LVM asigna nombres a los grupos de volúmenes y volúmenes lógicos en el momento
de la creación. LVM crea un directorio en el directorio /dev, que coincide con el nombre del grupo
y, luego, crea un enlace simbólico dentro de ese nuevo directorio con el mismo nombre que el
volumen lógico. Ese archivo de volumen lógico está disponible para ser montado. Por ejemplo,
cuando hay un grupo de volúmenes myvg y el volumen lógico mylv están presentes, la ruta
completa al volumen lógico es el archivo /dev/myvg/mylv.
nota
El nombre del dispositivo de volumen lógico mencionado anteriormente se
implementa como un enlace simbólico al archivo de dispositivo usado para acceder
a este, que puede variar entre los arranques. Hay otra forma de nombre de
dispositivo de volumen lógico vinculado desde archivos en el directorio /dev/
mapper, que se usan a menudo como enlaces simbólicos al archivo del dispositivo.
[user@host ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 912584 0 912584 0% /dev
tmpfs 936516 0 936516 0% /dev/shm
tmpfs 936516 16812 919704 2% /run
tmpfs 936516 0 936516 0% /sys/fs/cgroup
/dev/vda3 8377344 1411332 6966012 17% /
/dev/vda1 1038336 169896 868440 17% /boot
tmpfs 187300 0 187300 0% /run/user/1000
La partición muestra que hay dos sistemas de archivos físicos montados en los directorios / y /
boot que comúnmente existen en las máquinas virtuales. Los dispositivos tmpfs y devtmpfs son
sistemas de archivos en la memoria del sistema. Todos los archivos que se escriben en el sistema
de archivos tmpfs o devtmpfs desaparecen después de reiniciar el sistema.
El comando df tiene las opciones -h o -H legibles para mejorar la legibilidad de los tamaños de
los resultados. La opción -h informa en KiB (210 ), MiB (220 ) o GiB (230 ), mientras que la opción
-H informa en unidades SI: KB (103 ), MB (106 ) o GB (109 ). Los fabricantes de discos duros
normalmente usan las unidades SI cuando anuncian sus productos.
Vea los sistemas de archivos en la máquina host con todas las unidades convertidas a formato
legible:
[user@host ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 892M 0 892M 0% /dev
tmpfs 915M 0 915M 0% /dev/shm
tmpfs 915M 17M 899M 2% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
472 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Use el comando du para obtener información más detallada sobre el espacio usado por un árbol
de directorios en particular. El comando du con las opciones -h y -H convierte la salida a formato
legible. El comando du muestra el tamaño de todos los archivos en el árbol de directorios actual
de modo recursivo.
Vea el informe de uso del disco para el directorio /usr/share en la máquina host:
Vea el informe sobre el uso del disco en formato legible, para el directorio /usr/share:
Referencias
Páginas del manual: df(1), du(1)
RH124-RHEL9.0-es-5-20230516 473
capítulo 13 | Acceso a los sistemas de archivos de Linux
Cuestionario
2. ¿Qué comando muestra los sistemas de archivos con los puntos de montaje?
a. du -H
b. df
c. du
d. ls
3. ¿Qué comando muestra el informe sobre el uso del disco en formato legible, para el
directorio /home?
a. ls /home
b. df
c. du -h /home
d. du /home
5. ¿Qué comando brinda una descripción general sobre los puntos de montaje de
sistemas de archivos y el espacio libre disponible en las unidades SI?
a. df
b. df -h
c. df -H
d. du -h
474 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Solución
2. ¿Qué comando muestra los sistemas de archivos con los puntos de montaje?
a. du -H
b. df
c. du
d. ls
3. ¿Qué comando muestra el informe sobre el uso del disco en formato legible, para el
directorio /home?
a. ls /home
b. df
c. du -h /home
d. du /home
5. ¿Qué comando brinda una descripción general sobre los puntos de montaje de
sistemas de archivos y el espacio libre disponible en las unidades SI?
a. df
b. df -h
c. df -H
d. du -h
RH124-RHEL9.0-es-5-20230516 475
capítulo 13 | Acceso a los sistemas de archivos de Linux
Objetivos
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.
Puede montar el sistema de archivos de una de las siguientes maneras con el comando mount:
nota
Si monta un sistema de archivos con el comando mount y luego reinicia su sistema,
el sistema de archivos no se vuelve a montar automáticamente. El curso Red Hat
System Administration II (RH134) explica cómo montar sistemas de archivos de
forma persistente con el archivo /etc/fstab.
476 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
El directorio de punto de montaje debe existir antes de montar el sistema de archivos. El directorio
/mnt existe de forma predeterminada para usarse como punto de montaje temporal.
Importante
Si un directorio que se usa como punto de montaje no está vacío, los archivos
existentes están ocultos y no se podrá acceder a ellos cuando se monte allí un
sistema de archivos. Se puede acceder a los archivos originales nuevamente
después de desmontar el sistema de archivos montado.
El comando lsblk -fp detalla la ruta completa del dispositivo, los UUID y los puntos de
montajes, así como el tipo de sistema de archivos en la partición. El punto de montaje está en
blanco cuando el sistema de archivos no está montado.
RH124-RHEL9.0-es-5-20230516 477
capítulo 13 | Acceso a los sistemas de archivos de Linux
Para desconectar de forma segura un dispositivo extraíble, primero desmonte manualmente todos
los sistemas de archivos en el dispositivo.
Advertencia
Los datos del sistema de archivos usan la memoria caché durante el funcionamiento
normal. Debe desmontar los sistemas de archivos de una unidad extraíble antes de
desconectar la unidad. El procedimiento de desmontaje vacía los datos en el disco
antes de liberar la unidad.
Para desmontar un sistema de archivos, el comando umount usa el punto de montaje como
argumento.
No se puede desmontar cuando 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 comando umount falla porque la shell usa el directorio /mnt/data
como su directorio de trabajo actual y, por lo tanto, genera un mensaje de error.
El comando lsof enumera todos los archivos abiertos y los procesos que acceden al sistema
de archivos. La lista contribuye a identificar los procesos que actualmente impiden un correcto
desmontaje del sistema de archivos.
478 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Identifique y espere a que los procesos se completen o envíe la señal SIGTERM o SIGKILL para
finalizarlos. En este caso, basta con cambiar a un directorio en funcionamiento actual que esté
fuera del punto de montaje.
[root@host data]# cd
[root@host ~]# umount /mnt/data
Referencias
Páginas del manual: lsblk(8), mount(8), umount(8) y lsof(8)
RH124-RHEL9.0-es-5-20230516 479
capítulo 13 | Acceso a los sistemas de archivos de Linux
Ejercicio Guiado
Resultados
• Identificar y montar un nuevo sistema de archivos en un punto de montaje especificado;
luego, desmontarlo.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina servera con el usuario student y cambie al usuario root.
2.3. Monte el sistema de archivos mediante el uso del UUID en el directorio /mnt/part1.
Use el UUID /dev/vdb1 de la salida de comando anterior.
480 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
[root@servera part1]# cd
[root@servera ~]#
RH124-RHEL9.0-es-5-20230516 481
capítulo 13 | Acceso a los sistemas de archivos de Linux
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
482 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Objetivos
Buscar archivos en sistemas de archivos montados con los comandos find y locate.
Búsqueda de archivos
Un administrador de sistemas necesita herramientas para buscar archivos que coincidan con
criterios específicos en el sistema de archivos. En esta sección, se analizan dos comandos que
pueden buscar archivos en la jerarquía de sistemas de archivos:
• El comando locate busca un índice generado previamente para nombres de archivo o rutas de
archivos y arroja los resultados instantáneamente.
• El comando find busca archivos en tiempo real mediante un análisis de la jerarquía de sistemas
de archivos.
La base de datos locate se actualiza automáticamente todos los días. Sin embargo, el usuario
root puede emitir el comando updatedb para forzar una actualización inmediata.
El comando locate restringe los resultados para los usuarios sin privilegios. Para ver el nombre
del archivo resultante, el usuario debe tener permiso de búsqueda en el directorio en el que reside
el archivo. Por ejemplo, ubique los archivos que el usuario developer puede leer y que coinciden
con la palabra clave passwd en el nombre o la ruta:
El siguiente ejemplo muestra el nombre de archivo o la ruta para una coincidencia parcial con la
consulta de búsqueda:
RH124-RHEL9.0-es-5-20230516 483
capítulo 13 | Acceso a los sistemas de archivos de Linux
El comando locate con la opción -i realiza una búsqueda que distingue entre mayúsculas
y minúsculas. Esta opción devuelve todas las combinaciones posibles de letras mayúsculas y
minúsculas coincidentes:
El comando find examina los archivos en el sistema de archivos con la cuenta de usuario que
ejecutó la búsqueda. El usuario que ejecuta el comando find debe tener permiso de lectura y
ejecución en un directorio para examinar su contenido.
Para buscar archivos por nombre de archivo, use el comando find con la opción -name
FILENAME para devolver la ruta de los archivos que coinciden exactamente con FILENAME.
Por ejemplo, para buscar los archivos sshd_config en el directorio root /, ejecute el siguiente
comando:
484 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
nota
En el comando find, las opciones de palabras completas usan un solo guion para
las opciones, a diferencia de un guion doble para la mayoría de los otros comandos
de Linux.
Los comodines están disponibles para buscar el nombre de un archivo y arrojan todos los
resultados que son coincidencias parciales. Con los comodines, es esencial poner entre comillas el
nombre del archivo para evitar que el terminal interprete el comodín.
Para buscar archivos en el directorio /etc/ que contienen la cadena pass, ejecute el siguiente
comando:
Para realizar una búsqueda que no distinga entre mayúsculas y minúsculas de un nombre de
archivo determinado, use el comando find con la opción -iname, seguida del nombre del archivo
que desea buscar. Para buscar archivos con texto que no distinga entre mayúsculas y minúsculas, y
que coincida con la cadena messages, en sus nombres en el directorio root /, ejecute el siguiente
comando:
RH124-RHEL9.0-es-5-20230516 485
capítulo 13 | Acceso a los sistemas de archivos de Linux
Para buscar archivos en el directorio /home/developer que es propietario del ID del grupo
1000:
El comando find con las opciones -user y -group busca archivos donde el propietario del
archivo y el propietario del grupo son diferentes. En el siguiente ejemplo, se enumeran los archivos
que posee el usuario root y con el grupo mail:
Se usa el comando find con la opción -perm para buscar archivos con una serie de permisos
particulares. Los valores octales definen los permisos con 4, 2 y 1 para leer, escribir y ejecutar. Los
permisos están precedidos por un signo / o - para controlar los resultados de la búsqueda.
Un permiso octal precedido por el signo / coincide con archivos que tengan al menos un permiso
establecido por usuario, grupo u otro, para esa serie de permisos. Un archivo con los permisos r--
r--r-- no coincide con el permiso /222 pero coincide con el permiso rw-r--r--. Un signo -
antes del permiso significa que las tres partes de los permisos deben coincidir. Para el ejemplo
anterior, los archivos con los permisos rw-rw-rw- coinciden. También puede usar el comando
find con la opción -perm para establecer permisos simbólicamente.
486 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Por ejemplo, los siguientes comandos coinciden con cualquier archivo del directorio /home para el
cual el usuario propietario tiene permisos de lectura, escritura y ejecución, los miembros del grupo
propietario tienen permisos de lectura y escritura, y los demás tienen acceso de solo lectura.
Ambos comandos son equivalentes; el primero usa el método octal para los permisos, mientras
que el segundo usa los métodos simbólicos.
El comando find, opción -ls, es muy conveniente cuando se buscan archivos por permisos, ya
que proporciona información para los archivos, incluidos sus permisos.
Para buscar archivos respecto de los cuales el usuario tiene al menos permisos de escritura y
ejecución, y el grupo tiene por lo menos permiso de escritura y los demás tienen por lo menos
permiso de lectura, ejecute el siguiente comando:
Para buscar archivos para los cuales el usuario tiene permisos de lectura, o el grupo tiene por
lo menos permisos de lectura o los demás tienen por lo menos permiso de escritura, ejecute el
siguiente comando:
Cuando se usa con los signos / o -, el valor 0 funciona como comodín porque significa cualquier
permiso.
Para buscar cualquier archivo en el directorio /home/developer para el cual los demás tienen al
menos acceso de lectura en la máquina host, ejecute el siguiente comando:
Para buscar todos los archivos en el directorio /home/developer donde otros tienen permiso de
escritura, ejecute el siguiente comando:
RH124-RHEL9.0-es-5-20230516 487
capítulo 13 | Acceso a los sistemas de archivos de Linux
Puede usar los caracteres más + y menos - para incluir archivos que sean más grandes y más
pequeños que el tamaño dado, respectivamente. El siguiente ejemplo muestra una búsqueda de
archivos con un tamaño exacto de 10 megabytes:
Importante
El comando find con la opción -size redondea todo a unidades individuales. Por
ejemplo, el comando find -size 1M muestra archivos de un tamaño menor que
1 MB porque redondea todos los archivos para arriba a 1 MB.
Para buscar todos los archivos con contenido modificado hace 120 minutos:
488 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
El modificador + delante de los minutos busca todos los archivos en el directorio / que cambiaron
hace más de nminutos. Para buscar todos los archivos con contenido modificado hace más de 200
minutos:
El modificador - busca todos los archivos en el directorio / que cambiaron hace menos de
nminutos. El siguiente ejemplo enumera los archivos que cambiaron hace menos de 150 minutos:
El comando find con la opción -links seguida de un número busca todos los archivos que
tienen un determinado conteo de enlaces duros. El número precedido por un modificador + busca
archivos con un conteo más alto que el conteo de enlaces duros dado. Si el número precede a un
modificador -, la búsqueda se limita a todos los archivos con un conteo de enlaces duros que sea
menor que el número dado.
RH124-RHEL9.0-es-5-20230516 489
capítulo 13 | Acceso a los sistemas de archivos de Linux
Referencias
Páginas del manual: locate(1), updatedb(1), find(8)
490 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Ejercicio Guiado
Resultados
• Buscar archivos con los comandos find y locate.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina workstation, use el comando ssh para iniciar sesión en la máquina
servera con el usuario student.
RH124-RHEL9.0-es-5-20230516 491
capítulo 13 | Acceso a los sistemas de archivos de Linux
3. Use el comando find a fin de realizar búsquedas en tiempo real en la máquina servera de
acuerdo con los siguientes requisitos:
• Enumere todos los archivos en el directorio /var/lib que sean propietario del usuario
chrony.
• Enumere todos los archivos en el directorio /var que sean propietario del usuario root y
del grupo mail.
• Enumere todos los archivos en el directorio /usr/bin que tengan un tamaño superior a
50 KB.
• Enumere todos los archivos en el directorio /home/student que se hayan modificado
en los últimos 120 minutos.
• Enumere todos los archivos del dispositivo de bloque en el directorio /dev.
3.1. Busque todos los archivos en el directorio /var/lib que es propietario del usuario
chrony, con privilegio root.
3.2. Busque todos los archivos en el directorio /var que sean propietario del usuario
root y del grupo mail.
3.3. Enumere todos los archivos en el directorio /usr/bin que tengan un tamaño de
archivo superior a 50 KB.
492 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
3.5. Enumere todos los archivos del dispositivo de bloque en el directorio /dev.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 493
capítulo 13 | Acceso a los sistemas de archivos de Linux
Trabajo de laboratorio
Resultados
• Montar un sistema de archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina serverb con el usuario root, identifique el UUID para el dispositivo /dev/
vdb1 y móntelo usando su UUID en el directorio /mnt/freespace.
2. Genere un informe de uso del disco para el directorio /usr/share. Guarde el resultado en
el archivo /mnt/freespace/results.txt.
3. Busque todos los archivos que coincidan con la palabra clave rsyslog.conf y almacene el
resultado en el archivo /mnt/freespace/search1.txt.
4. Almacene en el archivo /mnt/freespace/search2.txt el resultado de la búsqueda
de todos los archivos en el directorio /usr/share que tienen más de 50 MB y menos de
100 MB.
5. Regrese al sistema workstation con el usuario student.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
494 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 495
capítulo 13 | Acceso a los sistemas de archivos de Linux
Solución
Resultados
• Montar un sistema de archivos.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. En la máquina serverb con el usuario root, identifique el UUID para el dispositivo /dev/
vdb1 y móntelo usando su UUID en el directorio /mnt/freespace.
1.1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
496 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
1.4. Monte el dispositivo /dev/vdb1 mediante el uso del UUID en el directorio /mnt/
freespace.
2. Genere un informe de uso del disco para el directorio /usr/share. Guarde el resultado en
el archivo /mnt/freespace/results.txt.
3. Busque todos los archivos que coincidan con la palabra clave rsyslog.conf y almacene el
resultado en el archivo /mnt/freespace/search1.txt.
3.2. Use el comando locate para buscar todos los archivos que coincidan con la palabra
clave rsyslog.conf y almacene el resultado en el archivo /mnt/freespace/
search1.txt.
RH124-RHEL9.0-es-5-20230516 497
capítulo 13 | Acceso a los sistemas de archivos de Linux
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
498 RH124-RHEL9.0-es-5-20230516
capítulo 13 | Acceso a los sistemas de archivos de Linux
Resumen
• Los dispositivos de almacenamiento se representan como un tipo de archivo denominado
dispositivo de bloque.
• El comando df arroja un informe con el espacio en disco total, el espacio en disco usado y el
espacio en disco libre en todos los sistemas de archivos regulares montados.
• El usuario root puede usar el comando mount para montar manualmente un sistema de
archivos.
• Para desmontar correctamente un dispositivo, todos los procesos deben dejar de acceder al
punto de montaje.
• El comando lsblk enumera los detalles de los dispositivos de bloque, como el tamaño y el
UUID.
• El comando find busca en tiempo real en los sistemas de archivos locales para encontrar
archivos en función de los criterios de búsqueda.
RH124-RHEL9.0-es-5-20230516 499
500 RH124-RHEL9.0-es-5-20230516
capítulo 14
RH124-RHEL9.0-es-5-20230516 501
capítulo 14 | Análisis de servidores y soporte
Objetivos
Activar la interfaz de administración de la consola web para administrar y monitorear de forma
remota el rendimiento de un servidor de Red Hat Enterprise Linux.
Puede usar la consola web para monitorear los registros del sistema y ver gráficos del rendimiento
del sistema. Además, puede usar su explorador web para cambiar la configuración con
herramientas gráficas en la interfaz de la consola web, que incluye una sesión interactiva de
terminal totalmente funcional.
Luego, habilite e inicie el servicio cockpit.socket, que ejecuta un servidor web. Este paso es
necesario si necesita conectarse al sistema a través de la interfaz web.
Si está usando un perfil de firewall personalizado, debe agregar el servicio cockpit a firewalld
para abrir el puerto 9090 en el firewall:
502 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
web con un certificado TLS autofirmado. Cuando se conecta a la consola web por primera vez, el
explorador web probablemente muestra una advertencia de seguridad. En la página del manual
cockpit-ws(8), se proporcionan instrucciones sobre cómo reemplazar el certificado TLS con
uno firmado correctamente.
Para iniciar sesión en la consola web, ingrese su nombre de usuario y contraseña en la pantalla de
inicio de sesión. Puede iniciar sesión con el nombre de usuario y la contraseña de cualquier cuenta
local del sistema, incluido el usuario root.
Después de iniciar sesión, la consola web muestra el nombre de usuario en el lado izquierdo de la
barra de título. El acceso predeterminado a la consola web es con derechos limitados, como puede
ver en el siguiente botón Limited access y en el mensaje "La consola web se está ejecutando en
modo de acceso limitado".
Si su cuenta está configurada con los privilegios adecuados, puede escalar los privilegios
cambiando a acceso administrativo, haciendo clic en los botones Limited access o Turn on
administrative access. Durante el proceso de aumento de privilegios, debe ingresar su contraseña.
Cuando haya aumentado los privilegios, el botón Limited access cambiará a Administrative
access.
Puede volver al modo de acceso limitado haciendo clic en el botón Administrative access y luego
en el botón Limit access en la ventana emergente que aparece.
RH124-RHEL9.0-es-5-20230516 503
capítulo 14 | Análisis de servidores y soporte
Como usuario sin privilegios, solo puede configurar o restablecer su contraseña y administrar
claves SSH públicas. Para configurar o restablecer su contraseña, haga clic en el botón Set
password.
Ingrese su información en los campos Old password, New password y Confirm new password.
Haga clic en el botón Set password para activar la contraseña nueva.
504 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Haga clic en View details and history en la página Overview para ver detalles del rendimiento
actual del sistema, como la actividad de la CPU, el uso de memoria, las E/S del disco y el uso de la
red.
RH124-RHEL9.0-es-5-20230516 505
capítulo 14 | Análisis de servidores y soporte
Figura 14.8: Indicadores de rendimiento del sistema del usuario sin privilegios
Haga clic en una fila para ver los detalles del informe de registro. En el siguiente ejemplo, observe
la primera fila que informa sobre un mensaje de registro de sudo.
506 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
En el siguiente ejemplo se muestran los detalles que se visualizan en la consola web cuando hace
clic en la fila sudo. Los detalles del informe incluyen la entrada de registro seleccionada (sudo),
la fecha, hora, prioridad y tipo de syslog de la entrada de registro y el nombre de host del sistema
que informó el mensaje de registro.
RH124-RHEL9.0-es-5-20230516 507
capítulo 14 | Análisis de servidores y soporte
Para generar un informe de diagnóstico, inicie sesión en la consola web como usuario privilegiado.
Haga clic en el botón Diagnostic Reports en la barra de navegación para abrir la página que crea
estos informes. Haga clic en el botón Create report para generar un nuevo informe de diagnóstico.
Después de unos minutos, la interfaz, muestra Done! cuando el informe está completo. Haga clic
en el botón Download report para guardar el informe en su sistema local.
508 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Desde el menú de arriba a la derecha, seleccione la opción adecuada para reiniciar o apagar un
sistema.
RH124-RHEL9.0-es-5-20230516 509
capítulo 14 | Análisis de servidores y soporte
Haga clic en los botones Stop, Restart o Disallow running (mask) según corresponda para
administrar el servicio. En esta vista, el servicio ya se está ejecutando. Para ver información
adicional relacionada con el servicio, haga clic en cualquiera de los enlaces seleccionados o
desplácese por los registros de servicio, que se muestran debajo de la sección de administración
de servicios.
510 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Haga clic en el nombre de interfaz adecuado en la sección Interfaces para acceder a la página
de administración. En este ejemplo, la interfaz eth0 está seleccionada. En la parte superior
de la página de administración, se muestra la actividad del tráfico de red para el dispositivo
seleccionado. Desplácese hacia abajo para ver los ajustes de configuración y las opciones de
administración.
Para modificar o agregar opciones de configuración a una interfaz, haga clic en los enlaces
seleccionados para la configuración deseada. En este ejemplo, el enlace IPv4 muestra una única
dirección IP y máscara de red, 172.25.250.9/24, para la interfaz de red eth0. Para agregar una
dirección IP adicional a la interfaz de red eth0, haga clic en el enlace edit.
RH124-RHEL9.0-es-5-20230516 511
capítulo 14 | Análisis de servidores y soporte
Haga clic en el símbolo + a la derecha de la selección de lista Manual para agregar una dirección
IP. Introduzca una dirección IP y una máscara de red en los campos correspondientes. Haga clic en
Apply para activar la nueva configuración.
512 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
RH124-RHEL9.0-es-5-20230516 513
capítulo 14 | Análisis de servidores y soporte
Referencias
Páginas del manual: cockpit(1), cockpit-ws(8) y cockpit.conf(5)
Para obtener más información, consulte Managing Systems Using the RHEL 9 Web
Console en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-
single/managing_systems_using_the_rhel_9_web_console/index#getting-started-
with-the-rhel-9-web-console_managing-systems-using-the-web-console
514 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Ejercicio Guiado
Resultados
• Usar la consola web para monitorear las características básicas del sistema, inspeccionar
los archivos de registro, crear cuentas de usuario y acceder al terminal.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina servera con el usuario student.
2. La consola web ya está instalada en el sistema, pero no está activada. Habilite e inicie el
servicio cockpit.
RH124-RHEL9.0-es-5-20230516 515
capítulo 14 | Análisis de servidores y soporte
4.1. Haga clic en el botón Terminal en la barra de navegación izquierda para acceder al
terminal.
Se abre una sesión de terminal donde la sesión del usuario student ya está iniciada.
Verifique que la ejecución del comando funcione en el terminal incorporado.
[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
4.2. Haga clic en el botón Accounts en la barra de navegación izquierda para administrar
usuarios.
El botón Create new account no aparece, ya que ha iniciado sesión con acceso
limitado.
5.1. Haga clic en el botón Limited access para cambiar al acceso administrativo. Use
student como contraseña de usuario student y haga clic en el botón Authenticate.
La consola web reemplaza el botón Limited access por el botón Administrative
access.
6. Para consultar las estadísticas del sistema, haga clic en Overview en la barra de navegación
izquierda y en el botón View details and history en la sección Usage.
En esta página, se muestran varias de las estadísticas del sistema operativo, como la carga
actual, el uso del disco, las E/S del disco y el tráfico de red.
7. Para inspeccionar los registros del sistema, haga clic en el botón Logs en la barra de
navegación izquierda.
En esta página, se muestran los registros del sistema de systemd. Use los botones
ubicados en la esquina superior izquierda para modificar la manera en que se muestran las
entradas de registro según la fecha y la prioridad de los registros.
7.2. En función del día actual del mes, haga clic en cualquier entrada de registro de la lista.
Se abre una página de detalles de entrada de registro con información adicional sobre
el evento, como el nombre de host, el contexto de SELinux o el número de PID del
proceso al que corresponde la entrada.
8.2. Desplácese hacia abajo hasta la sección Interfaces y haga clic en la fila de la interfaz
de red eth0.
516 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
8.4. En la ventana IPv4 settings, haga clic en el botón + junto a la lista Manual.
9.1. Haga clic en el botón Accounts en la barra de navegación izquierda. La consola web
ahora muestra el botón Create new account, ya que tiene derechos administrativos.
Campo Valor
Contraseña redh@t!23
Confirmar redh@t!23
10. Acceda a una sesión de terminal dentro de la consola web para agregar el usuario
manager1 al grupo wheel.
10.2. Use el comando id manager1 para ver los miembros del grupo del usuario
manager1.
10.3. Use el comando sudo usermod -aG wheel manager1 para agregar al usuario
manager1 al grupo wheel.
RH124-RHEL9.0-es-5-20230516 517
capítulo 14 | Análisis de servidores y soporte
10.4. Use el comando id manager1 para verificar que el usuario manager1 sea miembro
del grupo wheel.
11.2. Busque el servicio Kernel process accounting. Haga clic en el enlace de servicio. Una
página de detalles muestra el estado del servicio como deshabilitado.
11.3. Haga clic en el botón Start and Enable junto al nombre del servicio.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
518 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Objetivos
Describir y usar los recursos clave en el portal de clientes de Red Hat para encontrar información
en la documentación y la base de conocimientos de Red Hat.
Algunas secciones del sitio son de acceso público y otras áreas requieren una suscripción activa.
Visite https://access.redhat.com/help/ para obtener ayuda para acceder al Portal de clientes de
Red Hat.
Con el recorrido, puede descubrir las características del portal y aprovechar al máximo las ventajas
de su suscripción a Red Hat. Una vez que haya iniciado sesión en el portal de clientes de Red Hat,
haga clic en el botón Tour the Customer Portal.
Aparecerá la ventana WELCOME TO THE RED HAT CUSTOMER PORTAL. Haga clic en el botón
Let's go para iniciar el recorrido.
El menú Subscriptions abre una página nueva donde puede gestionar los sistemas registrados y
el uso de suscripciones y los derechos. Esta página enumera la información de erratas aplicables.
Puede crear claves de activación para registrar sistemas y garantizar los derechos correctos. El
administrador de la organización de su cuenta puede restringir su acceso a esta página.
El menú Downloads abre una nueva página para acceder a las descargas de sus productos y
solicitar la evaluación de los productos sin derechos.
RH124-RHEL9.0-es-5-20230516 519
capítulo 14 | Análisis de servidores y soporte
El menú Support Cases abre una página nueva que brinda acceso para crear, rastrear y gestionar
los casos de soporte a través del sistema de gestión de casos, suponiendo que su organización ha
autorizado ese nivel de acceso.
Con el menú User Menu, gestione su cuenta, las cuentas de las que es administrador de la
organización, su perfil y las opciones de notificación por correo electrónico.
El icono de globo terráqueo abre el menú Language para especificar sus preferencias de idioma
para el portal de clientes de Red Hat.
El menú Products & Services proporciona acceso a Product Hubs para evaluaciones, guías de
inicio y otra información de soporte específica para el producto. También puede acceder a la
documentación sobre productos de Red Hat, a la base de conocimientos de artículos de soporte
y cómo ponerse en contacto con el soporte de Red Hat. Puede acceder a los servicios que ofrece
Red Hat, como consultoría, gestión de cuentas técnicas y capacitación y certificaciones.
El menú Tools proporciona vínculos a herramientas para ayudarlo a tener éxito con los productos
de Red Hat. Las herramientas ayudan a solucionar un problema de producto y proporcionan
información de paquetes y erratas. La sección Customer Portal Labs proporciona una colección
de aplicaciones y herramientas web para ayudarlo a mejorar el rendimiento, diagnosticar
problemas, identificar problemas de seguridad y optimizar sus configuraciones. La sección
Red Hat Insights ayuda a analizar plataformas y aplicaciones para predecir riesgos, tomar las
medidas recomendadas y realizar un seguimiento de los costos para gestionar entornos de nube
híbrida. Insights alerta a los administradores antes de una interrupción, o sobre un evento de
seguridad o un gasto excesivo.
El menú Security proporciona acceso al Centro de seguridad de productos de Red Hat para
actualizaciones de seguridad y evita que los entornos se expongan a vulnerabilidades de
seguridad. Esta sección proporciona información sobre problemas de seguridad de alto perfil,
con acceso a las notificaciones de seguridad, la base de datos de Vulnerabilidades y exposiciones
comunes de Red Hat (CVE), los laboratorios de seguridad, el blog de seguridad de Red Hat, la
medición de seguridad, las clasificaciones de gravedad, las políticas de backporting y las claves de
firma de productos GNU Privacy Guard (GPG).
520 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
nota
Red Hat recomienda ver el recorrido completo en Iniciación con Red Hat [https://
access.redhat.com/start], incluidas las secciones del menú How to Personalize
Your Customer Portal experience, el menú Explore the Benefits of Your Red Hat
subscription y el menú How to Engage Red Hat Support. Se requiere una
suscripción activa para acceder a estos recursos de suscripción.
Reúna información básica. ¿Qué producto y versión se ven afectados? Esté preparado para brindar
información de diagnóstico relevante. Esta información puede incluir la salida del comando sos
report. 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 pila mostrado en el monitor de
un sistema bloqueado.
Determine el nivel de gravedad. Red Hat usa cuatro niveles de gravedad para clasificar problemas.
Los informes de problemas de gravedad Urgente y Alta debe seguirse mediante una llamada
telefónica al centro de asistencia local pertinente (consulte https://access.redhat.com/support/
contact/technicalSupport).
Gravedad Descripción
RH124-RHEL9.0-es-5-20230516 521
capítulo 14 | Análisis de servidores y soporte
Gravedad Descripción
Puede generar un informe de diagnóstico para enviarlo al soporte técnico de Red Hat mediante la
consola web o la línea de comandos.
522 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
RH124-RHEL9.0-es-5-20230516 523
capítulo 14 | Análisis de servidores y soporte
Haga clic en Download report seguido de Save File para guardar el informe de diagnóstico.
524 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
La generación del informe sos requiere privilegios root. Ejecute el comando sos report para
generar el informe.
Optionally, please enter the case id that you are generating this report for []:
...output omitted...
Your sosreport has been generated and saved in:
/var/tmp/sosreport-host-2022-03-29-wixbhpz.tar.xz
..output omitted...
Please send this file to your support representative.
Verifique que el comando sos report haya creado el archivo de almacenamiento en la ubicación
anterior.
RH124-RHEL9.0-es-5-20230516 525
capítulo 14 | Análisis de servidores y soporte
• Envíe el informe sos mediante el uso del comando sos report, opción --upload.
• Envíe un informe sos al portal de clientes de Red Hat adjuntándolo al caso de soporte.
Referencias
Página del manual: sosreport(1)
Para obtener más información, consulte Generating an SOS Report for Technical
Support en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/
html-single/getting_the_most_from_your_support_experience/generating-an-sos-
report-for-technical-support_getting-the-most-from-your-support-experience
526 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Ejercicio Guiado
Resultados
• Generar un informe de diagnóstico que pueda enviar como parte de un caso de soporte al
portal de clientes de Red Hat.
Antes De Comenzar
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Instrucciones
1. Inicie sesión en la máquina servera con el usuario student.
RH124-RHEL9.0-es-5-20230516 527
capítulo 14 | Análisis de servidores y soporte
Triggers: ● cockpit.service
Docs: man:cockpit-ws(8)
Listen: [::]:9090 (Stream)
...output omitted...
Mar 28 01:41:13 servera.lab.example.com systemd[1]: Starting Cockpit Web Service
Socket...
Mar 28 01:41:13 servera.lab.example.com systemd[1]: Listening on Cockpit Web
Service Socket.
5.3. Inicie sesión con el usuario root y la contraseña redhat. Ya ha iniciado sesión como
usuario privilegiado, lo cual es necesario para crear un informe de diagnóstico.
5.4. Haga clic en el menú Diagnostic Reports en el panel de navegación izquierdo. Haga
clic en el botón Create Report. El informe tarda unos minutos en crearse.
6. Cuando el informe esté listo, haga clic en el botón Download report para guardar el archivo.
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
528 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Objetivos
Usar Red Hat Insights para analizar los servidores en busca de problemas, corregirlos o resolverlos,
y confirmar que la solución haya funcionado.
Red Hat actualiza regularmente la base de conocimientos, sobre la base de 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. Con este soporte, puede identificar, priorizar y resolver
proactivamente los problemas antes de que se conviertan en un problema mayor.
Para cada problema detectado, Red Hat Insights proporciona estimaciones del riesgo presentado
y recomendaciones sobre cómo mitigar o remediar el problema. Estas recomendaciones pueden
sugerir materiales como Ansible Playbooks o brindar instrucciones detalladas para ayudarle a
resolver el problema.
Red Hat Insights adapta las recomendaciones a cada sistema registrado en el servicio. Para
comenzar a usar Red Hat Insights, instale el 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 sistemas cliente. Al limitar los datos, podría
impedir el funcionamiento de algunas de las reglas analíticas, según lo que usted limite.
Red Hat Insights actualmente proporciona análisis predictivos y recomendaciones para los
siguientes productos de Red Hat:
RH124-RHEL9.0-es-5-20230516 529
capítulo 14 | Análisis de servidores y soporte
La plataforma de Red Hat Insights analiza los datos recibidos y muestra el resultado en el sitio
https://console.redhat.com/insights.
El cliente de Insights actualiza periódicamente los metadatos que están proporcionados a Insights.
Use el comando insights-client para actualizar los metadatos del cliente.
530 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
RH124-RHEL9.0-es-5-20230516 531
capítulo 14 | Análisis de servidores y soporte
Para cada problema, Red Hat 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 Ansible Playbook. Red Hat Insights
también proporciona enlaces a artículos de la base de conocimiento en el Portal de clientes.
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.
532 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
Para cada CVE, Insights proporciona información adicional y enumera los sistemas expuestos.
Puede hacer clic en el botón Remediate para crear una Ansible Playbook para la corrección.
RH124-RHEL9.0-es-5-20230516 533
capítulo 14 | Análisis de servidores y soporte
recomendaciones para un sistema específico, use el menú Patch > Systems. Haga clic en el botón
Apply all applicable advisories para generar Ansible Playbook para un sistema.
En la siguiente figura, se muestra que usted puede usar Red Hat Insights para comparar el mismo
sistema en dos momentos diferentes:
534 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y soporte
En la página Remediations (Correcciones), se enumeran todas las Ansible Playbooks que creó
para la corrección. Puede descargar las guías de esa página.
Referencias
Páginas del manual: insights-client(8) y insights-client.conf(5)
Para obtener más información acerca de Red Hat Insights, consulte la Product
Documentation for Red Hat Insights en
https://access.redhat.com/documentation/en-us/red_hat_insights
.
Para obtener más información sobre la exclusión de datos que recopila Insights,
consulte los capítulos Red Hat Insights Client Data Obfuscation y Red Hat Insights
Client Data Redaction en la Client Configuration Guide for Red Hat Insights en
https://access.redhat.com/documentation/en-us/red_hat_insights/2021/html-
single/client_configuration_guide_for_red_hat_insights/assembly-main-client-cg
Hay información disponible sobre los datos que recopila Red Hat Insights en
Información del sistema recopilada por Red Hat Insights
https://access.redhat.com/articles/1598863
RH124-RHEL9.0-es-5-20230516 535
capítulo 14 | Análisis de servidores y 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 analyzes system metadata to determine which issues and
recommendations apply.
2) The Insights client uploads system metadata to the Red Hat Insights service.
3) The administrator views the recommended actions in the Red Hat Insights
customer portal.
4) The Insights client collects system metadata on the Red Hat Enterprise Linux
system.
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 Ansible
Playbook para actualizar los paquetes RPM en un sistema?
a. Advisor > Recommendations
b. Vulnerability > Systems
c. Patch > Systems
d. Remediations
536 RH124-RHEL9.0-es-5-20230516
capítulo 14 | Análisis de servidores y 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 analyzes system metadata to determine which issues and
recommendations apply.
2) The Insights client uploads system metadata to the Red Hat Insights service.
3) The administrator views the recommended actions in the Red Hat Insights
customer portal.
4) The Insights client collects system metadata on the Red Hat Enterprise Linux
system.
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 Ansible
Playbook para actualizar los paquetes RPM en un sistema?
a. Advisor > Recommendations
b. Vulnerability > Systems
c. Patch > Systems
d. Remediations
RH124-RHEL9.0-es-5-20230516 537
capítulo 14 | Análisis de servidores y soporte
Resumen
• La consola web es una interfaz de gestión web de servidores y se basa en el servicio de código
abierto cockpit.
• La consola web proporciona gráficos del rendimiento del sistema, herramientas gráficas para
gestionar la configuración del sistema e inspeccionar los registros, e interfaces de terminal
interactivas.
• 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.
538 RH124-RHEL9.0-es-5-20230516
capítulo 15
Revisión exhaustiva
Meta Revisar tareas de Red Hat System Administration I .
RH124-RHEL9.0-es-5-20230516 539
capítulo 15 | Revisión exhaustiva
Revisión exhaustiva
Objetivos
Demostrar conocimientos y habilidades adquiridos en Red Hat System Administration I.
Puede consultar las secciones anteriores del libro de texto para realizar lecturas complementarias.
Explicar el propósito del código abierto, Linux, las distribuciones de Linux y Red Hat Enterprise
Linux.
• Iniciar sesión en el sistema Linux con el entorno de escritorio GNOME y ejecutar comandos
desde un prompt de shell en un programa de terminal.
• Ahorrar tiempo en la ejecución de comandos desde un prompt de shell con los accesos directos
de Bash.
• Describir cómo Linux organiza los archivos y los propósitos de diversos directorios en la
jerarquía del sistema de archivos.
• Crear varias referencias de nombres de archivo al mismo archivo con enlaces duros y simbólicos
(o "blandos").
• Ejecutar con eficiencia los comandos que afectan a muchos archivos mediante el uso de las
funciones de coincidencia de patrones de la shell Bash.
540 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
• Guardar la salida o los errores en un archivo con la redirección de shell y procesar la salida de
comando a través de varios programas de línea de comandos con pipes.
• Crear y editar archivos de texto desde la línea de comandos con el editor vim.
• Definir las variables de shell para facilitar la ejecución de comandos, y editar los scripts de
arranque de Bash para configurar las variables de shell y del entorno a fin de modificar el
comportamiento de la shell y de los programas ejecutados desde la shell.
• Cambiar a la cuenta de superusuario para gestionar un sistema Linux y otorgar a otros usuarios
acceso de superusuario a través del comando sudo.
• Establecer una política de gestión de contraseñas para los usuarios, y bloquear y desbloquear
manualmente las cuentas de los usuarios.
• Enumerar los permisos del sistema de archivos en archivos y directorios e interpretar el efecto
de esos permisos en el acceso de los usuarios y grupos.
• Cambiar los permisos y la propiedad de los archivos con las herramientas de línea de comandos.
• Controlar los permisos predeterminados de los archivos creados por los usuarios, explicar
los efectos de los permisos especiales y usar permisos especiales y predeterminados para
configurar el propietario del grupo de archivos creados en un directorio.
• Usar el control de trabajo Bash para gestionar múltiples procesos iniciados desde la misma
sesión de terminal.
• Usar comandos para finalizar procesos y comunicarse con ellos, definir las características de un
proceso daemon y detener sesiones y procesos de usuario.
• Definir el promedio de carga y determinar los procesos del servidor que consumen muchos
recursos.
RH124-RHEL9.0-es-5-20230516 541
capítulo 15 | Revisión exhaustiva
• Enumerar daemons del sistema y servicios de red iniciados por el servicio systemd y las
unidades socket.
• Controlar los daemons del sistema y los servicios de red con el comando systemctl.
• Configurar una cuenta de usuario para usar autenticación basada en claves para iniciar sesión en
sistemas remotos de forma segura y sin una contraseña.
• Deshabilitar los inicios de sesión directos como root y la autenticación basada en contraseñas
para el servicio OpenSSH.
• 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.
• Registrar un sistema para su cuenta de Red Hat y asignarle derechos para actualizaciones de
software y servicios de soporte mediante Red Hat Suscription Management.
• Explicar cómo se proporciona el software como paquetes de RPM e investigar los paquetes
instalados en el sistema con DNF y RPM.
• Habilitar y deshabilitar el uso de repositorios DNF de terceros o de Red Hat por un servidor.
542 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
• Buscar archivos en sistemas de archivos montados con los comandos find y locate.
• Describir y usar los recursos clave en el portal de clientes de Red Hat para encontrar información
en la documentación y la base de conocimientos de Red Hat.
• Usar Red Hat Insights para analizar los servidores en busca de problemas, corregirlos o
resolverlos, y confirmar que la solución haya funcionado.
RH124-RHEL9.0-es-5-20230516 543
capítulo 15 | Revisión exhaustiva
Trabajo de laboratorio
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, gestiona los archivos, redirige un conjunto específico de líneas de un archivo
de texto a otro archivo y edita los archivos de texto.
Resultados
• Gestionar archivos desde la línea de comandos.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Especificaciones
• Inicie sesión en serverb con el usuario student.
• Cree tres archivos vacíos llamados grade1, grade2 y grade3 en el directorio /home/
student/grading.
544 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
• Anexe las últimas tres líneas del archivo /home/student/bin/manage al archivo /home/
student/grading/review.txt. No sobrescriba ningún texto existente en el archivo /home/
student/grading/review.txt.
• Guarde la salida de un comando que enumera el contenido del directorio /boot en el archivo
/home/student/grading/longlisting.txt. La salida debe ser un "listado largo" que
incluye permisos de archivo, propietario y propietario del grupo, tamaño y fecha de modificación
de cada archivo. La salida debe omitir los archivos ocultos.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 545
capítulo 15 | Revisión exhaustiva
Solución
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, gestiona los archivos, redirige un conjunto específico de líneas de un archivo
de texto a otro archivo y edita los archivos de texto.
Resultados
• Gestionar archivos desde la línea de comandos.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
546 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
3.2. Verifique que los archivos grade1, grade2 y grade3 existan en el directorio /home/
student/grading.
4.1. Vea las primeras cinco líneas del archivo /home/student/bin/manage y redirija
la salida al archivo /home/student/grading/review.txt. Use el símbolo de
redireccionamiento único (>) para sobrescribir cualquier contenido existente en el
archivo.
Test AA
Test BB
Test CC
Test DD
Test EE
5. Anexe las últimas tres líneas del archivo /home/student/bin/manage al archivo /home/
student/grading/review.txt. Use el símbolo de redirección doble (>>) para anexar la
salida y preservar el contenido del archivo.
5.1. Vea las primeras tres líneas del archivo /home/student/bin/manage y anexe la
salida al archivo /home/student/grading/review.txt.
RH124-RHEL9.0-es-5-20230516 547
capítulo 15 | Revisión exhaustiva
Test AA
Test BB
Test CC
Test DD
Test EE
Test HH
Test II
Test JJ
[student@serverb grading]$ cd
[student@serverb ~]$
7.2. Desde el modo de comandos en vim, desplácese hacia abajo hasta la línea Test JJ.
Presione dos veces la tecla y para copiar la línea de texto y presione la tecla p para
pegarla debajo del cursor. Escriba wq para guardar los cambios y salir de vim. Verifique
que el archivo /home/student/grading/review-copy.txt contenga el siguiente
texto:
Test AA
Test BB
Test CC
Test DD
Test EE
Test HH
Test II
Test JJ
Test JJ
548 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
8.2. Desde el modo de comandos en Vim, desplácese hacia abajo hasta la línea Test HH.
Presione dos veces la tecla d en el teclado para eliminar la línea de texto. Escriba wq
para guardar los cambios y salir de vim. Verifique que el archivo /home/student/
grading/review-copy.txt contenga el siguiente texto:
Test AA
Test BB
Test CC
Test DD
Test EE
Test II
Test JJ
Test JJ
9.2. Desde el modo de comandos en Vim, desplácese hacia abajo hasta la línea Test CC.
Presione la tecla i para cambiar al modo de inserción mientras mantiene el cursor al
principio de la línea Test CC. En el modo de inserción, presione Enter para crear una
línea en blanco sobre el cursor. Use la flecha hacia arriba para ir a la línea en blanco
y cree la línea de texto A new line. Presione la tecla Esc para volver al modo de
comandos. Escriba wq para guardar los cambios y salir de Vim. Verifique que el archivo
/home/student/grading/review-copy.txt contenga el siguiente texto.
Test AA
Test BB
A new line
Test CC
Test DD
Test EE
Test II
Test JJ
Test JJ
RH124-RHEL9.0-es-5-20230516 549
capítulo 15 | Revisión exhaustiva
12. Enumere el contenido del directorio /boot y redirija la salida al archivo /home/student/
grading/longlisting.txt. La salida debe ser un listado largo que incluye permisos de
archivo, propietario y propietario del grupo, tamaño y fecha de modificación de cada archivo.
La salida debe omitir los archivos ocultos.
12.1. Vea el contenido del directorio /boot en el formato de lista larga y omita los archivos
ocultos. Redirija la salida al archivo /home/student/grading/longlisting.txt.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
550 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
RH124-RHEL9.0-es-5-20230516 551
capítulo 15 | Revisión exhaustiva
Trabajo de laboratorio
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
Resultados
• Gestionar cuentas de usuarios y grupos.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Especificaciones
• Inicie sesión en serverb con el usuario student.
• Identifique y cierre el proceso que actualmente usa la mayor cantidad de tiempo de CPU.
552 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
– Permita que se cambie la contraseña después de 10 días desde el día del último cambio de
contraseña.
– Establezca la caducidad de la contraseña después de 30 días desde el día del último cambio
de contraseña.
– Permita que el usuario use el comando sudo para ejecutar cualquier comando como
superusuario.
• Asegúrese de que los usuarios solo puedan eliminar archivos de su propiedad del directorio /
home/dbadmin1/grading/review2.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
RH124-RHEL9.0-es-5-20230516 553
capítulo 15 | Revisión exhaustiva
Solución
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
Resultados
• Gestionar cuentas de usuarios y grupos.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
2. Identifique y cierre el proceso que actualmente usa la mayor cantidad de tiempo de CPU.
2.1. Use el comando top para ver el consumo de CPU del sistema en tiempo real.
554 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
2.2. Desde la interfaz interactiva del comando top, preste atención a la columna %CPU y
confirme que haya un proceso denominado dd que consume la mayoría de los recursos
de CPU.
...output omitted...
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2303 student 20 0 217048 944 876 R 99.7 0.1 100:11.64 dd
...output omitted...
El proceso dd en la salida anterior tiene el PID 2303. Este proceso está consumiendo
el 99.7 % de los recursos de la CPU. El PID y el porcentaje de consumo de recursos de
CPU pueden variar en su sistema.
2.3. Desde la interfaz interactiva del comando top, escriba k para cerrar el proceso dd
con PID 2303, según lo determinado en el paso anterior. Después de escribir k en el
comando top, si el PID predeterminado que se muestra en el prompt coincide con
el PID del proceso que desea finalizar, presione la tecla Enter. Si el PID sugerido no
coincide, especifique el PID de forma interactiva.
...output omitted...
PID to signal/kill [default pid = 2303] Enter
...output omitted...
...output omitted...
Send pid 2833 signal [15/sigterm] Enter
...output omitted...
2.5. Presione la tecla q para salir de la interfaz interactiva del comando top.
4.1. Cree el usuario dbadmin1. Agregue el grupo database como grupo complementario.
RH124-RHEL9.0-es-5-20230516 555
capítulo 15 | Revisión exhaustiva
4.6. Permita que el usuario dbadmin1 use el comando sudo para ejecutar cualquier
comando como superusuario. Puede usar el comando vim /etc/sudoers.d/
dbadmin1 para crear el archivo y agregar con el siguiente contenido:
4.7. Cambie al usuario dbadmin1. Anexe la línea umask 007 al archivo /home/
dbadmin1/.bashrc.
5.1. Use el comando mkdir con la opción -p para crear el directorio /home/dbadmin1/
grading/review2.
556 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
5.3. Establezca los permisos del grupo execute de manera recursiva en el directorio /
home/dbadmin1 y los subdirectorios. Este permiso permite a los miembros del grupo
database atravesar la estructura del directorio /home/dbadmin1.
7. Asegúrese de que los usuarios solo puedan eliminar archivos de su propiedad del directorio /
home/dbadmin1/grading/review2.
Evaluación
Con el usuario student en la máquina workstation, use el comando lab para calificar su
trabajo. Corrija los errores informados y vuelva a ejecutar el comando hasta obtener un resultado
satisfactorio.
RH124-RHEL9.0-es-5-20230516 557
capítulo 15 | Revisión exhaustiva
Finalizar
En la máquina workstation, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
558 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Trabajo de laboratorio
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, configurará, protegerá y usará el servicio SSH para acceder a una máquina
remota y gestionar paquetes con la utilidad dnf.
Resultados
• Crear un nuevo par de claves SSH.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Especificaciones
• Inicie sesión en serverb con el usuario student.
• Genere claves de SSH para el usuario student. No proteja la clave privada con una frase de
contraseña. Guarde las claves privada y pública como los archivos /home/student/.ssh/
review3_key y /home/student/.ssh/review3_key.pub, respectivamente.
• Configure el usuario student en servera para aceptar inicios de sesión autenticados por el
par de claves SSH review3_key. El usuario student en serverb deberá ser capaz de iniciar
sesión en servera con SSH sin ingresar una contraseña.
RH124-RHEL9.0-es-5-20230516 559
capítulo 15 | Revisión exhaustiva
• En serverb, configure el servicio sshd para evitar que el usuario root inicie sesión.
• En serverb, configure el servicio sshd para evitar que los usuarios usen su contraseña para
iniciar sesión. Los usuarios aún deben ser capaces de autenticar los inicios de sesión con un par
de claves SSH.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
560 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Solución
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, configurará, protegerá y usará el servicio SSH para acceder a una máquina
remota y gestionar paquetes con la utilidad dnf.
Resultados
• Crear un nuevo par de claves SSH.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
2. Genere claves de SSH para el usuario student. No proteja la clave privada con una
frase de contraseña. Otorgue los nombres /home/student/.ssh/review3_key y /
home/student/.ssh/review3_key.pub a los archivos de clave privada y pública,
respectivamente.
RH124-RHEL9.0-es-5-20230516 561
capítulo 15 | Revisión exhaustiva
3. Configure el usuario student en servera para aceptar inicios de sesión autenticados por
el par de claves SSH review3_key. El usuario student en serverb deberá ser capaz de
iniciar sesión en servera con SSH sin ingresar una contraseña.
3.2. Verifique que pueda iniciar sesión en servera desde serverb con el usuario
student y la clave privada review3_key sin que se le solicite la contraseña.
562 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
4. En serverb, configure el servicio sshd para evitar que el usuario root inicie sesión.
5. En serverb, configure el servicio sshd para evitar que los usuarios usen su contraseña para
iniciar sesión. Los usuarios aún deben ser capaces de autenticar los inicios de sesión con
claves SSH.
RH124-RHEL9.0-es-5-20230516 563
capítulo 15 | Revisión exhaustiva
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
564 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Trabajo de laboratorio
Gestión de redes
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
Resultados
• Configurar los ajustes de red.
• Usar nombres de host canónicos que se puedan resolver localmente para conectarse a los
sistemas.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Importante
Cuando usa el comando ssh para ajustar la configuración de red, un
comando erróneo puede bloquear o suspender su sesión. A continuación, se
desconecta del servidor y, por lo tanto, se vuelve inaccesible. Debe ajustar
la configuración de la red a través de la consola del servidor, localmente o
mediante una consola remota.
RH124-RHEL9.0-es-5-20230516 565
capítulo 15 | Revisión exhaustiva
Especificaciones
• En serverb, determine el nombre de la interfaz Ethernet y su perfil de conexión activa.
• En serverb, cree y active un perfil de conexión llamado static para la interfaz Ethernet
disponible. El perfil static establece de manera estática las configuraciones de la red y no usa
DHCP. Configure el perfil static para usar los ajustes de red en la siguiente tabla:
Parámetro Configuración
• Configure el perfil de conexión static con una dirección IPv4 adicional de 172.25.250.211
con una máscara de red de 255.255.255.0. No elimine la dirección IPv4 existente. Verifique
que serverb responde a todas las direcciones cuando la conexión static está activa.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
566 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Solución
Gestión de redes
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
Resultados
• Configurar los ajustes de red.
• Usar nombres de host canónicos que se puedan resolver localmente para conectarse a los
sistemas.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Importante
Cuando usa el comando ssh para ajustar la configuración de red, un
comando erróneo puede bloquear o suspender su sesión. A continuación, se
desconecta del servidor y, por lo tanto, se vuelve inaccesible. Debe ajustar
la configuración de la red a través de la consola del servidor, localmente o
mediante una consola remota.
RH124-RHEL9.0-es-5-20230516 567
capítulo 15 | Revisión exhaustiva
1. Use la consola del sistema para iniciar sesión con el usuario student en la máquina
serverb y cambie al usuario root.
nota
Los nombres de la interfaz de red y del perfil de conexión inicial pueden diferir de
la salida anterior. Use el nombre que se muestra en su sistema para reemplazar el
nombre del marcador de posición ethX en los pasos posteriores.
568 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
172.25.250.10 client-review4
5.2. Verifique que puede acceder a la dirección IPv4 servera 172.25.250.10 mediante
el nombre de host canónico client-review4.
6.3. Desde workstation, use el comando ping para verificar que se accede a la dirección
IPv4 172.25.250.211.
RH124-RHEL9.0-es-5-20230516 569
capítulo 15 | Revisión exhaustiva
7.1. Regrese a la consola y use el comando nmcli para activar el perfil de red original.
7.2. En workstation, inicie sesión en serverb con el usuario student para verificar que
la configuración de red original esté activa.
7.3. Salga de las terminales adicionales. Regrese al sistema workstation con el usuario
student.
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
570 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Trabajo de laboratorio
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, monta un sistema de archivos y localiza archivos según diferentes criterios.
Resultados
• Montar un sistema de archivos existente.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
Especificaciones
• Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
• Busque todos los archivos que sean propiedad del usuario contractor1 y del grupo
contractor. Los archivos también deben tener los permisos octales de 640. Guarde la lista de
estos archivos en el archivo /review5-disk/review5-perms.txt.
• Localice todos los archivos con un tamaño de 100 bytes. Guarde las rutas absolutas a estos
archivos en el archivo /review5-disk/review5-size.txt.
RH124-RHEL9.0-es-5-20230516 571
capítulo 15 | Revisión exhaustiva
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
572 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
Solución
nota
Si planea realizar el examen RHCSA, use el siguiente enfoque para
aprovechar al máximo las ventajas de esta revisión integral: intente realizar
cada trabajo de laboratorio sin ver los botones de soluciones ni consultar el
contenido del curso. Use los scripts de calificación para evaluar su progreso a
medida que completa cada trabajo de laboratorio.
En esta revisión, monta un sistema de archivos y localiza archivos según diferentes criterios.
Resultados
• Montar un sistema de archivos existente.
Antes De Comenzar
Si no restableció las máquinas workstation y server al final del último capítulo, guarde
el trabajo que desea mantener de ejercicios anteriores de esas máquinas y restablézcalas
ahora.
Con el usuario student en la máquina workstation, use el comando lab para preparar el
sistema para este ejercicio.
Este comando prepara su entorno y garantiza que estén disponibles todos los recursos
requeridos.
1. Inicie sesión en la máquina serverb con el usuario student y cambie al usuario root.
RH124-RHEL9.0-es-5-20230516 573
capítulo 15 | Revisión exhaustiva
2.4. Verifique que el dispositivo de bloque vdb1 esté montado en el directorio /review5-
disk.
3.1. Ubique el archivo review5-path. Redirija todos los mensajes de error al archivo
especial /dev/null.
4. Busque todos los archivos que sean propiedad del usuario contractor1 y del grupo
contractor. Los archivos deben tener los permisos octales 640. Guarde las rutas absolutas
a estos archivos en el archivo /review5-disk/review5-perms.txt.
4.1. Busque todos los archivos que sean propiedad del usuario contractor1 y del grupo
contractor y que tengan permisos octales 640. Redirija todos los errores al archivo
especial /dev/null.
574 RH124-RHEL9.0-es-5-20230516
capítulo 15 | Revisión exhaustiva
5. Localice todos los archivos con un tamaño de 100 bytes. Guarde las rutas absolutas a estos
archivos en el archivo /review5-disk/review5-size.txt.
5.1. Localice todos los archivos con un tamaño de exactamente 100 bytes. Redirija todos
los errores al archivo especial /dev/null.
La salida anterior puede variar según la cantidad de archivos que coincidan con los
criterios de tamaño en su sistema. Observe las rutas absolutas a todos los archivos de
la salida anterior.
RH124-RHEL9.0-es-5-20230516 575
capítulo 15 | Revisión exhaustiva
Evaluación
Con el usuario student en la máquina workstation, 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, cambie al directorio de inicio de usuario student y use el comando
lab para completar este ejercicio. Este paso es importante para garantizar que los recursos de
ejercicios anteriores no impacten en los siguientes.
576 RH124-RHEL9.0-es-5-20230516