Rh124 8.2 Student Guide (1) 1
Rh124 8.2 Student Guide (1) 1
The contents of this course and all its modules and related materials, including handouts to audience members, are
Copyright © 2020 Red Hat, Inc.
No part of this publication may be stored in a retrieval system, transmitted or reproduced in any way, including, but
not limited to, photocopy, photograph, magnetic, electronic or other record, without the prior written permission of
Red Hat, Inc.
This instructional program, including all material provided herein, is supplied without any guarantees from Red Hat,
Inc. Red Hat, Inc. assumes no liability for damages or legal action arising from the use or misuse of contents or details
contained herein.
If you believe Red Hat training materials are being used, copied, or otherwise improperly distributed, please send
email to [email protected] or phone toll-free (USA) +1 (866) 626-2994 or +1 (919) 754-3700.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, JBoss, Hibernate, Fedora, the Infinity logo, and RHCE are
trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS® is a registered trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or
other countries.
The OpenStack® word mark and the Square O Design, together or apart, are trademarks or registered trademarks
of OpenStack Foundation in the United States and other countries, and are used with the OpenStack Foundation's
permission. Red Hat, Inc. is not affiliated with, endorsed by, or sponsored by the OpenStack Foundation or the
OpenStack community.
Colaboradores: Artur Glogowski, Latha Murthy, Samik Sanyal, Chetan Tiwary, Achyut Madhusudan,
Rudolf Kastl, Rob Locke, Michael Phillips
Convenciones del documento ix
Introducción xi
Red Hat System Administration I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Orientación sobre el entorno del aula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Internacionalización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
RH124-RHEL8.2-es-1-20200928 v
Obtención de acceso de superusuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Ejercicio Guiado: Obtención de acceso de superusuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Administración de cuentas de usuarios locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Ejercicio Guiado: Administración de cuentas de usuarios locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Administración de cuentas de grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Ejercicio Guiado: Administración de cuentas de grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Administración de contraseñas de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Ejercicio Guiado: Administración de contraseñas de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Trabajo de laboratorio: Administración de usuarios y grupos locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
vi RH124-RHEL8.2-es-1-20200928
Revisión de las entradas del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Ejercicio Guiado: Revisión de las entradas del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . 383
Resguardo del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Ejercicio Guiado: Resguardo del diario (journal) del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Mantenimiento de la hora correcta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Ejercicio Guiado: Mantenimiento de la hora correcta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
Trabajo de laboratorio: Análisis y almacenamiento de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
RH124-RHEL8.2-es-1-20200928 vii
16. Cómo analizar servidores y obtener soporte 587
Análisis y administración de servidores remotos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Ejercicio Guiado: Análisis y administración de servidores remotos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
Obtención de ayuda en el portal de clientes de Red Hat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
Ejercicio Guiado: Obtención de ayuda en el portal de clientes de Red Hat . . . . . . . . . . . . . . . . . . . . . 620
Detección y resolución de problemas con Red Hat Insights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622
Cuestionario: Detección y resolución de problemas con Red Hat Insights . . . . . . . . . . . . . . . . . . . . . . . 631
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
17. Revisión completa 635
Revisión completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Trabajo de laboratorio: Administración de archivos desde la línea de comandos . . . . . . . . . . . . . . . 641
Trabajo de laboratorio: Administración de usuarios y grupos, permisos y procesos . . . . . . . . . . 650
Trabajo de laboratorio: Configuración y administración de un servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Trabajo de laboratorio: Administración de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Trabajo de laboratorio: Montaje de sistemas de archivos y búsqueda de archivos . . . . . . . . . . . . 672
viii RH124-RHEL8.2-es-1-20200928
Convenciones del documento
Referencias
En "Referencias", se describe el lugar donde se puede encontrar documentación
externa relevante para un tema.
nota
Las "Notas" son consejos, atajos o enfoques alternativos para una tarea
determinada. Omitir una nota no debería tener consecuencias negativas, pero
quizás se pase por alto algún truco que puede simplificar una tarea.
Importante
En las cajas (boxes) "Importante", se detallan cosas que se olvidan con facilidad:
cambios de configuración que solo se aplican a la sesión actual o servicios que se
deben reiniciar para poder aplicar una actualización. Ignorar una caja (box) con la
etiqueta "Importante" no provocará pérdida de datos, pero puede causar irritación y
frustración.
Advertencia
No se deben ignorar las "advertencias". Es muy probable que ignorar las
advertencias provoque la pérdida de datos.
RH124-RHEL8.2-es-1-20200928 ix
x RH124-RHEL8.2-es-1-20200928
Introducción
RH124-RHEL8.2-es-1-20200928 xi
Introducción
En este curso, la computadora principal usada para las actividades prácticas de aprendizaje es
workstation. Los estudiantes también usarán otras dos máquinas para las actividades: servera
y serverb. Estos tres sistemas se encuentran en el dominio DNS lab.example.com.
Todas las computadoras de los estudiantes tienen una cuenta de usuario estándar (student) con
la contraseña student. La contraseña root de todos los sistemas de los estudiantes es redhat.
La función principal de bastion es que actúa como enrutador entre la red que conecta las
máquinas de los estudiantes y la red del aula. Si bastion está apagada, otras máquinas de
estudiantes solo podrán acceder a sistemas en la red de estudiantes individuales.
xii RH124-RHEL8.2-es-1-20200928
Introducción
nota
Al iniciar sesión en servera o serverb, es posible que vea un mensaje sobre la
activación de cockpit. El mensaje puede ser ignorado.
[student@serverb ~]$
Estados de la máquina
Estado de la Descripción
máquina virtual
RH124-RHEL8.2-es-1-20200928 xiii
Introducción
Estado de la Descripción
máquina virtual
WAITING_TO_START La máquina virtual está esperando que inicien las demás máquinas
(EN ESPERA PARA virtuales.
INICIARSE)
Según el estado de una máquina, se dispone de una selección de las siguientes acciones.
Acciones de aula/máquina
PROVISION LAB Crea el aula de ROL. Crea todas las máquinas virtuales necesarias para
(APROVISIONAR el aula y las inicia. Puede tardar algunos minutos en completarse.
TRABAJO DE
LABORATORIO)
DELETE LAB Elimina el aula de ROL. Destruye todas las máquinas virtuales del aula.
(ELIMINAR Precaución: Se perderán los trabajos generados en los discos.
TRABAJO DE
LABORATORIO)
xiv RH124-RHEL8.2-es-1-20200928
Introducción
Al inicio de un ejercicio, si se le indica que restablezca el nodo de una máquina virtual, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer) solo para la máquina virtual específica.
Al inicio de un ejercicio, si se le indica que restablezca todas las máquinas virtuales, haga clic en
ACTION (ACCIÓN) → Reset (Restablecer)
Si desea que el entorno del aula vuelva a su estado original al inicio del curso, puede hacer
clic en DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) para eliminar el entorno del
aula completo. Después de eliminar el trabajo de laboratorio, puede hacer clic en PROVISION
LAB (APROVISIONAR TRABAJO DE LABORATORIO) para aprovisionar un nuevo conjunto de
sistemas del aula.
Advertencia
La operación DELETE LAB (ELIMINAR TRABAJO DE LABORATORIO) no puede
deshacerse. Se perderán todos los trabajos que haya completado en el entorno del
aula hasta el momento.
Para ajustar el temporizador, haga clic en MODIFY (MODIFICAR) para que aparezca el cuadro
de diálogo New Autostop Time (Nuevo tiempo de detención automática). Defina la cantidad
de horas hasta que el aula deba detenerse automáticamente. Tenga en cuenta que hay un tiempo
máximo de diez horas. Haga clic en ADJUST TIME (AJUSTAR TIEMPO) para aplicar este cambio
en los ajustes del temporizador.
RH124-RHEL8.2-es-1-20200928 xv
Introducción
Internacionalización
Configuración de idioma
En el entorno de escritorio GNOME, posiblemente el usuario deba definir el idioma de su
preferencia y el método de entrada la primera vez que inicie sesión. Si no es así, la manera más
simple para un usuario individual de definir el idioma de su preferencia y el método de entrada es
usando la aplicación Region & Language.
Puede iniciar esta aplicación de dos maneras. Puede ejecutar el comando gnome-control-
center region desde una ventana de terminal, o bien, en la barra superior en el menú de
sistema de la esquina derecha, puede seleccionar el botón de configuración (que tiene un icono de
un destornillador y una llave inglesa cruzados) ubicado en la parte inferior izquierda del menú.
En la ventana que se abre, seleccione Region & Language (Región e idioma). El usuario puede
hacer clic en la caja (box) Language (Idioma) y seleccionar el idioma de su preferencia en la
lista que aparece. Esto también actualiza la configuración de Formats (Formatos) mediante
la adopción del valor predeterminado para ese idioma. La próxima vez que inicie sesión, se
efectuarán los cambios.
Estas configuraciones afectan el entorno de escritorio GNOME y todas las aplicaciones, como
gnome-terminal, que se inician dentro de este. Sin embargo, de forma predeterminada, no se
aplican a la cuenta si el acceso a ella es mediante un inicio de sesión ssh desde un sistema remoto
o un inicio de sesión basado en texto en una consola virtual (como tty5).
nota
Puede hacer que su entorno de shell use la misma configuración de LANG que su
entorno gráfico, incluso cuando inicia sesión a través de una consola virtual basada
en texto o mediante ssh. Una manera de hacer esto es colocar un código similar
al siguiente en su archivo ~/.bashrc. Este código de ejemplo definirá el idioma
empleado en un inicio de sesión en interfaz de texto de modo que coincida con el
idioma actualmente definido en el entorno de escritorio GNOME del usuario.
Es posible que algunos idiomas, como el japonés, coreano, chino y otros con un
conjunto de caracteres no latinos, no se vean correctamente en consolas virtuales
basadas en texto.
xvi RH124-RHEL8.2-es-1-20200928
Introducción
Se pueden crear comandos individuales para usar otro idioma mediante la configuración de la
variable LANG en la línea de comandos:
La aplicación Region & Language (Región e idioma) también se puede usar para habilitar métodos
de entrada alternativos. En la ventana de la aplicación Region & Language (Región e idioma), la
caja (box) Input Sources (Fuentes de entrada) muestra los métodos de entrada disponibles en
este momento. De forma predeterminada, es posible que English (US) (Inglés [EE. UU.]) sea
el único método disponible. Resalte English (US) (Inglés [EE. UU.]) y haga clic en el icono de
keyboard (teclado) para ver la distribución actual del teclado.
Para agregar otro método de entrada, haga clic en el botón +, en la parte inferior izquierda de
la ventana Input Sources. Se abrirá la ventana Add an Input Source (Agregar una fuente de
entrada). Seleccione su idioma y, luego, el método de entrada o la distribución del teclado de su
preferencia.
Cuando haya más de un método de entrada configurado, el usuario puede alternar entre ellos
rápidamente escribiendo Super+Space (en ocasiones denominado Windows+Space). También
aparecerá un indicador de estado en la barra superior de GNOME con dos funciones: por un lado,
indica el método de entrada activo; por el otro lado, funciona como un menú que puede usarse
para cambiar de un método de entrada a otro o para seleccionar funciones avanzadas de métodos
de entrada más complejos.
Algunos de los métodos están marcados con engranajes, que indican que tienen opciones de
configuración y capacidades avanzadas. Por ejemplo, el método de entrada japonés Japanese
(Kana Kanji) (japonés [Kana Kanji]) permite al usuario editar previamente texto en latín y usar las
teclas de Down Arrow (flecha hacia abajo) y Up Arrow (flecha hacia arriba) para seleccionar los
caracteres correctos que se usarán.
El indicador también puede ser de utilidad para los hablantes de inglés de Estados Unidos. Por
ejemplo, en English (United States) (Inglés [Estados Unidos]) está la distribución de teclado
English (international AltGr dead keys) (Inglés [internacional, teclas inactivas AltGr]), que
trata AltGr (o la tecla Alt derecha) en un teclado de 104/105 teclas de una PC como una tecla
modificadora "Bloq Mayús secundaria" y tecla de activación de teclas inactivas para escribir
caracteres adicionales. Hay otras distribuciones alternativas disponibles, como Dvorak.
RH124-RHEL8.2-es-1-20200928 xvii
Introducción
nota
Cualquier carácter Unicode puede ingresarse en el entorno de escritorio GNOME
si conoce el código Unicode del carácter. Escriba Ctrl+Shift+U, seguido por
el código. Después de ingresar Ctrl+Shift+U, aparecerá una u subrayada que
indicará que el sistema espera la entrada del código Unicode.
Por ejemplo, la letra del alfabeto griego en minúscula lambda tiene el código U
+03BB y puede ingresarse escribiendo Ctrl+Shift+U, luego 03BB y, por último,
Enter.
Desde la línea de comandos, el usuario root puede cambiar los ajustes de configuración regional
de todo el sistema con el comando localectl. Si localectl se ejecuta sin argumentos,
muestra los ajustes actuales de configuración regional de todo el sistema.
En GNOME, un usuario administrativo puede cambiar esta configuración en Region & Language
(Región e idioma) haciendo clic en el botón Login Screen (Pantalla de inicio de sesión) ubicado
en la esquina superior derecha de la ventana. Al cambiar la opción Language (Idioma) de la
pantalla de inicio de sesión gráfico, también se ajustará el valor de idioma predeterminado de todo
el sistema almacenado en el archivo de configuración /etc/locale.conf.
Importante
Las consolas virtuales basadas en texto, como tty4, pueden mostrar una cantidad
más limitada de fuentes que los terminales en una consola virtual que ejecuta un
entorno gráfico, o pseudoterminales para sesiones ssh. Por ejemplo, los caracteres
del japonés, coreano y chino posiblemente no se visualicen como se espera en una
consola virtual basada en texto. Por este motivo, debe considerar el uso de inglés u
otro idioma con un conjunto de caracteres latinos para los valores predeterminados
para todo el sistema.
De manera similar, las consolas virtuales basadas en texto soportan una cantidad
limitada de métodos de entrada; y esto se administra de manera separada
desde el entorno gráfico de escritorio. Las opciones de entrada globales
pueden ser configuradas a través localectl de la consola de texto virtual y del
entorno gráfico. Para obtener más información, consulte las páginas del manual
localectl(1) y vconsole.conf(5).
xviii RH124-RHEL8.2-es-1-20200928
Introducción
Paquetes de idiomas
Paquetes de RPM especiales llamados langpacks instalan paquetes de idiomas que agregan
soporte para idiomas específicos. Estos paquetes de idiomas usan dependencias para instalar
automáticamente paquetes de RPM adicionales que contienen localizaciones, diccionarios y
traducciones para otros paquetes de software en su sistema.
Use yum list langpacks-* para enumerar los paquetes de idiomas que están instalados y
que pueden instalarse:
Para agregar soporte de idioma, instale el paquete langpacks correcto. Por ejemplo, el siguiente
comando agrega soporte para francés:
Use yum repoquery --whatsupplements para determinar qué paquetes de RPM pueden ser
instalados por un paquete de idiomas:
RH124-RHEL8.2-es-1-20200928 xix
Introducción
Importante
Los paquetes langpacks usan dependencias débiles de RPM para instalar paquetes
complementarios solo cuando el paquete principal (core) que lo necesita también
está instalado.
Referencias
Páginas del manual: locale(7), localectl(1), locale.conf(5),
vconsole.conf(5), unicode(7) y utf-8(7).
Las conversiones entre los nombres de las distribuciones X11 del entorno de
escritorio gráfico y sus nombres en localectl se pueden encontrar en el archivo /
usr/share/X11/xkb/rules/base.lst.
Códigos de idioma
Asamés as as_IN.utf8
Bengalí bn bn_IN.utf8
Francés fr fr_FR.utf8
Alemán de de_DE.utf8
Guyaratí gu gu_IN.utf8
xx RH124-RHEL8.2-es-1-20200928
Introducción
Hindi hi hi_IN.utf8
Italiano it it_IT.utf8
Japonés ja ja_JP.utf8
Canarés kn kn_IN.utf8
Coreano ko ko_KR.utf8
Malayalam ml ml_IN.utf8
Maratí mr mr_IN.utf8
Odia or or_IN.utf8
Punyabí pa pa_IN.utf8
Ruso ru ru_RU.utf8
Español es es_ES.utf8
Tamil ta ta_IN.utf8
Telugú te te_IN.utf8
RH124-RHEL8.2-es-1-20200928 xxi
xxii RH124-RHEL8.2-es-1-20200928
capítulo 1
RH124-RHEL8.2-es-1-20200928 1
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
¿Qué es Linux?
Objetivos
Tras finalizar esta sección, debería poder definir y explicar el propósito de Linux, el código abierto,
las distribuciones de Linux y Red Hat Enterprise Linux.
El uso de Linux está generalizado; si usa Internet, probablemente ya esté interactuando con
sistemas Linux en su vida diaria. Quizás la forma más obvia en que interactúa con sistemas Linux
es al navegar por la World Wide Web o al usar sitios de comercio electrónico para comprar y
vender productos.
Sin embargo, Linux se usa para mucho más que eso. Linux administra 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. Se usa en la mayoría de
las 500 supercomputadoras más importantes del mundo. Linux proporciona las tecnologías
fundamentales que impulsan la revolución de la nube y las herramientas utilizadas 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.
En el centro de datos moderno, Linux y Microsoft Windows son los principales actores, y Linux
es un segmento en crecimiento en ese espacio. Algunas de las muchas razones por las que debe
aprender a usar Linux incluyen:
• Con las aplicaciones móviles o Internet de las cosas (IoT), hay muchas posibilidades de que el
sistema operativo de su dispositivo use Linux.
• Si está buscando nuevas oportunidades en TI, hay mucha demanda de habilidades de Linux.
Al ser de código abierto, no solo se puede ver cómo funciona el sistema. También se pueden
probar cambios y compartirlos libremente para que otros los utilicen. El modelo de código
abierto facilita el desarrollo de mejoras, lo que acelera la innovación.
• Linux proporciona fácil acceso a una interfaz de línea de comandos (CLI) potente y programable.
2 RH124-RHEL8.2-es-1-20200928
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
Linux se construyó alrededor de 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
y remotos. A diferencia de otros sistemas operativos, estas capacidades se han incorporado
desde el principio, y la idea ha sido siempre permitir estas importantes capacidades.
• Linux es un sistema operativo modular que hace posible reemplazar o eliminar componentes
fácilmente.
Los componentes del sistema se pueden actualizar y mejorar según sea necesario. Un sistema
Linux puede ser una estación de trabajo de desarrollo de uso general o un dispositivo de
software en su mínima expresión.
El código fuente es el conjunto de instrucciones en lenguaje humano que se usan para hacer un
programa. Puede interpretarse 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 este software bajo una licencia de software.
Otros tipos de software tienen un código fuente que solo la persona, el equipo o la organización
que lo crearon pueden verlo, cambiarlo o distribuirlo. Este software a veces se denomina software
"patentado" o de "código cerrado". Por lo general, la licencia solo permite que el usuario final
ejecute el programa y no proporciona acceso al código fuente, o brinda acceso muy limitado a
este.
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.
El hecho de que el software sea de código abierto no significa que de alguna manera no se
pueda usar o proporcionar para 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 reutilice en productos de código cerrado. Se puede vender el código fuente
abierto, pero los términos de las verdaderas licencias de código abierto generalmente permiten
que el cliente redistribuya el código fuente. Más comúnmente, los proveedores 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-RHEL8.2-es-1-20200928 3
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
La conclusión es que el código abierto permite la creación de mejor software con un mayor
retorno de la inversión mediante la colaboración.
Hay dos clases amplias 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 reutilización 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, también deba extender esta libertad para que los
demás también puedan copiar, cambiar y distribuir el código. La ventaja básica de estas licencias
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 reutilización del código fuente. Los
usuarios pueden usar el código fuente para cualquier propósito siempre que se conserven las
declaraciones de derechos de autor y de licencia, incluso al reutilizar ese código bajo licencias más
restrictivas o incluso de propiedad exclusiva. Esto simplifica mucho la reutilización de este código,
pero con el riesgo de incentivar mejoras de propiedad exclusiva. Algunas licencias permisivas de
código abierto de uso común son la licencia MIT/X11, la licencia BSD simplificada y la licencia de
software Apache 2.0.
La función de Red Hat es ayudar a los clientes a conectarse con la comunidad de código abierto y
sus socios para usar con eficacia las soluciones de software de código abierto. Red Hat participa
4 RH124-RHEL8.2-es-1-20200928
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
activamente y apoya a la comunidad de código abierto; 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.
En 1991, un joven estudiante de informática 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 componente central del sistema operativo, que administra el hardware, la memoria y la
programación de los programas en ejecución. A continuación, este kernel de Linux podría
complementarse con otro software de código abierto, como utilidades y programas del Proyecto
GNU, la interfaz gráfica de X Window System de MIT y muchos otros componentes de código
abierto, como el servidor de correo Sendmail o el servidor web Apache HTTP, para desarrollar un
sistema operativo completo de código abierto tipo Unix.
Sin embargo, uno de los desafíos para los usuarios de Linux era reunir todas estas piezas de
muchas fuentes diferentes. Muy temprano en su historia, los desarrolladores de Linux comenzaron
a trabajar para proporcionar 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 diferentes, con diferentes objetivos y criterios tanto para
seleccionar como para apoyar el software proporcionado por su distribución. Sin embargo, las
distribuciones generalmente tienen muchas características comunes:
• Las distribuciones pueden ser pequeñas y de propósito único o incluir miles de programas de
código abierto.
• Las distribuciones deben proporcionar un medio para instalar y actualizar la distribución y sus
componentes.
RH124-RHEL8.2-es-1-20200928 5
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
• 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. Ayuda a mejorar la calidad general del software para todos.
• Red Hat auspicia e integra proyectos de código abierto en una distribución de Linux 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 comercializados.
• Red Hat estabiliza el software 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.
Fedora
Fedora es un proyecto comunitario que produce y lanza un sistema operativo completo y gratuito
basado en Linux. Red Hat patrocina a la comunidad y trabaja con sus representantes para integrar
el último software ascendente en una distribución segura y de rápida actualización. El proyecto
Fedora contribuye al mundo del código abierto y libre, y todos pueden participar.
Red Hat basa las versiones principales de RHEL en Fedora. Sin embargo, Red Hat puede elegir qué
paquetes incluir, realizar mejoras adicionales (con las que contribuye a los proyectos ascendentes
6 RH124-RHEL8.2-es-1-20200928
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
y Fedora) y tomar decisiones de configuración que satisfagan las necesidades de los clientes.
Red Hat ayuda a los proveedores y clientes a interactuar con la comunidad de código abierto, así
como a trabajar con el desarrollo ascendente para diseñar soluciones y resolver problemas.
Red Hat Enterprise Linux usa un modelo de distribución basado en suscripciones. Como se trata
de software de código abierto, esto no es un cargo por licencia. En cambio, este cargo es por el
soporte, el mantenimiento, las actualizaciones, los parches de seguridad, el acceso a la base de
conocimiento del portal de clientes de Red Hat (http://access.redhat.com/), las certificaciones,
etc. El cliente paga para recibir soporte y experiencia, compromiso y asistencia a largo plazo
cuando lo necesite.
Cuando las actualizaciones principales están disponibles, los clientes pueden pasar a usarlas
según su conveniencia sin tener que pagar más. Esto simplifica la administración de los aspectos
económicos y prácticos de las actualizaciones del sistema.
CentOS
CentOS es una distribución de Linux impulsada por la comunidad y derivada en gran parte de la
base de código de Red Hat Enterprise Linux de código abierto y de otras fuentes. Es gratuita,
fácil de instalar y cuenta con el personal y el respaldo de una comunidad activa de usuarios
voluntarios que opera de manera independiente a Red Hat.
La siguiente tabla enumera algunas diferencias clave entre CentOS y Red Hat Enterprise Linux.
RH124-RHEL8.2-es-1-20200928 7
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
Red Hat también ofrece suscripciones gratuitas a varios productos para fines de desarrollo a
través del programa para desarrolladores de Red Hat en https://developer.redhat.com. Estas
suscripciones permiten que los desarrolladores diseñen, creen prototipos, prueben y demuestren
rápidamente su software para implementarlo en los mismos productos empresariales.
Otro enfoque es implementar una instancia de Red Hat Enterprise Linux disponible a través
de un proveedor en la nube. Por ejemplo, Red Hat tiene AMI oficiales disponibles para Red Hat
Enterprise Linux en el Amazon AWS Marketplace.
Para obtener más información, visite la página "Primeros pasos con Red Hat Enterprise Linux", que
se menciona al final de esta sección.
Referencias
Introducción a Red Hat Enterprise Linux
https://access.redhat.com/products/red-hat-enterprise-linux#getstarted
8 RH124-RHEL8.2-es-1-20200928
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
Cuestionario
1. ¿Cuáles de los siguientes 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 siguientes 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-RHEL8.2-es-1-20200928 9
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
Solución
1. ¿Cuáles de los siguientes 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 siguientes 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.
10 RH124-RHEL8.2-es-1-20200928
capítulo 1 | Primeros pasos con Red Hat Enterprise Linux
Resumen
En este capítulo, aprendió lo siguiente:
• El software de código abierto es software con 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, lista para empresas
de Red Hat.
RH124-RHEL8.2-es-1-20200928 11
12 RH124-RHEL8.2-es-1-20200928
capítulo 2
RH124-RHEL8.2-es-1-20200928 13
capítulo 2 | Acceso a la línea de comandos
Objetivos
Tras finalizar esta sección, deberá ser capaz de iniciar sesión en un sistema Linux y ejecutar
comandos simples a través de la shell.
La shell predeterminada para usuarios de Red Hat Enterprise Linux es GNU Bourne-Again Shell
(bash). Bash es una versión mejorada de una de las shells más exitosas que se usa en los sistemas
tipo UNIX: la shell Bourne (sh).
Si una shell se usa de manera interactiva, muestra una cadena cuando espera un comando del
usuario. Esto recibe el nombre de prompt de shell. Cuando un usuario normal inicia una shell, el
prompt predeterminado finaliza con un carácter $, como se muestra a continuación.
[user@host ~]$
[root@host ~]#
El uso de bash para ejecutar comandos puede ser eficaz. La shell bash proporciona un
lenguaje de secuencia de comandos capaz de admitir la automatización de tareas. La shell tiene
capacidades adicionales que pueden simplificar operaciones o posibilitar aquellas que son difíciles
de realizar con herramientas gráficas.
nota
La shell bash es similar en concepto al intérprete de la línea de comandos
disponible en versiones recientes de Microsoft Windowscmd.exe, pero bash
posee un lenguaje de secuencia de comandos más sofisticado. También es
similar a Windows PowerShell en Windows 7 y Windows Server 2008 R2. A los
administradores de Apple Mac que usan la utilidad Terminal les agradará saber que
bash es la shell predeterminada en MacOS.
14 RH124-RHEL8.2-es-1-20200928
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 hará. Las opciones generalmente
comienzan con uno o dos guiones (-a o --all, por ejemplo) para que se distingan de los
argumentos. Los comandos pueden estar seguidos por uno o más argumentos, que generalmente
indican un destino sobre el cual el comando debe operar.
Por ejemplo, el comando usermod -L user01 tiene un comando (usermod), una opción (-L)
y un argumento (user01). El efecto de este comando es bloquear la contraseña de la cuenta del
usuario user01.
La computadora puede tener un teclado y una pantalla de hardware para la entrada y salida
directamente conectados a ella. Esta es la consola física de la máquina Linux. La consola
física admite varias consolas virtuales que pueden ejecutar terminales independientes. Cada
consola virtual admite un inicio de sesión independiente. Puede cambiar entre ellas presionando
Ctrl+Alt y una tecla de función (F1 a F6) al mismo tiempo. La mayoría de estas consolas
virtuales ejecutan un terminal con un prompt de inicio de sesión de texto y, si ingresa su nombre de
usuario y contraseña correctamente, iniciará sesión y obtendrá un prompt de shell.
La computadora puede proporcionar un prompt de inicio de sesión gráfico en una de las consolas
virtuales. Puede usar esto para iniciar sesión en un entorno gráfico. El entorno gráfico también
se ejecuta en una consola virtual. Para obtener un prompt de shell, debe iniciar un programa de
terminal en el entorno gráfico. El prompt de shell se proporciona en una ventana de aplicación de
su programa de terminal gráfico.
nota
Muchos administradores de sistemas eligen no ejecutar un entorno gráfico en sus
servidores. Esto permite que los servicios del servidor usen los recursos que de otra
forma usaría el entorno gráfico.
En Red Hat Enterprise Linux 8, si el entorno gráfico está disponible, la pantalla de inicio de sesión
se ejecutará en la primera consola virtual, llamada tty1. Hay cinco prompts de inicio de sesión de
texto adicionales disponibles en las consolas virtuales dos a seis.
Si inicia sesión con la pantalla de inicio de sesión gráfica, su entorno gráfico se iniciará en
la primera consola virtual que no se encuentre en uso en una sesión de inicio de sesión.
Normalmente, la sesión gráfica reemplazará al prompt de inicio de sesión en la segunda consola
virtual (tty2). Sin embargo, si esa consola está en uso en una sesión de inicio de sesión de texto
activa (no solo en un prompt de inicio de sesión), en su lugar, se usa la siguiente consola virtual
libre.
La pantalla de inicio de sesión gráfico se sigue ejecutando en la primera consola virtual (tty1). Si
ya ha iniciado sesión en una sesión gráfica e inicia sesión con otro usuario en la pantalla de inicio
de sesión gráfica, o si usa el ítem de menú Switch User (Cambiar usuario) para cambiar de
RH124-RHEL8.2-es-1-20200928 15
capítulo 2 | Acceso a la línea de comandos
usuario en el entorno gráfico sin cerrar sesión, se iniciará otro entorno gráfico para ese usuario en
la siguiente consola virtual libre.
Cuando cierra sesión en un entorno gráfico, la sesión se cerrará y la consola física volverá
automáticamente a la pantalla de inicio de sesión gráfica de la primera consola virtual.
nota
En Red Hat Enterprise Linux 6 y 7, la pantalla de inicio de sesión gráfica se ejecuta
en la primera consola virtual; sin embargo, al iniciar sesión, el entorno gráfico inicial
reemplaza a la pantalla de inicio de sesión de la primera consola virtual en lugar de
iniciarse en una nueva consola virtual.
En Red Hat Enterprise Linux 5 y versiones anteriores, las seis primeras consolas
virtuales proporcionaban siempre prompts de inicio de sesión de texto. Si el entorno
gráfico está en ejecución, se ejecuta en la consola virtual siete (a la que se accede a
través deCtrl+Alt+F7).
La consola serial normalmente se usaría para reparar el servidor si su propia tarjeta de red tuviera
una configuración incorrecta y el inicio de sesión a través de su propia conexión de red fuera
imposible. Sin embargo, la mayoría de las veces se accede a los servidores sin periféricos por otros
medios a través de la red.
En Linux, la forma más común de obtener un prompt de shell en un sistema remoto es usar Secure
Shell (SSH). La mayoría de los sistemas Linux (incluidos los que usan Red Hat Enterprise Linux) y
macOS proporcionan el programa de línea de comandos OpenSSH ssh para este propósito.
En este ejemplo, un usuario con un prompt de shell en la máquina host usa ssh para iniciar sesión
en el sistema Linux remoto remotehost como el usuario remoteuser:
El comando ssh cifra la conexión para proteger la comunicación contra el espionaje o el robo de
contraseñas y contenido.
Algunos sistemas (como las nuevas instancias en la nube) no permiten que los usuarios usen
una contraseña para iniciar sesión con ssh para mejorar la seguridad. Una forma alternativa de
16 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
autenticarse en una máquina remota sin ingresar una contraseña es a través de la autenticación de
clave pública.
Con este método de autenticación, los usuarios tienen un archivo de identidad especial que
contiene una clave privada, equivalente a una contraseña, que mantienen en secreto. Su cuenta
en el servidor está configurada con una clave pública, que no tiene que ser secreta. Al iniciar
sesión, los usuarios pueden configurar ssh para proporcionar la clave privada y, si su clave pública
coincidente está instalada en esa cuenta en ese servidor remoto, iniciarán sesión sin necesitar una
contraseña.
En el siguiente ejemplo, un usuario con un prompt de shell en la máquina host inicia sesión en
remotehost como remoteuser con ssh, mediante autenticación de clave pública. La opción -i
se usa para especificar el archivo de clave privada del usuario, que es mylab.pem. La clave pública
coincidente ya está configurada como una clave autorizada en la cuenta remoteuser.
Para que esto funcione, el archivo de clave privada debe ser legible solo para el propietario del
archivo. En el ejemplo anterior, donde la clave privada está en el archivo mylab.pem, el comando
chmod 600 mylab.pem podría usarse para garantizar esto. La forma de configurar los permisos
de archivo se describe en más detalle en un capítulo posterior.
Los usuarios también pueden tener configuradas claves privadas que se prueban
automáticamente, pero ese asunto está fuera del alcance de esta sección. En las referencias que
aparecen al final de esta sección, hay más información acerca de este tema.
RH124-RHEL8.2-es-1-20200928 17
capítulo 2 | Acceso a la línea de comandos
nota
La primera vez que inicie sesión en una nueva máquina, ssh le mostrará una
advertencia de que no puede establecer la autenticidad del host:
Cada vez que se conecta a un host remoto con ssh, el host remoto envía a ssh su
clave de host para autenticarse y para ayudar a configurar la comunicación cifrada.
El comando ssh compara eso con una lista de claves de host guardadas para
asegurarse de que no haya cambiado. Si la clave del host ha cambiado, esto podría
indicar que alguien está tratando de fingir ser ese host para capturar la conexión, lo
que también se conoce como ataque de intermediario. En SSH, las claves de host
protegen contra los ataques de intermediario; estas claves de host son únicas para
cada servidor, y deben cambiarse periódicamente y siempre que se sospeche una
violación a la seguridad.
Recibirá esta advertencia si su máquina local no tiene una clave de host guardada
para el host remoto. Si introduce yes, la clave de host que envió el host remoto se
aceptará y se guardará para referencia futura. El inicio de sesión continuará y no
deberá volver a ver este mensaje cuando se conecte a este host. Si introduce no, se
rechazará la clave de host y se cerrará la conexión.
Si la máquina local tiene una clave de host guardada y no coincide con la que
realmente envió el host remoto, la conexión se cerrará automáticamente con una
advertencia.
Cerrar sesión
Cuando haya terminado de usar la shell y desee salir, puede elegir una de las varias formas de
finalizar la sesión. Puede introducir el comando exit para finalizar la sesión de shell actual. Como
alternativa, puede terminar una sesión presionando Ctrl+D.
18 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Referencias
Páginas del manual intro(1), bash(1), console(4), pts(4), ssh(1) y ssh-
keygen(1)
nota
Al final de la siguiente sección, se incluyen instrucciones sobre cómo leer las páginas
man y otros documentos de ayuda en línea.
RH124-RHEL8.2-es-1-20200928 19
capítulo 2 | Acceso a la línea de comandos
Cuestionario
1. ¿Qué término describe al intérprete que ejecuta los comandos escritos como
secuencias?
a. Comando
b. Consola
c. Shell
d. Terminal
2. ¿Qué término describe la indicación visual que muestra que una shell interactiva espera
que el usuario escriba un comando?
a. Argumento
b. Comando
c. Opción
d. Prompt
20 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
6. ¿Qué término describe el hardware de pantalla y el teclado que se usan para interactuar
con un sistema?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
7. ¿Qué término describe a una de las varias consolas lógicas, de las cuales cada una
puede respaldar una sesión de inicio de sesión independiente?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
8. ¿Qué término describe a una interfaz que proporciona una pantalla de salida y un
teclado de entrada en una sesión de shell?
a. Consola
b. Consola virtual
c. Shell
d. Terminal
RH124-RHEL8.2-es-1-20200928 21
capítulo 2 | Acceso a la línea de comandos
Solución
1. ¿Qué término describe al intérprete que ejecuta los comandos escritos como
secuencias?
a. Comando
b. Consola
c. Shell
d. Terminal
2. ¿Qué término describe la indicación visual que muestra que una shell interactiva espera
que el usuario escriba un comando?
a. Argumento
b. Comando
c. Opción
d. Prompt
22 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
6. ¿Qué término describe el hardware de pantalla y el teclado que se usan para interactuar
con un sistema?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
7. ¿Qué término describe a una de las varias consolas lógicas, de las cuales cada una
puede respaldar una sesión de inicio de sesión independiente?
a. Consola física
b. Consola virtual
c. Shell
d. Terminal
8. ¿Qué término describe a una interfaz que proporciona una pantalla de salida y un
teclado de entrada en una sesión de shell?
a. Consola
b. Consola virtual
c. Shell
d. Terminal
RH124-RHEL8.2-es-1-20200928 23
capítulo 2 | Acceso a la línea de comandos
Objetivos
Tras finalizar esta sección, deberá ser capaz de iniciar sesión en el sistema Linux usando el entorno
de escritorio GNOME 3 para ejecutar comandos desde un prompt de shell en un programa de
terminal.
GNOME Shell proporciona las funciones principales de la interfaz de usuario para el entorno de
escritorio GNOME. La aplicación GNOME Shell es muy personalizable. Red Hat Enterprise Linux 8
toma como valor predeterminado de aspecto y comportamiento de GNOME Shell el tema
"Estándar", que se utiliza en esta sección. Red Hat Enterprise Linux 7 tomó como valor
predeterminado un tema alternativo denominado "Clásico" que se parecía más al aspecto y
comportamiento de las versiones anteriores de GNOME. Cualquier tema se puede seleccionar
persistentemente en el inicio de sesión al hacer clic en el ícono de engranaje junto al botón Sign
In (Iniciar sesión) que está disponible después de seleccionar su cuenta pero antes de ingresar la
contraseña.
La primera vez que inicia sesión como usuario nuevo se ejecuta un programa de configuración
inicial para ayudar a configurar parámetros de cuenta básicos. Una vez completa, se inicia la
aplicación GNOME Help en la pantalla Getting Started with GNOME (Primeros pasos con
GNOME). Esta pantalla incluye videos y documentación para ayudar a orientar a los nuevos
usuarios hacia el entorno de GNOME3. Para iniciar rápidamente GNOME Help, haga clic en el
botón Activities (Actividades) a la izquierda de la barra superior y en el guión que aparece a la
izquierda de la pantalla; haga clic en el icono de la boya salvavidas para iniciarla.
24 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Barra superior: la barra que se muestra en la parte superior de la pantalla. Aparece en la vista
general de Activities (Actividades) y en los espacios de trabajo. La barra superior proporciona
el botón Activities (Actividades) 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 (Actividades): es un modo especial que 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 (Actividades) en la esquina superior izquierda de
la barra superior o presionar la tecla Super. La tecla Super (a veces denominada tecla de
Windows o tecla Command [Comando]) se encuentra cerca de la esquina inferior izquierda
de los teclados de 104/105 teclas de una PC IBM o de los teclados de Apple. Las tres áreas
principales de la vista general de Activities (Actividades) son el guión a la izquierda de la
pantalla, la vista general de ventanas en el centro de la pantalla y el selector de espacios
de trabajo a la derecha de la pantalla.
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 (Configuración), bloquear la pantalla o apagar el sistema.
Guión: es una lista configurable de iconos de las aplicaciones favoritas del usuario,
aplicaciones que se están ejecutando actualmente y un botón de cuadrícula en la parte
inferior del guión que se puede usar para seleccionar aplicaciones de forma arbitraria.
Las aplicaciones se pueden iniciar al hacer clic en uno de los iconos o al usar el botón de
cuadrícula para buscar una aplicación que se usa con menos frecuencia. Al guión también a
veces se lo denomina dock.
Descripción general de ventanas: área en el centro de la descripción general de Activities
(Actividades) que muestra miniaturas de todas las ventanas activas en el espacio de trabajo
actual. Esto permite que las ventanas se lleven más fácilmente al primer plano en un espacio
de trabajo abarrotado, o que se muevan a otro espacio de trabajo.
RH124-RHEL8.2-es-1-20200928 25
capítulo 2 | Acceso a la línea de comandos
Puede ver y editar los métodos abreviados de teclado de GNOME que utiliza 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 Devices → Keyboard (Teclado de dispositivos) en el panel izquierdo. En el panel
derecho aparecerá la configuración actual de métodos abreviados.
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. Esto se debe a que el
sistema operativo local o la aplicación que utiliza para acceder al escritorio gráfico
de la máquina virtual pueden capturar las pulsaciones de teclas especiales que
utilizan esos métodos abreviados.
26 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Importante
En los entornos actuales de capacitación virtual y autoaprendizaje de Red Hat, el
uso de la tecla Super puede ser un poco complicado. Probablemente no pueda
utilizar la tecla Super del teclado porque, a menudo, el navegador web no la
transfiere a la máquina virtual en el entorno del aula.
Si solo quiere presionar y soltar Super en el teclado en pantalla, tiene que hacer clic
dos veces. El primer clic "mantiene pulsada" la tecla Super y el segundo la suelta.
Espacios de trabajo
Los espacios de trabajo son pantallas de escritorio por separado que tienen diferentes ventanas
de aplicaciones. Se pueden usar para organizar el entorno de trabajo al agrupar las ventanas
abiertas de la aplicación por tarea. Por ejemplo, las ventanas que se están usando para realizar una
actividad de mantenimiento del sistema particular (como configurar un nuevo servidor remoto)
se pueden agrupar en un espacio de trabajo, mientras que las aplicaciones de correo electrónico y
otras aplicaciones de comunicación se pueden agrupar en otro espacio de trabajo.
Hay dos métodos simples para cambiar entre espacios de trabajo. Un método, tal vez el más
rápido, es presionar Ctrl+Alt+UpArrow (Flecha arriba) o Ctrl+Alt+DownArrow
(Flecha abajo) para cambiar entre espacios de trabajo de forma secuencial. El segundo
método es cambiar a la vista general de Activities (Actividades) y hacer clic en el espacio de
trabajo deseado.
Una ventaja de usar la vista general de Activities (Actividades) es que se puede hacer clic en las
ventanas y arrastrarlas entre espacios de trabajo mediante el uso del selector de espacios de
trabajo en el lado derecho de la pantalla y la descripción general de ventanas en el centro de
la pantalla.
RH124-RHEL8.2-es-1-20200928 27
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 navegador 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. Esto se puede realizar de varias maneras. Los dos métodos más usados se
enumeran a continuación:
• Presione la combinación de teclas Alt+F2 para abrir la ventana Enter a Command (Introduzca
un comando) e introduzca gnome-terminal.
Cuando se 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 cortina de pantalla bloqueada que muestra la hora del sistema y el nombre del
usuario que inició sesión. Para desbloquear la pantalla, presione Enter (Intro) o Space (Espacio)
para levantar la cortina de la pantalla bloqueada y, luego, introduzca la contraseña del usuario en la
pantalla bloqueada.
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 (User) [Usuario] → Log Out (Cerrar sesión).
Aparece una ventana que ofrece la opción Cancel (Cancelar) o Log Out (Cerrar sesión) para
confirmar el cierre de sesión.
28 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Referencias
Ayuda de GNOME
• yelp
• yelp help:gnome-help/getting-started
RH124-RHEL8.2-es-1-20200928 29
capítulo 2 | Acceso a la línea de comandos
Ejercicio Guiado
Resultados
Deberá ser capaz de iniciar sesión en el sistema Linux con el entorno de escritorio GNOME 3
y ejecutar comandos desde un prompt de shell en un programa de terminal.
Andes De Comenzar
Asegúrese de que la máquina virtual workstation esté ejecutándose. Realice las
siguientes tareas en workstation.
Importante
El script finish restablece la contraseña del usuario student a student. El script
debe ejecutarse al final del ejercicio.
2.1. La manera más simple de hacerlo es abrir una ventana del Terminal y usar 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 (Actividades). Escriba terminal
y luego presione Enter (Intro) para iniciarTerminal.
2.2. En la ventana de terminal que aparece, escriba passwd en el prompt de shell. Cambie
la contraseña del usuario student de student a 55TurnK3y.
30 RH124-RHEL8.2-es-1-20200928
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.
4. Bloquee la pantalla.
4.1. En el menú del sistema en la esquina superior derecha, presione el botón de bloqueo
de pantalla en la parte inferior del menú.
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, haga clic en el botón de
apagado en la parte inferior del menú. Aparecerá un cuadro de diálogo con las
opciones Restart (Reiniciar) o Power Off (Apagar) para reiniciar o apagar la
máquina.
Finalizar
En workstation, ejecute el script lab cli-desktop finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 31
capítulo 2 | Acceso a la línea de comandos
Objetivos
Tras finalizar esta sección, deberá ser capaz de ahorrar tiempo en la ejecución de comandos a
partir de un prompt de shell con los accesos directos de Bash.
Cuando esté listo para ejecutar un comando, presione la tecla Intro. Escriba cada comando en
una línea separada. La salida del comando se muestra antes de que aparezca el siguiente prompt
de shell.
[user@host]$ whoami
user
[user@host]$
Si quiere 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 un significado especial para bash. En este caso, la salida de ambos comandos se mostrará
antes de que aparezca el siguiente prompt de shell.
[user@host]$ command1;command2
El comando passwd cambia la contraseña propia del usuario. La contraseña original de la cuenta
debe especificarse antes de que se permita un cambio. De manera predeterminada, passwd se
32 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
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 puede 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 detecta el comienzo del contenido de un archivo y muestra qué tipo de archivo es.
Los archivos que se clasificarán pasan como argumentos para el comando.
Algunos archivos son muy largos y pueden ocupar más espacio para mostrar que el proporcionado
por 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.
El comando less le permite 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 (Flecha arriba)
RH124-RHEL8.2-es-1-20200928 33
capítulo 2 | Acceso a la línea de comandos
y DownArrow (Flecha abajo) 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. Puede usar la opción -l, -w o -
c para mostrar solo la cantidad de líneas, palabras o caracteres, respectivamente.
34 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
La opción Autocompletado con tab puede usarse para completar nombres de archivo cuando
se escriben como argumentos para comandos. Si se presiona la tecla Tab, se 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 la opción Autocompletado con tab
para finalizar el comando.
Para ello, utilizará un carácter de barra invertida (\), al que se conoce como carácter de escape,
para ignorar el significado del carácter que se encuentra inmediatamente después de la barra
invertida. Aprendió que al ingresar un carácter de nueva línea, presionando la tecla Enter (Intro),
se le indica a la shell que la entrada del comando está completa y que ejecute el comando. Con
el escape del carácter de nueva línea, se le indica a la shell que se traslade a una nueva línea de
comando sin la ejecución del comando. La shell reconoce la solicitud mostrando un prompt de
continuación, denominado prompt secundario, mediante el carácter mayor que (>) de forma
predeterminada, en una nueva línea vacía. Los comandos pueden continuarse a lo largo de muchas
líneas.
[user@host]$ head -n 3 \
> /usr/share/dict/words \
> /usr/share/dict/linux.words
==> /usr/share/dict/words <==
1080
10-point
10th
RH124-RHEL8.2-es-1-20200928 35
capítulo 2 | Acceso a la línea de comandos
Importante
El ejemplo de la pantalla anterior muestra cómo aparece un comando continuo para
un usuario típico. Sin embargo, la representación de este realismo en los materiales
de aprendizaje, como este manual, suele causar confusión. Los estudiantes nuevos
pueden insertar erróneamente el carácter adicional mayor que como parte del
comando escrito. La shell interpreta un carácter mayor que escrito como redirección
del proceso, que el usuario no pretendía. La redirección del proceso se trata en un
próximo capítulo.
Para evitar esta confusión, este manual no mostrará prompts secundarios en las
salidas de pantalla. Un usuario aún ve el prompt secundario 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. Compare con el ejemplo
de la pantalla anterior.
[user@host]$ head -n 3 \
/usr/share/dict/words \
/usr/share/dict/linux.words
==> /usr/share/dict/words <==
1080
10-point
10th
Historial de comandos
El comando history muestra una lista de los comandos ejecutados anteriormente con un
número de comando como prefijo.
El carácter de signo de admiración, (!), es un metacarácter que se usa para expandir los comandos
anteriores sin tener que 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 secuencia especificada.
36 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
27 uptime
28 ls -l
29 date
30 history
[user@host ~]$ !ls
ls -l
total 0
drwxr-xr-x. 2 user user 6 Mar 29 21:16 Desktop
...output omitted...
[user@host ~]$ !26
ls /etc
abrt hosts pulse
adjtime hosts.allow purple
aliases hosts.deny qemu-ga
...output omitted...
Las teclas de flecha se pueden usar para navegar a través de comandos anteriores en el historial
de la shell. UpArrow (Flecha arriba) edita el comando anterior en la lista del historial. DownArrow
(Flecha abajo) edita el siguiente comando en la lista del historial. LeftArrow (Flecha izquierda)
y RightArrow (Flecha derecha) mueven el cursor hacia la izquierda y hacia la derecha en el
comando actual de la lista del historial, de modo que pueda editarlo antes de ejecutarlo.
Puede usar 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 reemplazará
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.
RH124-RHEL8.2-es-1-20200928 37
capítulo 2 | Acceso a la línea de comandos
Hay varios otros comandos disponibles para editar la línea de comandos, pero estos son los
comandos más útiles para los nuevos usuarios. Los otros comandos están en la página de manual
bash(1).
Referencias
Páginas del manual: bash(1), date(1), file(1), cat(1), more(1), less(1), head(1),
passwd(1), tail(1) y wc(1)
38 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Cuestionario
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+.
3. ¿Qué método abreviado o comando de Bash se usa para borrar los caracteres desde el
cursor hasta el final de la línea de comandos?
a. Presionar Ctrl+LeftArrow (Flecha izquierda)
b. Presionar Ctrl+K
c. Presionar Ctrl+A
d. ;
e. Presionar Esc+.
4. ¿Qué comando o método abreviado de Bash se usa para volver a ejecutar un comando
reciente mediante la coincidencia del nombre del comando?
a. Presionar Tab
b. !number
c. !string
d. history
e. Presionar Esc+.
RH124-RHEL8.2-es-1-20200928 39
capítulo 2 | Acceso a la línea de comandos
40 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Solución
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+.
3. ¿Qué método abreviado o comando de Bash se usa para borrar los caracteres desde el
cursor hasta el final de la línea de comandos?
a. Presionar Ctrl+LeftArrow (Flecha izquierda)
b. Presionar Ctrl+K
c. Presionar Ctrl+A
d. ;
e. Presionar Esc+.
4. ¿Qué comando o método abreviado de Bash se usa para volver a ejecutar un comando
reciente mediante la coincidencia del nombre del comando?
a. Presionar Tab
b. !number
c. !string
d. history
e. Presionar Esc+.
RH124-RHEL8.2-es-1-20200928 41
capítulo 2 | Acceso a la línea de comandos
42 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Trabajo de laboratorio
Resultados
• Ejecute con éxito programas simples con la línea de comandos de la shell Bash.
• Ejecute comandos usados para identificar tipos de archivos y visualizar partes de archivos
de texto.
• Practique el uso de algunos "atajos" del historial de comandos de Bash para repetir
comandos o partes de comandos con más eficiencia.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab cli-review grade para confirmar que ha realizado
correctamente este ejercicio.
RH124-RHEL8.2-es-1-20200928 43
capítulo 2 | Acceso a la línea de comandos
Finalizar
En workstation, ejecute el script lab cli-review finish para terminar el trabajo de
laboratorio.
44 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Solución
Resultados
• Ejecute con éxito programas simples con la línea de comandos de la shell Bash.
• Ejecute comandos usados para identificar tipos de archivos y visualizar partes de archivos
de texto.
• Practique el uso de algunos "atajos" del historial de comandos de Bash para repetir
comandos o partes de comandos con más eficiencia.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Muestre la hora actual en reloj de 12 horas (por ejemplo, 11:42:11 AM). Sugerencia: la cadena
de formato que se muestra en la salida es %r.
Use el argumento +%r con el comando date para mostrar la hora actual en reloj de 12 horas.
RH124-RHEL8.2-es-1-20200928 45
capítulo 2 | Acceso a la línea de comandos
Esc+. (presione las teclas Esc y . al mismo tiempo) para volver a usar el argumento del
comando anterior.
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 tres o menos pulsaciones del teclado.
Repita el comando anterior exactamente. Presione la tecla Flecha arriba una vez
para retroceder un comando en el historial de comandos y presione Intro (se usan dos
pulsaciones) o introduzca el comando de método abreviado !! y presione Intro (se usan
46 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
tres pulsaciones) para ejecutar el comando más reciente del historial de comandos. (Intente
ambos métodos).
[student@workstation]$ !!
tail zcat
With no FILE, or when FILE is -, read standard input.
case $1 in
--help) printf '%s\n' "$usage" || exit 1;;
--version) printf '%s\n' "$version" || exit 1;;
esac
8. Repita el comando anterior, pero use la opción -n 20 para visualizar las últimas 20 líneas
del archivo. Use la edición de la línea de comandos para hacerlo con una cantidad mínima de
pulsaciones.
UpArrow muestra el comando anterior. Ctrl+A hace que el cursor salte al principio de la
línea. Ctrl+RightArrow (Flecha derecha) salta a la siguiente palabra; luego agregue la
opción -n 20 y presione Enter (Intro) para ejecutar el comando.
case $1 in
--help) printf '%s\n' "$usage" || exit 1; exit;;
--version) printf '%s\n' "$version" || exit 1; exit;;
esac
RH124-RHEL8.2-es-1-20200928 47
capítulo 2 | Acceso a la línea de comandos
Evaluación
En workstation, ejecute el script lab cli-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab cli-review finish para terminar el trabajo de
laboratorio.
48 RH124-RHEL8.2-es-1-20200928
capítulo 2 | Acceso a la línea de comandos
Resumen
En este capítulo, aprendió lo siguiente:
• La shell Bash es un intérprete de comandos que solicita a los usuarios interactivos que
especifiquen los comandos de Linux.
• Muchos comandos tienen una opción --help que muestra un mensaje o una pantalla de uso.
• El comando file detecta el comienzo del contenido de un archivo y muestra qué tipo de
archivo es.
• Puede usar la tecla Tab para completar los nombres de archivo al escribirlos como argumentos
para comandos.
RH124-RHEL8.2-es-1-20200928 49
50 RH124-RHEL8.2-es-1-20200928
capítulo 3
Administración de archivos
desde la línea de comandos
Meta Copiar, mover, crear, eliminar y organizar archivos
mientras se trabaja desde la shell Bash.
RH124-RHEL8.2-es-1-20200928 51
capítulo 3 | Administración de archivos desde la línea de comandos
Objetivos
Tras finalizar esta sección, deberá ser capaz de describir la manera en que Linux organiza los
archivos y los propósitos de diversos directorios en la jerarquía del sistema de archivos.
Figura 3.1: Directorios importantes del sistema de archivos de Red Hat Enterprise Linux 8
El directorio / es el directorio raíz (root) que está en la parte superior de la jerarquía del sistema
de archivos. El carácter / también se usa también como un separador de directorio en los nombres
de archivo. Por ejemplo, si etc es un subdirectorio del directorio /, podemos llamar a ese
directorio /etc. De la misma manera, si el directorio /etc contiene un archivo con el nombre
issue, podemos referirnos a ese archivo como /etc/issue.
Los subdirectorios de / se usan con fines estandarizados para organizar archivos por tipo y
objetivo. Esto facilita la posibilidad de encontrar archivos. Por ejemplo, en el directorio raíz, el
subdirectorio /boot se usa para guardar archivos que se necesitan para arrancar el sistema.
52 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
nota
Los siguientes términos ayudan a describir el contenido del directorio del sistema de
archivos:
La siguiente tabla enumera algunos de los directorios más importantes del sistema por nombre y
objetivo.
Ubicación Propósito
/var Datos variables específicos de este sistema que deberían conservarse entre
los arranques. Los archivos que cambian en forma dinámica (por ejemplo,
bases de datos, directorios caché, archivos de registro, documentos en cola
de impresión y contenido de sitio web) pueden encontrarse en /var.
/run Datos de tiempo de ejecución para procesos que se iniciaron desde el último
arranque. Esto incluye archivos de ID de proceso y archivos de bloqueo,
entre otros elementos. El contenido de este directorio se vuelve a crear en
el arranque nuevo. Este directorio consolida /var/run y /var/lock de
versiones anteriores de Red Hat Enterprise Linux.
/home Los directorios de inicio son aquellos donde los usuarios habituales guardan
sus datos personales y los archivos de configuración.
RH124-RHEL8.2-es-1-20200928 53
capítulo 3 | Administración de archivos desde la línea de comandos
Ubicación Propósito
/tmp Es un espacio con capacidad de escritura por parte de cualquier usuario del
sistema para archivos temporales. Los archivos a los que no se haya accedido,
y que no se hayan cambiado ni modificado durante 10 días se eliminan de este
directorio automáticamente. Existe otro directorio temporal, /var/tmp, en el
que los archivos que no tuvieron acceso, cambios ni modificaciones durante
más de 30 días se eliminan automáticamente.
/dev Contiene archivos de dispositivo especiales que el sistema usa para acceder al
hardware.
Importante
En Red Hat Enterprise Linux 7 y versiones posteriores, cuatro directorios antiguos
en / tienen contenido idéntico al de sus equivalentes que están en /usr:
• /bin y /usr/bin
• /sbin y /usr/sbin
• /lib y /usr/lib
• /lib64 y /usr/lib64
En versiones anteriores de Red Hat Enterprise Linux, estos eran directorios distintos
que contenían diferentes conjuntos de archivos.
Referencias
Página del manual: hier(7)
54 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de 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
5. ¿Qué directorio contiene datos dinámicos, como para bases de datos y sitios web?
a. /etc
b. /run
c. /usr
d. /var
RH124-RHEL8.2-es-1-20200928 55
capítulo 3 | Administración de archivos desde la línea de comandos
56 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de 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
5. ¿Qué directorio contiene datos dinámicos, como para bases de datos y sitios web?
a. /etc
b. /run
c. /usr
d. /var
RH124-RHEL8.2-es-1-20200928 57
capítulo 3 | Administración de archivos desde la línea de comandos
58 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Objetivos
Tras finalizar esta sección, debería ser capaz de especificar la ubicación de los archivos en relación
con el directorio de trabajo actual y por ubicación absoluta, determinar y cambiar su directorio de
trabajo y hacer una lista del contenido de los directorios.
Importante
Es posible incluir un espacio como parte de un nombre de archivo de Linux.
Sin embargo, la shell también utiliza espacios para separar las opciones y los
argumentos en la línea de comandos. Si ingresa un comando que incluye un archivo
que tiene un espacio en su nombre, la shell puede malinterpretar el comando
y asumir que desea iniciar un nuevo nombre de archivo u otro argumento en el
espacio.
Esto se evita si pone los nombres de archivo entre comillas. Sin embargo, si no
necesita usar espacios en los nombres de archivo, puede resultar más simple no
usarlos en absoluto.
RH124-RHEL8.2-es-1-20200928 59
capítulo 3 | Administración de archivos desde la línea de comandos
Rutas absolutas
Una ruta absoluta es un nombre totalmente calificado que especifica la ubicación exacta de los
archivos en la jerarquía del sistema de archivos. Comienza en el directorio raíz (/) y especifica
cada subdirectorio que se debe atravesar para llegar al archivo específico. Cada archivo del
sistema de archivos tiene un único nombre de ruta absoluta, reconocido con una regla simple:
un nombre de ruta con una barra (/) 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 un archivo único y especifica solo la ruta
necesaria para llegar al archivo desde el directorio de trabajo. Para reconocer nombres de ruta
relativas, se sigue una regla simple: un nombre de ruta que no tenga otro carácter más que una
barra como primer carácter es un nombre de ruta relativa. Un usuario en el directorio /var podría
referirse en forma relativa al archivo de registro del mensaje como log/messages.
Los sistemas de archivos Linux, que incluyen, entre otros, ext4, XFS, GFS2 y GlusterFS, distinguen
entre letras minúsculas y mayúsculas. Si se crea un archivo FileCase.txt y un archivo
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 usado cuando se
creó el archivo. Por lo tanto, si intentó crear los archivos en el ejemplo anterior en un sistema de
archivos VFAT, ambos nombres se tratarían como nombres que apuntan al mismo archivo y no a
dos archivos diferentes.
Rutas de navegación
El comando pwd muestra el nombre completo de ruta del directorio de trabajo actual para esa
shell. Esto puede ayudarlo a determinar la sintaxis para acceder a los archivos por medio de
nombres de ruta relativa. El comando ls enumera los contenidos del directorio para el directorio
especificado o, si no se indica un directorio, para el directorio de trabajo actual.
En el siguiente ejemplo, se utiliza una combinación de rutas absolutas y relativas con el comando
cd para cambiar el directorio de trabajo actual para la shell.
60 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Como puede ver en el ejemplo anterior, el prompt de shell predeterminado también muestra
el último componente de la ruta absoluta al directorio de trabajo actual. Por ejemplo, para /
home/user/Videos, solo se muestra Videos. El prompt muestra el carácter tilde (~) cuando el
directorio de trabajo actual es su directorio de inicio.
Por lo general, el comando touch actualiza la marca de tiempo de un archivo con respecto a la
fecha y la hora actuales sin modificarlo. Esto es útil para crear archivos vacíos, que pueden usarse
para practicar, ya que si se "toca" el nombre de un archivo que no existe, se produce la creación del
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. Los más usados
y útiles 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 15
drwxr-xr-x. 2 user user 4096 Feb 7 14:02 Desktop
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Documents
drwxr-xr-x. 3 user user 4096 Jan 9 15:00 Downloads
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Music
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Pictures
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Public
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Templates
drwxr-xr-x. 2 user user 4096 Jan 9 15:00 Videos
[user@host ~]$ ls -la
total 15
drwx------. 16 user user 4096 Feb 8 16:15 .
drwxr-xr-x. 6 root root 4096 Feb 8 16:13 ..
-rw-------. 1 user user 22664 Feb 8 00:37 .bash_history
-rw-r--r--. 1 user user 18 Jul 9 2013 .bash_logout
-rw-r--r--. 1 user user 176 Jul 9 2013 .bash_profile
-rw-r--r--. 1 user user 124 Jul 9 2013 .bashrc
drwxr-xr-x. 4 user user 4096 Jan 20 14:02 .cache
RH124-RHEL8.2-es-1-20200928 61
capítulo 3 | Administración de archivos desde la línea de comandos
Los dos directorios especiales que están en la parte superior del listado se refieren al directorio
actual (.) y al directorio principal (..). Estos directorios especiales existen en cada directorio
del sistema. Descubrirá su utilidad cuando comience a usar los comandos de administración de
archivos.
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. Esta 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.
[user@host ~]$ ls -R
.:
Desktop Documents Downloads Music Pictures Public Templates Videos
./Desktop:
./Documents:
thesis_chapter1.odf thesis_chapter2.odf
./Downloads:
./Music:
./Pictures:
./Public:
./Templates:
62 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
./Videos:
blockbuster1.ogg blockbuster2.ogg
[user@host ~]$
El comando cd tiene muchas opciones. Muy pocas son tan útiles como para justificar que se
practiquen por anticipado y se usen con cierta frecuencia. El comando cd - vuelve al directorio
anterior, donde estaba el usuario antes de estar en el directorio actual. En el siguiente ejemplo, se
ilustra este comportamiento, al alternar entre dos directorios, lo cual es útil al procesar una serie
de tareas similares.
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.
RH124-RHEL8.2-es-1-20200928 63
capítulo 3 | Administración de archivos desde la línea de comandos
Referencias
info libc 'file name resolution' (Manual de referencia de la biblioteca
GNU C)
UTF-8 y Unicode
http://www.utf-8.com/
64 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Cuestionario
1. ¿Qué comando se usa para volver al directorio de inicio del usuario actual, asumiendo
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 volverá siempre 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 siempre subirá el directorio de trabajo dos niveles desde la ubicación
actual?
a. cd ~
b. cd ../
c. cd ../..
d. cd -u2
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
RH124-RHEL8.2-es-1-20200928 65
capítulo 3 | Administración de archivos desde la línea de comandos
66 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Solución
1. ¿Qué comando se usa para volver al directorio de inicio del usuario actual, asumiendo
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 volverá siempre 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 siempre subirá el directorio de trabajo dos niveles desde la ubicación
actual?
a. cd ~
b. cd ../
c. cd ../..
d. cd -u2
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
RH124-RHEL8.2-es-1-20200928 67
capítulo 3 | Administración de archivos desde la línea de comandos
68 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Objetivos
Tras finalizar esta sección, debería ser capaz de crear, copiar, mover y eliminar archivos y
directorios.
La siguiente tabla resume algunos de los comandos de administración de archivos más comunes.
El resto de esta sección analizará con más detalle las formas de usar estos comandos.
Creación de directorios
El comando mkdir crea uno o más directorios o subdirectorios. Toma como argumentos una lista
de rutas a los directorios que desea crear.
En el siguiente ejemplo, simule que está intentando crear un directorio en el directorio Videos
llamado Watched, pero que accidentalmente omite la letra "s" en Videos en su comando mkdir.
RH124-RHEL8.2-es-1-20200928 69
capítulo 3 | Administración de archivos desde la línea de comandos
El comando mkdir generó un error porque Videos se escribió mal y el directorio Video no existe.
Si hubiera usado el comando mkdir con la opción -p, el directorio Video se crearía, lo cual no era
su intención original, y el subdirectorio Watched se crearía en ese directorio incorrecto.
Después de escribir correctamente el nombre del directorio principal Videos, la creación del
subdirectorio Watched se ejecutará de forma correcta.
Videos/Watched:
Use el comando mkdir -p y rutas relativas delimitadas por espacios para cada nombre de
subdirectorio a fin de crear varios directorios principales con subdirectorios.
Documents/ProjectX:
Documents/ProjectY:
Documents/Thesis:
Chapter1 Chapter2 Chapter3
Documents/Thesis/Chapter1:
Documents/Thesis/Chapter2:
Documents/Thesis/Chapter3:
Videos:
blockbuster1.ogg blockbuster2.ogg Watched
Videos/Watched:
70 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
El último comando mkdir creó tres subdirectorios de ChapterN con un comando. La opción -p
creó el directorio principal faltante Thesis.
Copia de archivos
El comando cp copia un archivo y crea un archivo nuevo en el directorio actual o en el directorio
especificado. También puede copiar varios archivos en un directorio.
Advertencia
Si el archivo de destino ya existe, el comando cp sobrescribe el archivo.
Cuando se copian varios archivos con un comando, el último argumento debe ser un directorio.
Los archivos copiados conservan su nombre original en el directorio nuevo. Si existe un archivo
con el mismo nombre en el directorio de destino, el archivo existente se sobrescribe. De manera
predeterminada, cp no copia directorios; los omite.
Thesis:
Chapter1 Chapter2 Chapter3
En el primer comando cp, el directorio Thesis no se pudo copiar, pero sí lo hicieron los archivos
thesis_chapter1.odf y thesis_chapter2.odf.
Si desea copiar un archivo en el directorio de trabajo actual, puede usar el directorio especial .:
Use el comando de copiar con la opción -r —recursive— (recurrente) para copiar el directorio
Thesis y su contenido al directorio ProjectX.
RH124-RHEL8.2-es-1-20200928 71
capítulo 3 | Administración de archivos desde la línea de comandos
ProjectX/Thesis:
Chapter1 Chapter2 Chapter3
ProjectX/Thesis/Chapter1:
ProjectX/Thesis/Chapter2:
thesis_chapter2.odf
ProjectX/Thesis/Chapter3:
Importante
No existe una función de deshacer la eliminación de línea de comandos ni tampoco
una papelera de reciclaje desde donde se puedan restaurar los archivos que se
borraron.
72 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Si intenta utilizar el comando rm para eliminar un directorio sin utilizar la opción -r, el comando
fallará.
Thesis/Chapter1:
thesis_chapter1.odf
Thesis/Chapter2:
thesis_chapter2.odf
Thesis/Chapter3:
[user@host Documents]$ rm -r Thesis/Chapter1
[user@host Documents]$ ls -l Thesis
total 8
drwxrwxr-x. 2 user user 4096 Feb 11 12:47 Chapter2
drwxrwxr-x. 2 user user 4096 Feb 11 12:48 Chapter3
RH124-RHEL8.2-es-1-20200928 73
capítulo 3 | Administración de 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
pedirá confirmación antes de que rm borre los archivos.
En el siguiente ejemplo, el comando rmdir solo elimina el directorio que está vacío. Al igual
que en el ejemplo anterior, debe usar el comando rm -r para eliminar un directorio que tiene
contenido.
nota
El comando rm sin opciones no puede eliminar un directorio vacío. Debes usar el
comando rmdir, rm -d (que equivale a rmdir), o rm -r.
Referencias
Páginas del manual cp(1), mkdir(1), mv(1), rm(1) y rmdir(1)
74 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Ejercicio Guiado
Resultados
Deberá ser capaz de crear, organizar, copiar, y eliminar archivos y directorios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2. En el directorio de inicio del usuario student, use el comando mkdir para crear tres
subdirectorios: Music, Pictures y Videos.
3. Aún en el directorio de inicio del usuario student, use el comando touch para crear
conjuntos de archivos de práctica vacíos para usar durante este trabajo de laboratorio.
RH124-RHEL8.2-es-1-20200928 75
capítulo 3 | Administración de archivos desde la línea de comandos
[student@servera ~]$ ls -l
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film1.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film2.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film3.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film4.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film5.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film6.avi
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Music
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Pictures
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap1.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap2.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap3.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap4.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap5.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap6.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song1.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song2.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song3.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song4.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song5.mp3
-rw-rw-r--. 1 student student 0 Feb 4 18:23 song6.mp3
drwxrwxr-x. 2 student student 6 Feb 4 18:23 Videos
4. Aún en el directorio de inicio del usuario student, mueva los archivos de canciones al
subdirectorio Music, los archivos de instantáneas al subdirectorio Pictures y los archivos
de películas al subdirectorio Videos.
Cuando distribuya archivos desde una ubicación hacia muchas ubicaciones, primero
cambie el directorio que contiene los archivos de origen. Use la sintaxis de ruta más simple,
absoluta o relativa, para llegar al destino de cada tarea de administración de archivos.
Pictures:
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap1.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap2.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap3.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap4.jpg
-rw-rw-r--. 1 student student 0 Feb 4 18:23 snap5.jpg
76 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Videos:
total 0
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film1.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film2.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film3.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film4.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film5.avi
-rw-rw-r--. 1 student student 0 Feb 4 18:23 film6.avi
5. Aún en el directorio de inicio del usuario student, cree tres subdirectorios para organizar
los archivos en proyectos. Nombre a los subdirectorios friends, family y work. Use un
solo comando para crear los tres subdirectorios al mismo tiempo.
Usará estos directorios para reorganizar los archivos en proyectos.
6. Copie una selección de los nuevos archivos a los directorios del proyecto family y
friends. Use todos los comandos que necesite. No tiene que usar un solo comando como
en el ejemplo. Para cada proyecto, primero pase al directorio del proyecto y, a continuación,
copie los archivos de origen en este directorio. Tenga en cuenta que está haciendo copias;
por lo tanto, los archivos originales permanecerán en sus ubicaciones originales una vez que
los archivos se hayan copiado a los directorios del proyecto.
• Copie los archivos (de todo tipo) que tengan los números 1 y 2 al subdirectorio friends.
• Copie los archivos (de todo tipo) que tengan los números 3 y 4 al subdirectorio family.
Cuando copie archivos de varias ubicaciones a una sola ubicación, Red Hat recomienda que
pase al directorio de destino antes de copiar los archivos. Use la sintaxis de ruta más simple,
absoluta o relativa, para llegar al origen de cada tarea de administración de archivos.
RH124-RHEL8.2-es-1-20200928 77
capítulo 3 | Administración de archivos desde la línea de comandos
8. Las tareas del proyecto ya están terminadas, por lo que es hora de limpiar los proyectos.
Pase al directorio de inicio del usuario student. Intente eliminar los directorios del
proyecto family y friends con un solo comando rmdir.
[student@servera work]$ cd
[student@servera ~]$ rmdir family friends
rmdir: failed to remove 'family': Directory not empty
rmdir: failed to remove 'friends': Directory not empty
El uso del comando rmdir debería fallar porque ambos subdirectorios contienen archivos.
78 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
10. Elimine todos los archivos del proyecto de trabajo, pero no elimine el directorio de trabajo.
11. Por último, desde el directorio de inicio del usuario student, use el comando rmdir para
eliminar el directorio work. El comando deberá ser capaz de completar la acción sin errores
ahora que está vacío.
[student@servera work]$ cd
[student@servera ~]$ rmdir work
[student@servera ~]$ ls -l
total 0
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Music
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Pictures
drwxrwxr-x. 2 student student 108 Feb 4 18:36 Videos
Finalizar
En workstation, ejecute el script lab files-manage finish para terminar este ejercicio.
Este script elimina todos los archivos y directorios creados durante el ejercicio.
RH124-RHEL8.2-es-1-20200928 79
capítulo 3 | Administración de archivos desde la línea de comandos
Objetivos
Tras finalizar esta sección, deberá ser capaz de hacer que varios nombres de archivo hagan
referencia al mismo archivo con enlaces duros y simbólicos (o "blandos").
Puede comprobar si un archivo tiene varios enlaces duros con el comando ls -l. Uno de los
datos que aparecen es el recuento de enlaces de cada archivo, es decir, la cantidad de enlaces
duros que tiene el archivo.
Puede usar el comando ln para crear un nuevo enlace duro (otro nombre) que apunte a un archivo
existente. El comando necesita al menos dos argumentos, una ruta al archivo existente y la ruta al
enlace duro que desea crear.
Si desea verificar si dos archivos tienen los mismos enlaces duros, una posibilidad es usar la opción
-i con el comando ls para enumerar el número de inodo de los archivos. Si los archivos están
80 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
en el mismo sistema de archivos (que se explicará más adelante) y sus números de inodo son los
mismos, los archivos son enlaces duros que apuntan a los mismos datos.
Importante
Todos los enlaces duros que hacen referencia al mismo archivo tendrán el mismo
recuento de enlaces, permiso de acceso, pertenencia a usuarios y grupos, marcas
de tiempo y contenido de archivo. Si se modifica algún dato en un enlace duro,
todos los demás enlaces duros que apuntan al mismo archivo también mostrarán el
dato nuevo. Esto se debe a que cada enlace duro apunta a los mismos datos en el
dispositivo de almacenamiento.
Incluso si se elimina el archivo original, el contenido del archivo continúa estando disponible
siempre y cuando exista un enlace duro como mínimo. Los datos solo se eliminan del
almacenamiento cuando se elimina el último enlace duro.
En segundo lugar, los enlaces duros solo se pueden usar si ambos archivos están en el mismo
sistema de archivos. La jerarquía del sistema de archivos puede estar formada por varios
dispositivos de almacenamiento. Dependiendo de la configuración de su sistema, cuando pase a
un nuevo directorio, ese directorio y su contenido pueden almacenarse en un sistema de archivos
diferente.
Puede usar el comando df para enumerar los directorios que están en diferentes sistemas de
archivos. Por ejemplo, es posible que visualice un resultado como el siguiente:
[user@host ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 886788 0 886788 0% /dev
tmpfs 902108 0 902108 0% /dev/shm
tmpfs 902108 8696 893412 1% /run
tmpfs 902108 0 902108 0% /sys/fs/cgroup
/dev/mapper/rhel_rhel8--root 10258432 1630460 8627972 16% /
/dev/sda1 1038336 167128 871208 17% /boot
tmpfs 180420 0 180420 0% /run/user/1000
[user@host ~]$
RH124-RHEL8.2-es-1-20200928 81
capítulo 3 | Administración de archivos desde la línea de comandos
Los archivos que están en dos directorios diferentes con el indicador "Montado en" y sus
subdirectorios están en sistemas de archivos distintos. (La coincidencia más específica es la
correcta). Por lo tanto, el sistema en este ejemplo. Puede crear un enlace duro entre /var/tmp/
link1 y /home/user/file porque ambos son subdirectorios de /, pero no de ningún otro
directorio de la lista. Pero no puede crear un enlace duro entre /boot/test/badlink y /home/
user/file porque el primer archivo está en un subdirectorio de /boot (en la lista "Montado en")
y el segundo archivo no está allí.
Los enlaces blandos tienen algunas ventajas en comparación con los enlaces duros:
En el siguiente ejemplo, el comando ln -s se utiliza para crear un nuevo enlace blando para
el archivo existente /home/user/newfile-link2.txt que se llamará /tmp/newfile-
symlink.txt.
Cuando se elimina el archivo regular original, el enlace blando seguirá apuntando al archivo, pero
el destino desaparece. Un enlace blando que apunta a un archivo que falta recibe el nombre de
"enlace blando colgante".
82 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Importante
Un efecto secundario del enlace blando colgante en el ejemplo anterior es que
si usted crea más adelante un nuevo archivo con el mismo nombre que el archivo
eliminado (/home/user/newfile-link2.txt), el enlace blando ya no estará
"colgando" y apuntará al archivo nuevo.
Los enlaces duros no funcionan de esta forma. Si borra un enlace duro y luego usa
herramientas normales (en lugar de ln) para crear un nuevo archivo con el mismo
nombre, el nuevo archivo no se vinculará al archivo anterior.
Aquí presentamos una forma de comparar enlaces duros y enlaces blandos que
puede ayudarlo a comprender cómo funcionan:
Un enlace blando puede apuntar a un directorio. El enlace blando funciona como un directorio.
Si cambia al enlace blando con cd, hará que el directorio de trabajo actual se convierta en el
directorio vinculado. Algunas herramientas pueden hacer un seguimiento del hecho de que usted
siguió un enlace blando para llegar allí. Por ejemplo, de manera predeterminada, cd actualizará
su directorio de trabajo actual por medio del nombre del enlace blando, y no del nombre del
directorio real. (Existe la opción, -P, que permite actualizarlo con el nombre del directorio real).
Referencias
Página del manual: ln(1)
RH124-RHEL8.2-es-1-20200928 83
capítulo 3 | Administración de archivos desde la línea de comandos
Ejercicio Guiado
Resultados
Deberá ser capaz de crear enlaces duros y enlaces blandos entre archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
84 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
4. Salga de servera.
Finalizar
En workstation, ejecute el script lab files-make finish para terminar este ejercicio. Este
script elimina todos los archivos y directorios creados en servera durante el ejercicio.
RH124-RHEL8.2-es-1-20200928 85
capítulo 3 | Administración de archivos desde la línea de comandos
Objetivos
Tras finalizar esta sección, debería ser capaz de ejecutar con eficiencia los comandos que afectan
a muchos archivos mediante el uso de las funciones de coincidencia de patrones de la shell Bash.
Coincidencia de patrones
Globbing es una operación de análisis de comandos de la shell que expande un patrón de comodín
en una lista de nombres de ruta coincidentes. Los metacaracteres de la línea de comandos se
reemplazan con la lista de coincidencias antes de la ejecución del comando. Los patrones que no
ofrecen coincidencias muestran la solicitud de patrón original como texto literal. Los siguientes
son metacaracteres y clases de patrones de uso frecuente.
Patrón Coincidencias
86 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Patrón Coincidencias
Para los siguientes ejemplos, simule que ha ejecutado los siguientes comandos para crear algunos
archivos de muestra.
El primer ejemplo utilizará coincidencias de patrones simples con el asterisco (*) y signo de
interrogación (?), y una clase de caracteres, para hacer coincidir con algunos de esos nombres de
archivo.
[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
[user@host glob]$ ls ????
able alfa cast easy echo
[user@host glob]$ ls ?????
baker bravo delta
[user@host glob]$
Expansión de tilde
El carácter del tilde (~) coincide con el directorio de inicio del usuario actual. Si comienza una
secuencia de caracteres con cualquier carácter que no sea una barra (/), la shell interpretará que
la secuencia es un nombre de usuario hasta esa barra, si se logra una coincidencia, y reemplazará
la secuencia con la ruta absoluta al directorio de inicio de ese usuario. Si ningún nombre de usuario
coincide, empleará la propia tilde seguida de la secuencia de caracteres.
En el siguiente ejemplo, el comando echo se usa para mostrar el valor del carácter de tilde. El
comando echo también se puede usar para mostrar los valores de los caracteres de expansión de
llaves y variables, y otros.
RH124-RHEL8.2-es-1-20200928 87
capítulo 3 | Administración de archivos desde la línea de comandos
Expansión de llaves
La expansión de llaves se usa para generar secuencias discrecionales de caracteres. Las llaves
contienen una lista de secuencias, o una expresión de secuencias, separadas por comas. El
resultado 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. Además, la sintaxis de punto doble (..) se
expande para formar una secuencia, de manera que {m..p} se expandirá para formar m n o p.
La expansión de llaves se utiliza en la práctica, por ejemplo, para crear rápidamente una serie de
archivos o directorios.
Expansión de variables
Una variable actúa como un contenedor con nombre que puede almacenar un valor en la memoria.
Las variables facilitan 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 mediante la siguiente sintaxis:
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 secuencia comienza con un signo de dólar ($), entonces la shell intentará
usar el resto de esa secuencia como un nombre de variable y reemplazarlo con cualquier valor que
tenga la variable.
Para ayudar a evitar errores debidos a otras expansiones de shell, puede poner el nombre de la
variable entre llaves, por ejemplo, ${VARIABLENAME}.
88 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Las variables de shell y las formas de usarlas se analizarán con mayor profundidad más adelante en
este curso.
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 $(comando) puede anidar varias
expansiones de comando dentro de cada una.
nota
Una forma más antigua de sustitución de comandos usa acentos graves:
`comando`. Estas son algunas de las desventajas de la forma con acento grave: 1)
el acento grave puede confundirse fácilmente a la vista con las comillas simples, y 2)
el acento grave no puede anidarse.
La barra invertida (\) es un carácter de escape en la shell Bash. Evitará que el carácter que lo sigue
se expanda.
En el ejemplo anterior, proteger el signo de dólar de la expansión hizo que Bash lo tratara como un
carácter normal y no realizó la expansión de variables en $HOME.
Para proteger las secuencias de caracteres más extensas, se usan comillas simples (') o dobles (")
para encerrar las secuencias. 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.
Use comillas dobles para suprimir el globbing y la expansión de la shell y, al mismo tiempo, permitir
la sustitución de comandos y variables.
RH124-RHEL8.2-es-1-20200928 89
capítulo 3 | Administración de archivos desde la línea de comandos
Importante
Tanto en la pantalla como en el teclado la comilla simple (') y el acento grave
de sustitución de comando (`) pueden confundirse fácilmente. Si usa uno
incorrectamente, ya que 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)
90 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de 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 contengan una "b"?
a. b*
b. *b
c. *b*
d. [!b]*
5. ¿Qué patrón coincidirá solo con los nombres de archivo que contengan un número?
a. *#*
b. *[[:digit:]]*
c. *[digit]*
d. [0-9]
RH124-RHEL8.2-es-1-20200928 91
capítulo 3 | Administración de 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-RHEL8.2-es-1-20200928
capítulo 3 | Administración de 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 contengan una "b"?
a. b*
b. *b
c. *b*
d. [!b]*
5. ¿Qué patrón coincidirá solo con los nombres de archivo que contengan un número?
a. *#*
b. *[[:digit:]]*
c. *[digit]*
d. [0-9]
RH124-RHEL8.2-es-1-20200928 93
capítulo 3 | Administración de 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. ...*
94 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran para que usen claves SSH para la autenticación, por lo que no se necesita una
contraseña.
2. Antes de crear archivos de proyecto, use el comando mkdir con expansión de llaves para
crear documentos de planificación de proyectos vacíos en el directorio /home/student/
Documents/project_plans. (Sugerencia: si ~/Documents no existe, la opción -p para el
comando mkdir lo creará).
Cree dos archivos vacíos en el directorio ~/Documents/project_plans:
season1_project_plan.odf y season2_project_plan.odf.
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 fácilmente.
Cree un total de 12 archivos con nombres tv_seasonX_episodeY.ogg. 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, los capítulos de su próximo
bestseller se están editando para publicarlos. Cree un total de ocho archivos con nombres
mystery_chapterX.odf. Reemplace la X con los números del 1 al 8.
5. Use un solo comando para crear dos subdirectorios denominados season1 y season2 en el
directorio Videos, a fin de organizar los capítulos de la serie de televisión.
RH124-RHEL8.2-es-1-20200928 95
capítulo 3 | Administración de archivos desde la línea de comandos
96 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
la opción recursiva -r. Este intento debe fallar. Finalmente, use el comando rmdir para
eliminar el directorio vacío; esta acción se ejecutará correctamente.
17. Cuando finalicen las vacaciones, el directorio vacation ya no será necesario. Elimínelo
usando el comando rm con la opción recursive.
Una vez que haya finalizado, regrese al directorio de inicio del usuario student.
18. Cree un enlace duro al archivo ~/Documents/project_plans/
season2_project_plan.odf denominado ~/Documents/backups/
season2_project_plan.odf.back. Un enlace duro evitará la eliminación accidental del
archivo original y mantendrá actualizado el archivo de respaldo a medida que se realicen
cambios en el original.
19. Salga de serverb.
Evaluación
En workstation, ejecute el script lab files-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab files-review finish para finalizar este trabajo de
laboratorio. Este script elimina todos los archivos y directorios creados en serverb durante el
ejercicio de laboratorio.
RH124-RHEL8.2-es-1-20200928 97
capítulo 3 | Administración de archivos desde la línea de comandos
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran para que usen claves SSH para la autenticación, por lo que no se necesita una
contraseña.
2. Antes de crear archivos de proyecto, use el comando mkdir con expansión de llaves para
crear documentos de planificación de proyectos vacíos en el directorio /home/student/
Documents/project_plans. (Sugerencia: si ~/Documents no existe, la opción -p para el
comando mkdir lo creará).
Cree dos archivos vacíos en el directorio ~/Documents/project_plans:
season1_project_plan.odf y season2_project_plan.odf.
Documents/project_plans:
total 0
98 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de 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 fácilmente.
Cree un total de 12 archivos con nombres tv_seasonX_episodeY.ogg. 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, los capítulos de su próximo
bestseller se están editando para publicarlos. Cree un total de ocho archivos con nombres
mystery_chapterX.odf. Reemplace la X con los números del 1 al 8.
5. Use un solo comando para crear dos subdirectorios denominados season1 y season2 en el
directorio Videos, a fin de organizar los capítulos de la serie de televisión.
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-RHEL8.2-es-1-20200928 99
capítulo 3 | Administración de archivos desde la línea de comandos
7. Cree una jerarquía de directorios de dos niveles con un solo comando para organizar los
capítulos del libro de misterios. Cree my_bestseller en el directorio Documents y
chapters en el nuevo directorio my_bestseller.
Documents/my_bestseller:
chapters
Documents/my_bestseller/chapters:
Documents/project_plans:
season1_project_plan.odf season2_project_plan.odf
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
9. Cambie al directorio chapters. Use el atajo del directorio de inicio con tilde (~) para
especificar los archivos de recursos, mueva todos los capítulos del libro al directorio
chapters, que ahora es el directorio actual. ¿Cuál es la sintaxis más simple para especificar
el directorio de destino?
100 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
10. Envió 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 de capítulos, 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.
11. 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 secuencias y
sin usar caracteres comodín.
13. 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. (Esto se ejecutará correctamente si el
último cambio de directorio con el comando cd se hizo 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.
14. 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
RH124-RHEL8.2-es-1-20200928 101
capítulo 3 | Administración de archivos desde la línea de comandos
16. Después de una revisión adicional, usted decide que los cambios a la trama no son
necesarios. 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 ejecutará correctamente.
102 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
17. Cuando finalicen las vacaciones, el directorio vacation ya no será necesario. Elimínelo
usando el comando rm con la opción recursive.
Una vez que haya finalizado, regrese al directorio de inicio del usuario student.
/home/student/Documents/backups:
total 4
-rw-rw-r--. 2 student student 0 Jan 31 19:05 season2_project_plan.odf.back
/home/student/Documents/my_bestseller:
total 0
drwxrwxr-x. 2 student student 118 Jan 31 19:39 chapters
drwxrwxr-x. 2 student student 62 Jan 31 19:38 editor
/home/student/Documents/my_bestseller/chapters:
total 0
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter3.odf
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter4.odf
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter5.odf
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter6.odf
/home/student/Documents/my_bestseller/editor:
total 0
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter1.odf
-rw-rw-r--. 1 student student 0 Jan 31 19:18 mystery_chapter2.odf
/home/student/Documents/project_plans:
total 4
-rw-rw-r--. 1 student student 0 Jan 31 18:20 season1_project_plan.odf
-rw-rw-r--. 2 student student 0 Jan 31 19:05 season2_project_plan.odf
RH124-RHEL8.2-es-1-20200928 103
capítulo 3 | Administración de archivos desde la línea de comandos
Evaluación
En workstation, ejecute el script lab files-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab files-review finish para finalizar este trabajo de
laboratorio. Este script elimina todos los archivos y directorios creados en serverb durante el
ejercicio de laboratorio.
104 RH124-RHEL8.2-es-1-20200928
capítulo 3 | Administración de archivos desde la línea de comandos
Resumen
En este capítulo, aprendió lo siguiente:
• Las rutas absolutas comienzan con / y especifican la ubicación de un archivo en la jerarquía del
sistema de archivos.
• Las rutas relativas no comienzan con / y especifican la ubicación de un archivo en relación con el
directorio de trabajo actual.
• Se utilizan cinco comandos clave para administrar archivos: mkdir, rmdir, cp, mv y rm.
• Los enlaces duros y los enlaces blandos son formas diferentes de hacer que varios nombres de
archivo apunten a los mismos datos.
RH124-RHEL8.2-es-1-20200928 105
106 RH124-RHEL8.2-es-1-20200928
capítulo 4
RH124-RHEL8.2-es-1-20200928 107
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Objetivos
Tras finalizar esta sección, podrá 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 de manual, era
tan extenso que se convertía en varias secciones impresas. Cada sección contiene información
sobre un tema en particular.
2 Llamadas del sistema (rutinas del kernel invocadas desde el espacio del usuario)
Para diferenciar nombres de temas idénticos en secciones diferentes, las referencias de las
páginas de manual incluyen el número de la sección entre paréntesis después del tema. Por
ejemplo: por un lado, en passwd(1) se describe el comando para cambiar contraseñas; por otro
lado, en passwd(5) se explica el formato de archivo /etc/passwd para almacenar cuentas de
usuario local.
Si desea leer páginas de manual específicas, use man topic. El contenido aparece en una
pantalla a la vez. El comando man busca en las secciones del manual en orden alfanumérico. Por
ejemplo, man passwd muestra passwd(1) de manera predeterminada. Para visualizar el tema de
108 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
una página de manual de una sección específica, incluya el argumento de número de sección: man
5 passwd muestra passwd(5).
Comando Resultado
RH124-RHEL8.2-es-1-20200928 109
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Importante
Al realizar búsquedas, la secuencia permite usar sintaxis de expresiones regulares.
Mientras que 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
secuencias que incluyen metacaracteres de expresión de programa, como make $$
$, puede arrojar resultados imprevistos.
Encabezados
Encabezado Descripción
NAME (NOMBRE) Nombre del tema. Por lo general, un nombre de comando o archivo.
Descripción muy breve.
FILES (ARCHIVOS) Una lista de archivos y directorios relacionados con la página del manual.
AUTHOR (AUTOR) Información sobre las personas que han contribuido al desarrollo del
tema.
110 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
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 emplean 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.
nota
Las búsquedas por palabra clave se basan en un índice generado con el comando
mandb(8), que se debe ejecutar como usuario root. El comando se ejecuta a diario
a través de cron.daily o de anacrontab durante la hora posterior al arranque si
está desactualizado.
Importante
El comando man, opción -K (mayúscula), realiza una búsqueda en páginas de
texto completo, no solo en títulos y descripciones, como lo hace la opción -k. Una
búsqueda en texto completo emplea más recursos del sistema y lleva más tiempo.
Referencias
Páginas de manual: man(1), mandb(8), man-pages(7), less(1), intro(1),
intro(2), intro(5), intro(7), intro(8)
RH124-RHEL8.2-es-1-20200928 111
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Ejercicio Guiado
Resultados
Deberá ser capaz de usar el sistema de manual de Linux man para encontrar información útil
mediante la búsqueda y la navegación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, vea la página de 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 de 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 de manual gedit, vea las opciones para editar un archivo específico
desde la línea de comandos.
112 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
...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.
the quick brown fox just came over to greet the lazy poodle!
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.
When called without arguments, su defaults to running an interactive
shell as root.
...output omitted...
OPTIONS
...output omitted...
-, -l, --login
Start the shell as a login shell with an environment similar to a real login
...output omitted...
RH124-RHEL8.2-es-1-20200928 113
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Tenga en cuenta que las opciones separadas por coma en una sola línea, como -, -l
y --login, todas dan como resultado el mismo comportamiento.
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...
5. Use el comando man -k zip para enumerar información detallada sobre un archivo ZIP.
114 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
6. Use man -k boot para mostrar la página de manual que contiene una lista de los
parámetros que se pueden pasar al kernel durante el proceso de arranque.
7. Use man -k ext4 para encontrar el comando que se usa para ajustar los parámetros del
sistema de archivos ext4.
Finalizar
En workstation, ejecute el script lab help-manual finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 115
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de encontrar información en la
documentación local de GNU Info.
Importante
Podría preguntarse por qué hay dos sistemas locales de documentación, páginas
de manual y documentos Info. Esto se debe en parte a cuestiones prácticas y, por
otro lado, esto tiene que ver con la forma en que Linux y sus aplicaciones han sido
desarrollados por varias comunidades de open source a lo largo de los años.
Las páginas de manual tienen un formato mucho más formal y, por lo general,
documentan un comando o función específicos de un paquete de software y están
estructuradas como archivos de texto individuales. Los documentos Info suelen
abarcar paquetes de software particulares como un todo, tienden a tener ejemplos
más prácticos de cómo usar el software y están estructurados como documentos de
hipertexto.
116 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Una página de manual típica tiene una pequeña cantidad de contenido que se centra en un
tema, comando, herramienta o archivo en particular. La documentación de Info es un documento
integral. Info proporciona las siguientes mejoras:
• Un solo documento para un sistema grande que contiene toda la información necesaria para ese
sistema
• Hipervínculos
Algunos comandos y utilidades tienen páginas de man y documentación de Info; por lo general, la
documentación de Info incluye más detalles. Compare las diferencias en la documentación de tar
con los comandos man y pinfo:
El lector de pinfo es más avanzado que el comando info original. Para explorar un tema
específico, use el comando pinfo topic. El comando pinfo sin un argumento abre el directorio
superior. La documentación nueva se pone a disposición en pinfo cuando se instalan sus
paquetes de software.
nota
Si no existe ningún tema de Info en el sistema para una entrada particular que
solicitó, Info buscará una página de manual coincidente y la mostrará en su lugar.
RH124-RHEL8.2-es-1-20200928 117
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
118 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Referencias
pinfo info (Info: Una introducción)
El proyecto GNU
http://www.gnu.org/gnu/thegnuproject.html
RH124-RHEL8.2-es-1-20200928 119
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Ejercicio Guiado
Resultados
Deberá ser capaz de navegar la documentación de GNU Info con herramientas de línea de
comandos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
120 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
4. Navegue por este tema de Info. Aprenda si las opciones con estilo prolongado pueden
abreviarse.
Use las teclas RePág y AvPág para navegar por el tema. Efectivamente, muchos programas
permiten que se abrevien las opciones prolongadas.
6. Sin salir de pinfo, desplácese hacia arriba hasta el nodo GNU Coreutils
Presione u para desplazarse hacia arriba hasta el nodo superior del tema.
10. Suba dos niveles para volver a GNU Coreutils. Vaya a Summarizing files (Resumir
archivos).
Presione Intro para seleccionar el tema y, luego, explore el tema.
12. Use el comando pinfo nuevamente y especifique coreutils como el tema de destino
desde la línea de comandos.
RH124-RHEL8.2-es-1-20200928 121
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Finalizar
En workstation, ejecute el script lab help-info finish para terminar este ejercicio.
122 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Encuentre los comandos relevantes buscando en las páginas de manual y en los nodos de
Info.
• Aprenda opciones nuevas para comandos de documentación que se usan con frecuencia.
• Use herramientas adecuadas para ver e imprimir documentación y otros archivos que no
son texto.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
nota
Cree una salida con formato de la página de manual passwd con el siguiente
comando:
3. Use man para aprenderse los comandos que se usan para ver e imprimir archivos en formato
PostScript.
4. Aprenda a usar el visor de evince(1) en modo de vista previa. Además, determine la manera
de abrir un documento a partir de una página específica.
RH124-RHEL8.2-es-1-20200928 123
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
5. Vea su archivo en formato PostScript con las diversas opciones evince que investigó. Cierre
su archivo de documento cuando termine.
6. Use el comando man para investigar lp(1) y determinar cómo imprimir cualquier documento
a partir de una página específica. Sin ingresar ningún comando (ya que no hay ninguna
impresora), aprenda la sintaxis, en un comando, para imprimir solo las páginas 2 y 3 de su
archivo en formato PostScript.
7. Use pinfo para buscar información sobre el visor evince en la documentación de GNU
Info.
8. Use Firefox para abrir el directorio de documentación de paquetes del sistema y navegue por
el subdirectorio de paquetes man-db. Vea los manuales provistos.
9. Use el navegador Firefox para localizar y navegar por el subdirectorio de paquetes
initscripts. Vea el archivo sysconfig.txt, en el que se describen opciones de
configuración del sistema importantes almacenadas en el directorio /etc/sysconfig.
Evaluación
En workstation, ejecute lab help-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab help-review finish para terminar este ejercicio.
124 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Encuentre los comandos relevantes buscando en las páginas de manual y en los nodos de
Info.
• Aprenda opciones nuevas para comandos de documentación que se usan con frecuencia.
• Use herramientas adecuadas para ver e imprimir documentación y otros archivos que no
son texto.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando man man para determinar cómo preparar una página de manual para
su impresión.
nota
man usa -t a fin de preparar una página del manual para su impresión usando
PostScript.
2. Cree un archivo de salida con formato de la página de manual passwd. Ponga al archivo el
nombre passwd.ps. Determine el formato del contenido del archivo. Investigue el contenido
del archivo passwd.ps.
RH124-RHEL8.2-es-1-20200928 125
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Cree una salida con formato de la página de manual passwd con el siguiente
comando:
2.1. Use el comando man -t para crear un archivo con formato de la página de manual
passwd.
2.2. Use el comando file para determinar el formato del contenido del archivo.
nota
La salida de 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. Use man para aprenderse los comandos que se usan para ver e imprimir archivos en formato
PostScript.
3.1. Use man para aprenderse los comandos que se usan para ver e imprimir archivos en
formato PostScript.
126 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Si usa varias palabras con la opción -k, se encuentran páginas de manual que
coinciden con cualquier palabra; las que contienen "postscript" o "visor" en sus
descripciones. Observe los comandos evince(1) en la salida.
4. Aprenda a usar el visor de evince(1) en modo de vista previa. Además, determine la manera
de abrir un documento a partir de una página específica.
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
se usa para especificar una página de inicio.
5. Vea su archivo en formato PostScript con las diversas opciones evince que investigó. Cierre
su archivo de documento cuando termine.
RH124-RHEL8.2-es-1-20200928 127
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Mientras que el modo evince normal permite una visualización en pantalla
completa y con estilo de presentación, el modo de vista previa evince resulta útil
para tareas rápidas de navegación e impresión. Observe el icono de impresión en
la parte superior.
6. Use el comando man para investigar lp(1) y determinar cómo imprimir cualquier documento
a partir de una página específica. Sin ingresar ningún comando (ya que no hay ninguna
impresora), aprenda la sintaxis, en un comando, para imprimir solo las páginas 2 y 3 de su
archivo en formato PostScript.
6.1. Use el comando man lp para determinar cómo imprimir páginas específicas de un
documento.
nota
En lp(1), aprendió que la opción -P permite especificar páginas. 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.
7. Use pinfo para buscar información sobre el visor evince en la documentación de GNU
Info.
7.1. Use pinfo command para buscar información sobre el visor evince en la
documentación de GNU Info.
nota
Observe que, en su lugar, aparece la página de manual evince(1). El visor de
documentos pinfo busca la página de manual relevante cuando no existe ningún
nodo de documentación de GNU pertinente al tema solicitado. Presione q para salir.
8. Use Firefox para abrir el directorio de documentación de paquetes del sistema y navegue por
el subdirectorio de paquetes man-db. Vea los manuales provistos.
8.1. Use firefox /usr/share/doc para ver la documentación del sistema. Vaya al
subdirectorio man-db. Haga clic en los manuales para verlos.
128 RH124-RHEL8.2-es-1-20200928
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
nota
Se pueden crear marcadores para todos los directorios de uso frecuente. Después
de navegar al directorio man-db, haga clic para abrir y ver la versión del texto
del manual; 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. Es posible que desee regresar a estos
documentos en el futuro para obtener más conocimientos sobre man. Cuando
termine, cierre el visor evince.
Evaluación
En workstation, ejecute lab help-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab help-review finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 129
capítulo 4 | Obtener ayuda en Red Hat Enterprise Linux
Resumen
En este capítulo, aprendió lo siguiente:
• Las páginas de manual se visualizan con el comando man y proporcionan 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 de manual, el nombre de una página va
seguido de su número de sección entre paréntesis.
• Los documentos Info se visualizan con el comando pinfo y están formados por una colección
de nodos de hipertexto, que proporcionan información sobre los paquetes de software como un
todo.
• Las teclas de navegación que utilizan man y pinfo son un tanto distintas.
130 RH124-RHEL8.2-es-1-20200928
capítulo 5
RH124-RHEL8.2-es-1-20200928 131
capítulo 5 | Creación, visualización y edición de archivos de texto
Redireccionamiento de la salida a un
archivo o programa
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de 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 las tuberías.
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.
132 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Si desea descartar mensajes, el archivo especial /dev/null descarta discretamente la salida del
canal redirigida a él y es siempre un archivo vacío.
redirigir
stdout para
> archivo
sobrescribir
un archivo
redirigir
stdout para
>> archivo
agregar a
un archivo
redirigir
stderr para
2> archivo
sobrescribir
un archivo
descartar
mensajes
de error de
2> /dev/null stderr
mediante el
redireccionamiento
a /dev/null
RH124-RHEL8.2-es-1-20200928 133
capítulo 5 | Creación, visualización y edición de archivos de texto
>> redirigir
archivo 2>&1 stdout y
stderr para
agregar al
&>> archivo
mismo archivo
Importante
El orden de las operaciones de redireccionamiento es importante. La siguiente
secuencia redirige la salida estándar a file y luego redirige el error estándar al
mismo lugar que la salida estándar (file).
Los autores de este curso tienen una postura neutral respecto de este tema, y es
probable que se encuentren ambas sintaxis en el campo.
134 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
• Enumere los nombres de archivo regulares y ocultos del directorio de inicio en un archivo.
• 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 a un archivo mientras se visualiza 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.
RH124-RHEL8.2-es-1-20200928 135
capítulo 5 | Creación, visualización y edición de archivos de texto
stdout stdin
Las tuberías permiten que la salida de un proceso sea manipulada y formateada por otros
procesos antes de su salida al terminal. Una imagen mental útil es imaginar 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.
nota
Las tuberías y el redireccionamiento de E/S manipulan la salida y la entrada
estándar. El redireccionamiento envía la salida estándar a archivos o recibe la
entrada estándar de estos. Las tuberías envían la salida estándar de un proceso a la
entrada estándar de otro proceso.
Ejemplos de tuberías
Este ejemplo toma la salida del comando ls y usa less para mostrarla en el terminal de a una
pantalla por vez.
La salida del comando ls se canaliza a wc -l, que cuenta la cantidad de líneas recibidas de ls y
la imprime en el terminal.
[user@host ~]$ ls | wc -l
En esta tubería, head enviará las primeras 10 líneas de salida de ls -t, y el resultado final se
redirigirá a un archivo.
En este ejemplo, la salida del comando ls irá al archivo, y less no mostrará nada en el terminal.
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 denominados 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.
136 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Si tee se usa al final de una tubería, la salida final de un comando se puede guardar y enviar al
terminal al mismo tiempo.
Importante
El error estándar puede redirigirse por una tubería, pero no se pueden usar los
operadores de redireccionamiento fusionados (&> y &>>) para esto.
Referencias
info bash (Manual de referencia de Bash para GNU)
Páginas del manual: bash(1), cat(1), head(1), less(1), mail(1), tee(1), tty(1), wc(1)
RH124-RHEL8.2-es-1-20200928 137
capítulo 5 | Creación, visualización y edición de archivos de texto
Cuestionario
Redireccionamiento de la salida a un
archivo o programa
Elija la respuesta correcta de las siguientes preguntas:
2. ¿Qué respuesta envía la salida a un archivo y envía los errores a un archivo diferente?
a. >archivo 2>archivo2
b. >archivo 1>archivo2
c. >archivo &2>archivo2
d. | tee file
3. ¿Qué respuesta envía tanto la salida como los errores a un archivo, lo crea o
sobreescribe su contenido?
a. | tee file
b. 2 &>archivo
c. 1 &>archivo
d. &>archivo
4. ¿Qué respuesta envía la salida y los errores al mismo archivo para garantizar que se
preserve el contenido existente del archivo?
a. >archivo 2>archivo2
b. &>archivo
c. >>archivo 2>&1
d. >>archivo 1>&1
5. ¿Qué respuesta descarta todos los mensajes que normalmente se envían al terminal?
a. >archivo 2>archivo2
b. &>/dev/null
c. &>/dev/null 2>archivo
d. &>archivo
138 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
6. ¿Qué respuesta envía la salida tanto a la pantalla como a un archivo al mismo tiempo?
a. &>/dev/null
b. >archivo 2>archivo2
c. | tee archivo
d. | < archivo
RH124-RHEL8.2-es-1-20200928 139
capítulo 5 | Creación, visualización y edición de archivos de texto
Solución
Redireccionamiento de la salida a un
archivo o programa
Elija la respuesta correcta de las siguientes preguntas:
2. ¿Qué respuesta envía la salida a un archivo y envía los errores a un archivo diferente?
a. >archivo 2>archivo2
b. >archivo 1>archivo2
c. >archivo &2>archivo2
d. | tee file
3. ¿Qué respuesta envía tanto la salida como los errores a un archivo, lo crea o
sobreescribe su contenido?
a. | tee file
b. 2 &>archivo
c. 1 &>archivo
d. &>archivo
4. ¿Qué respuesta envía la salida y los errores al mismo archivo para garantizar que se
preserve el contenido existente del archivo?
a. >archivo 2>archivo2
b. &>archivo
c. >>archivo 2>&1
d. >>archivo 1>&1
5. ¿Qué respuesta descarta todos los mensajes que normalmente se envían al terminal?
a. >archivo 2>archivo2
b. &>/dev/null
c. &>/dev/null 2>archivo
d. &>archivo
140 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
6. ¿Qué respuesta envía la salida tanto a la pantalla como a un archivo al mismo tiempo?
a. &>/dev/null
b. >archivo 2>archivo2
c. | tee archivo
d. | < archivo
RH124-RHEL8.2-es-1-20200928 141
capítulo 5 | Creación, visualización y edición de archivos de texto
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de 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 altamente configurable y eficaz para usuarios avanzados; incluye funciones como edición en
pantalla partida, formateo de color y resaltado para la edición de texto.
Pero entonces, ¿por qué aprender Vim en lugar de otras opciones posibles? La razón clave es que
Vim casi siempre está instalado en un servidor, si hay un editor de texto. Esto se debe a que vi se
especificó a través del estándar POSIX que Linux y muchos otros sistemas operativos tipo UNIX
cumplen en gran parte.
Inicio de Vim
Vim se puede instalar en Red Hat Enterprise Linux de dos maneras diferentes. Esto puede afectar
las funciones y los comandos Vim que tiene disponibles.
Es posible que su servidor solo tenga instalado el paquete vim-minimal. Esta es una instalación
muy ligera que incluye solo el conjunto de características principales y el comando vi básico. En
este caso, puede abrir un archivo para editarlo con vi filename y tendrá disponibles todas las
funciones básicas que se analizan en esta sección.
142 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
De cualquier manera, las características principales que analizaremos en esta sección funcionarán
con ambos comandos.
nota
Si vim-enhanced está instalado, los usuarios normales tendrán un conjunto de alias
de shell, de manera que si ejecutan el comando vi, obtendrán automáticamente
el comando vim en su lugar. Esto no se aplica a root y otros usuarios con UID por
debajo de 200 (que utilizan los servicios del sistema).
Si está editando archivos como el usuario root y espera que vi se ejecute en modo
mejorado, esto puede ser una sorpresa. Del mismo modo, si vim-enhanced está
instalado y un usuario normal quiere el vi simple por algún motivo, es posible que
necesiten utilizar \vi para anular el alias temporalmente.
Los usuarios avanzados pueden 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 manipulación de texto. Ingrese en cada uno de los otros modos con
pulsaciones de tecla de caracteres únicos para acceder a funciones de edición específicas:
RH124-RHEL8.2-es-1-20200928 143
capítulo 5 | Creación, visualización y edición de archivos de texto
• Al pulsar la tecla v se ingresa al modo visual, en el cual se pueden seleccionar varios caracteres
para la manipulación de texto. Utilice Shift+V (Mayús V) para líneas múltiples y Ctrl+V para
seleccionar en bloque. La misma pulsación de tecla utilizada para ingresar al modo visual (v,
Shift+V (Mayús V) o Ctrl+V) se utiliza para salir.
• 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.
nota
Si no está seguro del modo en que está Vim, puede probar y presionar Esc un par
de veces para volver al modo de comandos. Presionar Esc en modo de comandos
es inofensivo, por lo que no hay inconveniente con un par de pulsaciones de teclas
adicionales.
La tecla i pone a Vim en modo de inserción. Todo el texto ingresado después de esto se trata
como contenido del archivo hasta que salga del modo de inserción. Al pulsar la tecla Esc, se sale
del modo de inserción y se vuelve al modo de comandos de Vim. La tecla u deshace la edición
más reciente. Presione la tecla x para borrar un solo carácter. El comando :w escribe (guarda)
el archivo y permanece en el modo de comandos para seguir editando. El comando :wq escribe
(guarda) el archivo y sale de Vim. El comando :q! sale de Vim y descarta todos los cambios que
se realizaron al archivo desde la última escritura. El usuario de Vim debe aprender estos comandos
para realizar cualquier tarea de edición.
• Modo de caracteres: v
144 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
El modo de bloques visuales es ideal para manipular archivos de datos. Desde el cursor, presione
Ctrl+v para entrar al bloque visual. En la parte inferior de la pantalla aparecerá VISUAL BLOCK
(BLOQUE VISUAL). Utilice las teclas de flecha para resaltar la sección que desea cambiar.
nota
Vim tiene numerosas capacidades, pero primero debe dominar el flujo de trabajo
básico. No es necesario que entienda rápidamente todo el editor y sus capacidades.
Familiarícese con esos conceptos básicos a través de la práctica y, luego, expanda
su vocabulario de Vim aprendiendo más comandos de Vim (pulsaciones de teclas).
El ejercicio para esta sección le presentará el comando vimtutor. Este tutorial, que
se incluye con vim-enhanced , es una excelente manera de aprender la funcionalidad
principal de Vim.
Referencias
Página del manual: vim(1)
Editor Vim
http://www.vim.org/
RH124-RHEL8.2-es-1-20200928 145
capítulo 5 | Creación, visualización y edición de archivos de texto
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute el comando lab edit-vim start. Este script verifica que el
servidor de destino está en ejecución.
En la presentación se utilizan las teclas de flecha del teclado para la navegación. Cuando
vi se desarrolló por primera vez, los usuarios no podían confiar en tener teclas de flecha o
asignaciones de teclado que funcionaran para que las teclas de flecha movieran el cursor.
Por lo tanto, vi se diseñó originalmente para mover el cursor con comandos mediante las
teclas de caracteres estándar, como las agrupadas convenientemente H, J, K, and L.
A continuación se incluye una manera de recordarlas:
hang atrás, jump abajo, kick arriba, leap adelante.
146 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Vim ofrece pulsaciones de teclas rápidas y eficientes para eliminar una cantidad exacta de
palabras, líneas, oraciones y párrafos. Sin embargo, las tareas de edición pueden realizarse
usando x para la eliminación de un único carácter.
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab edit-vim finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 147
capítulo 5 | Creación, visualización y edición de archivos de texto
Objetivos
Tras finalizar esta sección deberá ser capaz de usar 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.
VARIABLENAME=value
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). Esta lista es
tan larga que quizá prefiera canalizar la salida al comando less para poder verla una página por
vez.
148 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Un ejemplo más práctico podría ser usar una variable para referirse a un nombre de archivo largo
para varios comandos.
RH124-RHEL8.2-es-1-20200928 149
capítulo 5 | Creación, visualización y edición de archivos de texto
Importante
Si hay algún carácter final junto al nombre de la variable, es posible que deba
proteger el nombre de la variable con llaves. Siempre puede usar llaves en la
expansión de variable, pero también verá muchos ejemplos en los que no son
necesarias y se omiten.
Por ejemplo, dos variables de shell que afectan el historial de shell y el comando history son
HISTFILE y HISTFILESIZE. Si HISTFILE está configurado, especifica la ubicación del archivo
donde se guardará el historial de shell al salir. De manera predeterminada, se usa el archivo
~/.bash_history del usuario. La variable HISTFILESIZE especifica cuántos comandos deben
guardarse en ese archivo del historial.
Otro ejemplo es PS1, una variable de shell que controla el aspecto del prompt de shell. Si cambia
este valor, cambiará el aspecto del prompt de shell. Una serie de expansiones de caracteres
especiales compatibles con el prompt se enumeran en la sección "PROMPTING" (Pedido de
confirmación) de la página del manual bash(1).
Dos ítems que se deben tener en cuenta sobre el ejemplo anterior: primero, debido a que el valor
establecido por PS1 es un prompt, casi siempre es preferible finalizar el prompt con un espacio
final. Segundo, 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, ya sea simples o dobles;
esto no es opcional. Se producirán resultados inesperados si se omiten las comillas. Examine el
ejemplo de PS1 anterior y tenga en cuenta que cumple con la recomendación (espacio final) y la
regla (comillas).
Las variables de shell que no son variables de entorno solo puede usarlas la shell. Las variables de
entorno pueden usarlas la shell y los programas ejecutados desde esa shell.
150 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
nota
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 convertir 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. Esto se puede usar para ayudar a los programas a
determinar dónde guardar los archivos.
Otro ejemplo es LANG, que establece la configuración regional. Esto 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
utilizará 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 utilizará el francés y la codificación Unicode UTF-8.
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 fácilmente directorios adicionales al final de su PATH . Por ejemplo, quizás tenga
scripts o programas ejecutables que desea ejecutar como comandos regulares en /home/user/
sbin . Puede agregar /home/user/sbin hasta el final de su PATH para la sesión actual de esta
forma:
RH124-RHEL8.2-es-1-20200928 151
capítulo 5 | Creación, visualización y edición de archivos de texto
Para enumerar todas las variables de entorno de una shell en particular, 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 compuestos por caracteres en minúscula para evitar los nombres
duplicados.
Los scripts exactos que se ejecutan dependen de cómo se inició la shell, si se trata de una shell
interactiva con inicio de sesión, una shell interactiva sin inicio de sesión o un script de shell.
# .bashrc
152 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
nota
La mejor manera de ajustar la configuración que afecta a todas las cuentas de
usuario es agregando un archivo con un nombre que termina en .sh que contiene
los cambios al directorio /etc/profile.d. Para hacer esto, debe iniciar sesión
como el usuario root.
[user@host ~]$
Para deshacer la exportación de una variable sin deshacer la configuración, use el comando
export -n:
Referencias
Páginas de manual: bash(1), env(1), builtins(1)
RH124-RHEL8.2-es-1-20200928 153
capítulo 5 | Creación, visualización y edición de archivos de texto
Ejercicio Guiado
Resultados:
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute el comando lab edit-shell start. Este script verifica que el
servidor de destino está en ejecución.
1. Cambie la variable de shell PS1 del usuario student a [\u@\h \t \w]$ (recuerde poner
el valor de PSI entre comillas y colocar un espacio final después del símbolo de dólar). Esto
agregará el tiempo al prompt.
1.3. Agregue la variable de shell PS1 y su valor en el archivo ~/.bashrc. Recuerde incluir
un espacio al final del valor configurado y ponga el valor completo entre comillas,
incluido el espacio final.
...output omitted...
# User specific environment and startup programs
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
PS1='[\u@\h \t \w]$ '
export PATH
154 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
1.4. Salga de servera y vuelva a iniciar sesión usando el comando ssh para actualizar el
prompt de comandos.
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 hacer que la variable sea una
variable de entorno.
4. Salga de servera.
Finalizar
En workstation, ejecute el script lab edit-shell finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 155
capítulo 5 | Creación, visualización y edición de archivos de texto
156 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Redirija un listado extenso de todo el contenido del directorio de inicio de student, incluidos
los directorios y archivos ocultos, a un archivo denominado editing_final_lab.txt.
2. Edite el archivo con Vim.
3. Elimine las primeras tres líneas. Ingrese al modo visual basado en líneas con una V mayúscula.
4. Elimine las columnas de la primera línea. Ingrese al modo visual con la v minúscula. La v
minúscula selecciona únicamente los caracteres de una sola línea. Se deben eliminar las
columnas posteriores a -rw-.
5. Elimine las columnas y el punto posterior ( ".") en las líneas restantes. Utilice el modo de
bloque visual. Ingrese en el modo de bloque visual con la secuencia de control Ctrl+V. Use
esta secuencia de teclas para seleccionar un bloque de caracteres en varias líneas. Se deben
eliminar las columnas posteriores a -rw-.
6. Utilice el modo de bloque visual para eliminar la cuarta columna.
7. Use el modo de bloque visual para eliminar la columna de hora, pero deje el mes y el día en
todas las líneas.
8. Elimine las filas Desktop y Public. Ingrese al modo de línea visual con una V mayúscula.
9. Use el comando :wq para guardar y cerrar el archivo. Realice una copia de respaldo con la
fecha (en segundos) para crear un nombre de archivo único.
El siguiente comando copy es muy extenso y debe ingresarse en una sola línea.
10. Agregue una línea discontinua al archivo. La línea discontinua debe contener al menos 12
guiones.
El siguiente comando echo es muy extenso y debe ingresarse en una sola línea.
RH124-RHEL8.2-es-1-20200928 157
capítulo 5 | Creación, visualización y edición de archivos de texto
11. Adjunte una lista de directorios del directorio Documents. Enumere el listado de directorios
en el terminal y envíelo al archivo editing_final_lab.txt con una línea de comandos.
12. Confirme que el listado de directorios esté en la parte inferior del archivo de trabajo de
laboratorio.
Evaluación
En workstation, ejecute el comando lab edit-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab edit-review finish para terminar este ejercicio.
158 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Redirija un listado extenso de todo el contenido del directorio de inicio de student, incluidos
los directorios y archivos ocultos, a un archivo denominado editing_final_lab.txt.
nota
La salida puede no coincidir exactamente con los ejemplos mostrados.
3. Elimine las primeras tres líneas. Ingrese al modo visual basado en líneas con una V mayúscula.
Utilice las teclas de flecha para ubicar el cursor en el primer carácter de la primera fila.
Ingrese al modo visual basado en líneas con Shift+V (Mayús V). Desplácese hacia abajo
usando la tecla de flecha dos veces para seleccionar las primeras tres filas. Elimine las filas
con x.
RH124-RHEL8.2-es-1-20200928 159
capítulo 5 | Creación, visualización y edición de archivos de texto
4. Elimine las columnas de la primera línea. Ingrese al modo visual con la v minúscula. La v
minúscula selecciona únicamente los caracteres de una sola línea. Se deben eliminar las
columnas posteriores a -rw-.
Utilice las teclas de flecha para ubicar el cursor en el primer carácter. Ingrese al modo visual
con la v minúscula. Use las teclas de flecha para ubicar el cursor en el último carácter. Elimine
la selección con x.
5. Elimine las columnas y el punto posterior ( ".") en las líneas restantes. Utilice el modo de
bloque visual. Ingrese en el modo de bloque visual con la secuencia de control Ctrl+V. Use
160 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
esta secuencia de teclas para seleccionar un bloque de caracteres en varias líneas. Se deben
eliminar las columnas posteriores a -rw-.
Utilice las teclas de flecha para ubicar el cursor en el primer carácter. Ingrese en el modo
visual con la secuencia de control Ctrl+V. Utilice las teclas de flecha para ubicar el cursor en
el último carácter de la columna de la última línea. Elimine la selección con x.
RH124-RHEL8.2-es-1-20200928 161
capítulo 5 | Creación, visualización y edición de archivos de texto
7. Use el modo de bloque visual para eliminar la columna de hora, pero deje el mes y el día en
todas las líneas.
Utilice las teclas de flecha para ubicar el cursor en el primer carácter. 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 columna de hora. Elimine la selección con x.
8. Elimine las filas Desktop y Public. Ingrese al modo de línea visual con una V mayúscula.
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 con x.
Repita estos pasos para la fila Public.
162 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
9. Use el comando :wq para guardar y cerrar el archivo. Realice una copia de respaldo con la
fecha (en segundos) para crear un nombre de archivo único.
El siguiente comando copy es muy extenso y debe ingresarse en una sola línea.
10. Agregue una línea discontinua al archivo. La línea discontinua debe contener al menos 12
guiones.
El siguiente comando echo es muy extenso y debe ingresarse en una sola línea.
11. Adjunte una lista de directorios del directorio Documents. Enumere el listado de directorios
en el terminal y envíelo al archivo editing_final_lab.txt con una línea de comandos.
12. Confirme que el listado de directorios esté en la parte inferior del archivo de trabajo de
laboratorio.
RH124-RHEL8.2-es-1-20200928 163
capítulo 5 | Creación, visualización y edición de archivos de texto
Evaluación
En workstation, ejecute el comando lab edit-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab edit-review finish para terminar este ejercicio.
164 RH124-RHEL8.2-es-1-20200928
capítulo 5 | Creación, visualización y edición de archivos de texto
Resumen
En este capítulo, aprendió lo siguiente:
• 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 utilizar 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 se pueden usar para conectar la salida estándar de un proceso a la entrada
estándar de otro proceso, y se pueden usar para formatear la salida o crear comandos
complejos.
• Debe saber cómo utilizar al menos un editor de texto de línea de comandos y, por lo general,
Vim está instalado.
RH124-RHEL8.2-es-1-20200928 165
166 RH124-RHEL8.2-es-1-20200928
capítulo 6
Administración de usuarios y
grupos locales
Meta Crear, administrar y eliminar usuarios y grupos
locales y administrar políticas de contraseña
locales.
RH124-RHEL8.2-es-1-20200928 167
capítulo 6 | Administración de usuarios y grupos locales
Objetivos
Después de completar esta sección, debe poder describir el propósito de los usuarios y grupos en
un sistema Linux.
¿Qué es un usuario?
Una cuenta de usuario se utiliza para proporcionar límites de seguridad entre diferentes personas y
programas que pueden ejecutar comandos.
Los usuarios tienen nombres de usuario para identificarlos como usuarios humanos y facilitar
el trabajo con ellos. Internamente, el sistema distingue las cuentas de usuario por el número de
identificación único que se les asigna, el ID de usuario o UID. Si las personas utilizan una cuenta
de usuario, generalmente se le asignará una contraseña secreta que el usuario utilizará para
demostrar que es el usuario autorizado real al iniciar sesión.
Las cuentas de usuario son fundamentales para la seguridad del sistema. Cada proceso (programa
en ejecución) en el sistema se ejecuta como un usuario particular. Cada archivo tiene un usuario
particular como su propietario. La propiedad del archivo ayuda al sistema a aplicar el control
de acceso para los usuarios de los archivos. El usuario asociado con un proceso de ejecución
determina los archivos y directorios accesibles para ese proceso.
Hay tres tipos principales de cuenta de usuario: el superusuario, el usuario del sistema y el usuario
normal.
• El sistema tiene cuentas de usuario del sistema que utilizan los procesos que proporcionan
servicios de soporte. Estos procesos, o daemons por lo general no necesitan ejecutarse como
superusuario. Son cuentas asignadas sin privilegios que les permiten proteger sus archivos y
otros recursos entre sí y de los usuarios habituales del sistema. Los usuarios no inician sesión de
forma interactiva mediante una cuenta de usuario del sistema.
• La mayoría de los usuarios tienen cuentas de usuario normal que utilizan para su trabajo diario.
Al igual que los usuarios del sistema, los usuarios normales tienen acceso limitado al sistema.
Puede utilizar 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.
168 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
[user01@host]$ id user02
uid=1002(user02) gid=1001(user02) groups=1001(user02)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Para ver el propietario de un archivo, use el comando ls -l. Para ver el propietario de un
directorio, use el comando ls -ld. En la siguiente salida, la tercera columna muestra el nombre
de usuario.
Para ver la información del proceso, use el comando ps. La opción predeterminada es mostrar
solo los procesos que están en la shell actual. Agregue la opción a para ver todos los procesos con
un terminal. Para ver el usuario relacionado con un proceso, incluya la opción u. En la siguiente
salida, la primera columna muestra el nombre de usuario.
[user01@host]$ ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 777 0.0 0.0 225752 1496 tty1 Ss+ 11:03 0:00 /sbin/agetty -o -
p -- \u --noclear tty1 linux
root 780 0.0 0.1 225392 2064 ttyS0 Ss+ 11:03 0:00 /sbin/agetty -o -
p -- \u --keep-baud 115200,38400,9600
user01 1207 0.0 0.2 234044 5104 pts/0 Ss 11:09 0:00 -bash
user01 1319 0.0 0.2 266904 3876 pts/0 R+ 11:33 0:00 ps au
En la salida de los comandos anteriores, se muestran los usuarios por nombre, pero, internamente,
el sistema operativo usa los UID para realizar un seguimiento de los usuarios. La asignación de
nombres de usuario a UID se define en las bases de datos de la información de la cuenta. De forma
predeterminada, los sistemas usan el archivo /etc/passwd para almacenar información sobre los
usuarios locales.
Cada linea del archivo /etc/passwd contiene información sobre un usuario. Se divide en siete
campos separados por dos puntos. Este es un ejemplo de una línea de /etc/passwd:
RH124-RHEL8.2-es-1-20200928 169
capítulo 6 | Administración de usuarios y grupos locales
¿Qué es un grupo?
Un grupo es una colección de usuarios que necesitan compartir el acceso a archivos y otros
recursos del sistema. Los grupos se pueden utilizar para otorgar acceso a los archivos a un
conjunto de usuarios en lugar de a un solo usuario.
Como los usuarios, los grupos tienen nombres de grupo para facilitar el trabajo con ellos.
Internamente, el sistema distingue los grupos por el número de identificación único que se les
asigna, el ID de grupo o GID.
Cada linea del archivo /etc/group contiene información sobre un grupo. Cada entrada de grupo
se divide en cuatro campos separados con dos puntos. Este es un ejemplo de una línea de /etc/
group:
Normalmente, cuando crea un nuevo usuario normal, se crea un nuevo grupo con el mismo nombre
que ese usuario. Ese grupo se usa como el grupo principal del nuevo usuario, y ese usuario es
el único miembro de este grupo privado de usuarios. Se deduce que esto ayuda a simplificar la
administración de los permisos de archivos, que se analizará más adelante en este curso.
Los usuarios también pueden tener grupos adicionales. La pertenencia a grupos adicionales se
determina a través del archivo /etc/group. A los usuarios se les otorga acceso a los archivos en
función de si alguno de sus grupos tiene acceso. No importa si el grupo o los grupos que tienen
acceso son principales o adicionales para el usuario.
Por ejemplo, si el usuario user01 tiene un grupo principal usero01 y grupos adicionales wheel y
webadmin, entonces ese usuario puede leer archivos legibles para cualquiera de esos tres grupos.
[user03@host ~]$ id
uid=1003(user03) gid=1003(user03) groups=1003(user03),10(wheel),10000(group01)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
170 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
En el ejemplo anterior, user03 tiene el grupo user03 como su grupo principal (gid). El elemento
groups enumera todos los grupos de este usuario, y además del grupo principal user03, el
usuario tiene los grupos wheel y group01 como grupos adicionales.
Referencias
Páginas del manual: id(1), passwd(5) y group(5)
(Tenga en cuenta que el paquete glibc-devel se debe haber instalado para que este
nodo de información esté disponible).
RH124-RHEL8.2-es-1-20200928 171
capítulo 6 | Administración de usuarios y grupos locales
Cuestionario
1. ¿Qué ítem representa un número que identifica al usuario en el nivel más fundamental?
a. usuario principal
b. UID
c. GID
d. nombredeusuario
2. ¿Qué ítem representa el programa que proporciona el prompt de línea de comandos del
usuario?
a. shell principal
b. directorio de inicio
c. shell de inicio de sesión
d. nombre de comando
4. ¿Qué ítem o archivo representa la ubicación de los archivos personales del usuario?
a. directorio de inicio
b. shell de inicio de sesión
c. /etc/passwd
d. /etc/group
5. ¿Qué ítem representa un número que identifica al grupo en el nivel más fundamental?
a. grupo principal
b. UID
c. GID
d. groupid
172 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
RH124-RHEL8.2-es-1-20200928 173
capítulo 6 | Administración de usuarios y grupos locales
Solución
1. ¿Qué ítem representa un número que identifica al usuario en el nivel más fundamental?
a. usuario principal
b. UID
c. GID
d. nombredeusuario
2. ¿Qué ítem representa el programa que proporciona el prompt de línea de comandos del
usuario?
a. shell principal
b. directorio de inicio
c. shell de inicio de sesión
d. nombre de comando
4. ¿Qué ítem o archivo representa la ubicación de los archivos personales del usuario?
a. directorio de inicio
b. shell de inicio de sesión
c. /etc/passwd
d. /etc/group
5. ¿Qué ítem representa un número que identifica al grupo en el nivel más fundamental?
a. grupo principal
b. UID
c. GID
d. groupid
174 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
RH124-RHEL8.2-es-1-20200928 175
capítulo 6 | Administración de usuarios y grupos locales
Objetivos
Después de completar esta sección, podrá cambiar a la cuenta de superusuario para administrar
un sistema Linux y otorgar a otros usuarios acceso de superusuario a través del comando sudo.
El superusuario
La mayoría de los sistemas operativos tienen una especie de superusuario; un usuario que tiene
todo el poder sobre el sistema. En Red Hat Enterprise Linux, este es el usuario root. Este usuario
tiene el poder de anular los privilegios normales del sistema de archivos, y se usa para manejar y
administrar el sistema. Para realizar tareas, como la instalación o eliminación de software, y para
administrar los directorios y los archivos del sistema, los usuarios deben aumentar sus privilegios al
usuario root.
El usuario root solo entre los usuarios normales puede controlar la mayoría de los dispositivos,
pero hay algunas excepciones. Por ejemplo, los usuarios normales pueden controlar dispositivos
desmontables, como dispositivos USB. Por lo tanto, los usuarios normales pueden agregar y
eliminar archivos y administrar de otro modo un dispositivo desmontable, pero solo el usuario
root puede administrar los discos duros "fijos" de manera predeterminada.
Sin embargo, este privilegio ilimitado viene acompañado de una responsabilidad. El usuario
root tiene poder ilimitado para dañar el sistema: eliminar archivos y directorios, eliminar cuentas
de usuarios, agregar puertas traseras, etc. Si la cuenta del usuario root está comprometida,
alguien más tendrá control administrativo del sistema. A lo largo de este curso, se les indicará a los
administradores que inicien sesión como usuario normal y que escalen los privilegios a root solo
cuando sea necesario.
Advertencia
Una práctica habitual en Microsoft Windows en el pasado era que el usuario
administrador local inicie sesión en forma directa para que realice las tareas de
administrador del sistema. Aunque esto es posible en Linux, Red Hat recomienda
que los administradores del sistema no inicien sesión directamente como root. En
su lugar, los administradores de sistema deben iniciar sesión como usuario normal y
usar otros mecanismos (su, sudo o PolicyKit, por ejemplo) para obtener privilegios
de superusuario temporalmente.
176 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Intercambio de usuarios
El comando su le permite a los usuarios cambiar a una cuenta de usuario diferente. Si ejecuta
su desde una cuenta de usuario normal, se le solicitará la contraseña de la cuenta a la que desea
cambiar. Cuando root ejecuta su, no es necesario introducir la contraseña del usuario.
[user01@host ~]$ su -
Password:
[root@host ~]#
El comando su inicia una shell sin inicio de sesión, mientras que el comando su - (con la opción
de guion) inicia una shell de inicio de sesión. La diferencia principal entre los dos comandos es que
su - establece el entorno de la shell como si iniciara una sesión nueva como ese usuario, mientras
que su simplemente inicia una shell como ese usuario, pero usa la configuración de entorno del
usuario original.
En la mayoría de los casos, los administradores deben ejecutar su - para obtener una shell con
la configuración de entorno normal del usuario de destino. Si desea obtener más información,
consulte la página del manual bash(1).
nota
El comando su se usa frecuentemente para obtener una interfaz de línea de
comandos (prompt de shell) que se ejecuta como otro usuario, generalmente root.
Sin embargo, con la opción -c, se puede usar como la utilidad de Windows runas
para ejecutar un programa arbitrario como otro usuario. Ejecute info su para ver
más detalles.
A diferencia de su, sudo por lo general requiere que un usuario ingrese su propia contraseña para
la autenticación y no la contraseña de la cuenta a la que intenta acceder. Es decir, los usuarios que
utilizan sudo para ejecutar comandos como root no necesitan saber la contraseña root. En su
lugar, utilizan sus propias contraseñas para autenticar el acceso.
Además, sudo se puede configurar para permitir que usuarios específicos ejecuten cualquier
comando como otro usuario, o solo algunos comandos como ese usuario.
Por ejemplo, cuando sudo se configura para permitir al usuario user01 ejecutar el comando
usermod como root, el usuario user01 puede ejecutar el siguiente comando a fin de bloquear o
desbloquear una cuenta de usuario:
RH124-RHEL8.2-es-1-20200928 177
capítulo 6 | Administración de usuarios y grupos locales
Un beneficio adicional de usar sudo es que todos los comandos ejecutados se registran de
manera predeterminada en /var/log/secure.
En Red Hat Enterprise Linux 7 y Red Hat Enterprise Linux 8, todos los miembros del grupo
wheel pueden usar sudo para ejecutar comandos como cualquier usuario, incluido el usuario
root. Se le pedirá al usuario que ingrese su propia contraseña. Este es un cambio de Red Hat
Enterprise Linux 6 y versiones anteriores, donde los usuarios que eran miembros del grupo wheel
no obtenían este acceso administrativo de manera predeterminada.
Advertencia
RHEL 6 no otorgó ningún privilegio especial al grupo wheel de manera
predeterminada. Es probable que los sitios que estuvieron usando este grupo para
un propósito no estándar se sorprendan cuando RHEL 7 y RHEL 8 otorguen en
forma automática y a todos los miembros de wheel privilegios totales de sudo.
Esto podría provocar que usuarios no autorizados obtengan acceso administrativo a
los sistemas RHEL 7 y RHEL 8.
Otra forma de acceder a la cuenta root con sudo es usar el comando sudo -i. Esto cambiará
a la cuenta root y ejecutará la shell predeterminada de ese usuario (generalmente bash) y los
178 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
scripts de inicio de sesión de shell asociados. Si solo desea ejecutar la shell, puede utilizar el
comando sudo -s.
Por ejemplo, un administrador puede obtener una shell interactiva como root en una instancia
de AWS EC2 al usar una autenticación de clave pública de SSH para iniciar sesión como el usuario
normal ec2-user y, luego, ejecutar sudo -i para obtener la shell del usuario root.
Configuración de sudo
El archivo de configuración principal para sudo es /etc/sudoers. Para evitar problemas si varios
administradores intentan editarlo al mismo tiempo, solo debe editarse con el comando especial
visudo.
Por ejemplo, la siguiente línea del archivo /etc/sudoers habilita el acceso sudo para miembros
del grupo wheel.
En esta línea, %wheel es el usuario o grupo al que se aplica la regla. Un % especifica que este es
un grupo, el grupo wheel. El ALL=(ALL) especifica que en cualquier host que pueda tener
este archivo, wheel puede ejecutar cualquier comando. El ALL final especifica que wheel puede
ejecutar esos comandos como cualquier usuario en el sistema.
nota
La utilización de archivos adicionales en el directorio /etc/sudoers.d es
conveniente y simple. Puede habilitar o deshabilitar el acceso sudo simplemente al
copiar un archivo en el directorio o eliminándolo de él.
Para habilitar acceso sudo completo para el usuario user01, puede crear /etc/sudoers.d/
user01 con el siguiente contenido.
Para habilitar acceso sudo completo para el grupo group01, puede crear /etc/sudoers.d/
group01 con el siguiente contenido:
RH124-RHEL8.2-es-1-20200928 179
capítulo 6 | Administración de usuarios y grupos locales
También es posible configurar sudo para permitir que un usuario ejecute comandos como otro
usuario sin ingresar su contraseña.
Si bien otorgar este nivel de acceso a un usuario o grupo implica riesgos de seguridad
evidentes, se usa con frecuencia en instancias de la nube, máquinas virtuales y sistemas de
aprovisionamiento para facilitar la configuración de servidores. La cuenta con este acceso se debe
proteger cuidadosamente y puede requerir autenticación de clave pública de SSH para que un
usuario que se encuentra en un sistema remoto pueda acceder a ella.
Por ejemplo, la AMI oficial de Red Hat Enterprise Linux en Amazon Web Services Marketplace se
envía con las contraseñas de los usuarios root y ec2-user bloqueadas. La cuenta de usuario
ec2-user está configurada para permitir el acceso interactivo remoto a través de la autenticación
de clave pública de SSH. El usuario ec2-user también puede ejecutar cualquier comando
como root sin contraseña debido a que la última línea del archivo /etc/sudoers de AMI está
configurada de la siguiente manera:
El requisito de ingresar una contraseña para sudo puede volverse a habilitar o pueden hacerse
otros cambios para reforzar la seguridad como parte del proceso de configuración del sistema.
180 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
nota
En este curso, puede ver el uso de sudo su - en lugar de sudo -i. Ambos
comandos funcionan, pero hay algunas diferencias sutiles entre ellos.
Para la mayoría de los propósitos, esta no es una gran diferencia. Sin embargo, por
razones de consistencia de la configuración de PATH en los sistemas con el archivo
/etc/sudoers predeterminado, los autores de este curso utilizan sudo -i en los
ejemplos y los ejercicios.
Referencias
Páginas del manual: su(1), sudo(8), visudo(8) y sudoers(5)
(Tenga en cuenta que el paquete glibc-devel se debe haber instalado para que este
nodo de información esté disponible).
RH124-RHEL8.2-es-1-20200928 181
capítulo 6 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Usar sudo para cambiar a root y acceder a la shell interactiva como root sin tener que
saber la contraseña del superusuario.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. Explore el entorno de la shell de student. Visualice la información del usuario y del grupo
actual, y muestre el directorio de trabajo actual. También vea las variables de entorno que
especifican el directorio de inicio del usuario y las ubicaciones de los archivos ejecutables
del usuario.
[student@servera ~]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
182 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
2.3. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
3. Cambie a root en una shell sin inicio de sesión y explore el nuevo entorno de la shell.
[root@servera student]# id
uid=0(root) gid=0(root) groups=0(root)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
3.4. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
Si ya tiene experiencia con Linux y el comando su, es posible que haya esperado que
el uso de su sin la opción del guion (-) para convertirse en root le haría mantener
el PATH actual de student. Eso no sucedió. Como verá en el siguiente paso, este
tampoco es el PATH habitual para root.
¿Qué sucedió? La diferencia es que no ejecutó su directamente. En cambio, ejecutó
su como root mediante sudo porque no cuenta con la contraseña del superusuario.
El comando sudo inicialmente anula la variable PATH del entorno inicial por razones
de seguridad. Cualquier comando que se ejecute después de la anulación inicial
todavía puede actualizar la variable PATH, como verá en los siguientes pasos.
3.5. Salga de la shell del usuario root para volver a la shell del usuario student.
RH124-RHEL8.2-es-1-20200928 183
capítulo 6 | Administración de usuarios y grupos locales
4. Cambie a root en una shell de inicio de sesión y explore el nuevo entorno de la shell.
[root@servera ~]# id
uid=0(root) gid=0(root) groups=0(root)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
4.4. Imprima los valores de las variables HOME y PATH para determinar el directorio de
inicio y la ruta de los archivos ejecutables del usuario, respectivamente.
4.5. Salga de la shell del usuario root para volver a la shell del usuario student.
5. Verifique que el usuario operator1 esté configurado para ejecutar cualquier comando
como cualquier usuario que use sudo.
184 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
6.2. Intente ver las últimas cinco líneas de /var/log/messages sin usar sudo. Debería
fallar.
6.3. Intente ver las últimas cinco líneas de /var/log/messages con sudo. Debería
funcionar.
nota
La salida anterior puede diferir en su sistema.
6.4. Intente hacer una copia de /etc/motd como /etc/motdOLD sin usar sudo. Debería
fallar.
6.5. Intente hacer una copia de /etc/motd como /etc/motdOLD con sudo. Debería
funcionar.
RH124-RHEL8.2-es-1-20200928 185
capítulo 6 | Administración de usuarios y grupos locales
6.8. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-sudo finish para terminar este ejercicio. Este script
elimina las cuentas de usuario y los archivos creados al inicio del ejercicio para garantizar que el
entorno esté limpio.
186 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Objetivos
Tras finalizar esta sección, deberá poder crear, modificar y eliminar cuentas de usuarios locales.
• El comando useradd --help muestra las opciones básicas que pueden usarse para anular los
valores predeterminados. En la mayoría de los casos, las mismas opciones pueden usarse con el
comando usermod para modificar un usuario existente.
• Algunos valores predeterminados, como el rango de números UID válidos y las reglas de
vigencia de contraseñas predeterminadas, se leen desde el archivo /etc/login.defs. Los
valores incluidos en este archivo solo se usan durante la creación de usuarios nuevos. Un cambio
en este archivo no afectará a los usuarios existentes.
• El comando usermod --help muestra las opciones básicas que pueden usarse para modificar
una cuenta. Algunas opciones comunes incluyen las siguientes:
RH124-RHEL8.2-es-1-20200928 187
capítulo 6 | Administración de usuarios y grupos locales
-G, --groups GROUPS Especificar una lista de grupos adicionales separados por
comas para la cuenta de usuario.
-s, --shell SHELL Especificar una shell de inicio de sesión particular para la
cuenta de usuario.
• El comando userdel username elimina los detalles de user01 de /etc/passwd, pero deja
el directorio de inicio del usuario intacto.
188 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Advertencia
Cuando se elimina un usuario con userdel sin la opción -r especificada, el sistema
tendrá archivos que pertenecen a un UID no asignado. Esto también puede suceder
cuando un archivo, que tiene un usuario eliminado como su propietario, existe fuera
del directorio de inicio de ese usuario. Esta situación puede hacer que se filtre
información y causar otros problemas de seguridad.
En Red Hat Enterprise Linux 7 y Red Hat Enterprise Linux 8, el comando useradd
asigna a los nuevos usuarios el primer UID libre mayor o igual a 1000, a menos que
especifique explícitamente uno mediante la opción -u.
Así es como puede ocurrir que se filtre información. Si el primer UID libre ha sido
asignado previamente a una cuenta de usuario que ha sido eliminada del sistema, el
UID del usuario anterior se reasignará al nuevo usuario y le dará al nuevo usuario la
propiedad de los archivos restantes del usuario anterior.
Observe que user02 ahora es propietario de todos los archivos que pertenecieron
a user01.
Según la situación, una solución a este problema es eliminar todos los archivos
que no pertenecen a nadie del sistema cuando se elimina el usuario que los creó.
Otra solución es asignar manualmente los archivos que no pertenecen a nadie a
otro usuario. El usuario root puede utilizar el comando find / -nouser -o -
nogroup para encontrar todos los archivos y directorios que no pertenecen a nadie.
• El usuario root puede definir una contraseña en cualquier valor. Aparecerá un mensaje si la
contraseña no cumple con los criterios mínimos recomendados, seguido de un prompt para que
vuelva a ingresar la contraseña nueva y todos los símbolos se actualizarán correctamente.
RH124-RHEL8.2-es-1-20200928 189
capítulo 6 | Administración de usuarios y grupos locales
• Un usuario normal debe elegir una contraseña de al menos ocho caracteres y que no se base en
una palabra del diccionario, el nombre de usuario o la contraseña anterior.
Rangos de UID
Red Hat Enterprise Linux usa números y rangos de números de UID específicos con fines
específicos.
• UID 1-200 es un rango de "usuarios del sistema" que Red Hat asignó estadísticamente a
procesos del sistema.
• UID 201-999 es un rango de "usuarios del sistema" usado por procesos del sistema que no
tienen archivos en el sistema de archivos. Por lo general, se asignan dinámicamente del pool
(conjunto) disponible cuando el software que los necesita está instalado. Los programas se
ejecutan como estos usuarios del sistema "sin privilegios" para limitar el acceso únicamente a los
recursos que necesitan para funcionar.
nota
Antes de RHEL 7, la convención consistía en que UID 1-499 se usaba para usuarios
del sistema y UID 500+ para usuarios regulares. Los rangos predeterminados
usados por useradd y groupadd pueden modificarse en el archivo /etc/
login.defs.
Referencias
Páginas del manual: useradd(8), usermod(8), userdel(8)
190 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Deberá poder configurar un sistema Linux con cuentas de usuario adicionales.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. En servera, cambie a root con sudo, lo que convierte el entorno de shell al del usuario
root.
RH124-RHEL8.2-es-1-20200928 191
capítulo 6 | Administración de usuarios y grupos locales
6. Actualice las cuentas de usuario operator1 y operator2 para incluir los comentarios
Operator One y Operator Two, respectivamente. Verifique que los comentarios se
hayan agregado correctamente.
6.3. Confirme que los comentarios para cada uno de los usuarios operator1 y
operator2 se reflejen en los registros de usuario.
192 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
7. Elimine el usuario operator3 junto con cualquier dato personal del usuario. Confirme que
el usuario se ha eliminado con éxito.
7.3. Salga de la shell del usuario root para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-manage finish para terminar este ejercicio. Este script
asegura que el entorno esté limpio.
RH124-RHEL8.2-es-1-20200928 193
capítulo 6 | Administración de usuarios y grupos locales
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de crear, modificar y eliminar
cuentas de grupos locales.
• El comando groupadd crea grupos. Sin opciones, el comando groupadd emplea el siguiente
GID disponible de un rango especificado en el archivo /etc/login.defs mientras crea los
grupos.
nota
Dada la creación automática de grupos privados de usuarios (GID 1000+),
generalmente se recomienda establecer aparte un rango de GID para su uso con los
grupos adicionales. Un rango más alto evitará una colisión con un grupo del sistema
(GID 0-999).
• La opción -r crea un grupo del sistema usando un GID del rango de GID de sistema válidos
incluidos en el archivo /etc/login.defs. Los ítems de configuración SYS_GID_MIN y
SYS_GID_MAX en /etc/login.defs definen el rango de GID del sistema.
194 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
nota
No puede eliminar un grupo si es el grupo principal de cualquier usuario existente.
Como en el caso de userdel, controle todos los sistemas de archivos para
asegurarse de que en el sistema no quede ningún archivo que sea propiedad del
grupo.
RH124-RHEL8.2-es-1-20200928 195
capítulo 6 | Administración de usuarios y grupos locales
Importante
El uso de la opción -a hace que usermod funcione en modo adición. Sin -a, el
usuario se eliminará de cualquiera de sus grupos adicionales actuales que no estén
incluidos en la lista de la opción -G.
Referencias
Páginas del manual: group(5), groupadd(8), groupdel(8) y usermod(8)
196 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. En servera, cambie a root con sudo, heredando todo el entorno del usuario root.
RH124-RHEL8.2-es-1-20200928 197
capítulo 6 | Administración de usuarios y grupos locales
198 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
7.4. Cree el archivo /etc/sudoers.d/admin para que los miembros de admin tengan
privilegios administrativos completos.
7.6. Salga de la shell del usuario sysadmin1 para volver a la shell del usuario root.
7.7. Salga de la shell del usuario root para volver a la shell del usuario student.
Finalizar
En workstation, ejecute lab users-group-manage finish para terminar este ejercicio.
Este script elimina las cuentas de usuario creadas al inicio del ejercicio.
RH124-RHEL8.2-es-1-20200928 199
capítulo 6 | Administración de usuarios y grupos locales
Administración de contraseñas de
usuarios
Objetivos
Después de completar esta sección, deberá ser capaz de establecer una política de administración
de contraseñas para los usuarios, así como de bloquear y desbloquear manualmente las cuentas
de los usuarios.
Como en el caso de /etc/passwd, cada usuario tiene una línea en el archivo /etc/shadow. A
continuación se muestra una línea de muestra de /etc/shadow con sus nueve campos separados
por dos puntos.
200 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
El algoritmo de hash utilizado para esta contraseña. El número 6 indica que es un hash
SHA-512, el predeterminado en Red Hat Enterprise Linux 8. Un 1 indicaría MD5, un SHA-256
5.
El valor aleatorio utilizado para cifrar la contraseña. Originalmente, se elige al azar.
El hash cifrado de la contraseña del usuario. El valor aleatorio y la contraseña no cifrada se
combinan y se cifran para generar este hash cifrado de la contraseña.
El motivo principal para combinar un valor aleatorio con la contraseña es defenderse contra los
ataques mediante listas de hash de contraseñas calculadas previamente. La adición de valores
aleatorios cambia los hash resultantes, lo que permite que la lista previamente calculada sea inútil.
Si un atacante puede obtener una copia de un archivo /etc/shadow que usa valores aleatorios,
necesitará adivinar la contraseña por la fuerza y requerirá más tiempo y esfuerzo.
Verificación de contraseña
Cuando un usuario intenta iniciar sesión, el sistema busca la entrada correspondiente al usuario en
/etc/shadow, combina el valor aleatorio del usuario con la contraseña sin cifrar que se ingresó y
los cifra usando el algoritmo de hash especificado. Si el resultado coincide con el hash cifrado, el
usuario ingresó la contraseña correcta. Si el resultado no coincide con el hash cifrado, el usuario
ingresó una contraseña incorrecta y el intento de inicio de sesión falla. Este método permite que el
sistema determine si el usuario ingresó la contraseña correcta sin almacenarla en una forma que se
puede usar en el inicio de sesión.
El comando chage anterior usa las opciones -m, -M, -W y -I para establecer la vigencia mínima,
la vigencia máxima, el período de advertencia y el período de inactividad de la contraseña del
usuario, respectivamente.
RH124-RHEL8.2-es-1-20200928 201
capítulo 6 | Administración de usuarios y grupos locales
El comando chage -E 2019-08-05 user03 hace que la cuenta del usuario user03 caduque
el 2019-08-05 (en formato AAAA-MM-DD).
nota
El comando date puede usarse para calcular una fecha en el futuro. La opción -u
informa la hora en UTC.
Restricción de acceso
Puede usar el comando chage para establecer las fechas de vencimiento de la cuenta. Cuando
se alcanza la fecha, el usuario no puede iniciar sesión en el sistema de manera interactiva. El
comando usermod puede bloquear una cuenta con la opción -L.
El bloqueo de la cuenta evita que el usuario logre la autenticación con una contraseña en el
sistema. Esta es la forma recomendada de evitar que un empleado que se fue de la empresa
acceda a su cuenta. Si el empleado regresa, la cuenta puede desbloquearse con usermod -U. Si
la cuenta también caducó, asegúrese de modificar, además, la fecha de caducidad.
La shell nologin
La shell nologin actúa como una shell de reemplazo para las cuentas de usuario que no están
destinadas a iniciar sesión de forma interactiva en el sistema. Desde el punto de vista de la
seguridad, se recomienda deshabilitar el inicio de sesión de una cuenta en el sistema, cuando
la cuenta no lo requiere. Por ejemplo, un servidor de correo puede necesitar una cuenta para
almacenar correos y una contraseña para que el usuario realice la autenticación con un cliente
202 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
de correo usado 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 utilizan la contraseña del usuario
para autenticarse.
Referencias
Páginas del manual: chage(1), usermod(8), shadow(5), crypt(3)
RH124-RHEL8.2-es-1-20200928 203
capítulo 6 | Administración de usuarios y grupos locales
Ejercicio Guiado
Administración de contraseñas de
usuarios
En este ejercicio de laboratorio, configurará políticas de contraseña para varios usuarios.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Forzar un cambio de contraseña cuando el usuario inicia sesión en el sistema por primera
vez.
• Configurar la cuenta para que caduque 180 días a partir del día actual.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
204 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
2.5. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
3.2. Verifique que la contraseña del usuario operator1 caduque 90 días después de que
se modifica.
RH124-RHEL8.2-es-1-20200928 205
capítulo 6 | Administración de usuarios y grupos locales
5.2. Salga de la shell del usuario operator1 para volver a la shell del usuario student.
6. Configure la cuenta de operator1 para que caduque 180 días a partir del día actual.
Consejo: date -d "+180 days" le da la fecha y la hora 180 días a partir de la fecha y la
hora actuales.
6.1. Determine la fecha de vencimiento en 180 días. Use el formato %F con el comando
date para obtener el valor exacto.
Puede obtener un valor diferente para usar en el siguiente paso según la fecha y la
hora actuales en su sistema.
6.2. Configure la cuenta para que caduque en la fecha que se muestra en el paso anterior.
7. Establezca las contraseñas para que caduquen 180 días a partir de la fecha actual para
todos los usuarios. Use los derechos administrativos para editar el archivo de configuración.
206 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
...output omitted...
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be
# used.
# PASS_MIN_DAYS Minimum number of days allowed between
# password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a
# password expires.
#
PASS_MAX_DAYS 180
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
...output omitted...
Importante
La contraseña predeterminada y la configuración de caducidad de la cuenta serán
efectivas para los nuevos usuarios, pero no para los usuarios existentes.
Finalizar
En workstation, ejecute lab users-pw-manage finish para terminar este ejercicio. Este
script elimina las cuentas de usuario y los archivos creados al inicio del ejercicio para garantizar
que el entorno esté limpio.
RH124-RHEL8.2-es-1-20200928 207
capítulo 6 | Administración de usuarios y grupos locales
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un grupo y usar el grupo como grupo adicional para los nuevos usuarios.
• Crear tres nuevos usuarios con el nuevo grupo como su grupo adicional.
• Configurar los miembros del grupo adicional para ejecutar cualquier comando como
cualquier usuario que use sudo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
208 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Evaluación
En workstation, ejecute el comando lab users-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab users-review finish para terminar este trabajo de
laboratorio. Este script elimina las cuentas de usuario y los archivos creados durante el trabajo de
laboratorio para garantizar que el entorno esté limpio.
RH124-RHEL8.2-es-1-20200928 209
capítulo 6 | Administración de usuarios y grupos locales
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un grupo y usar el grupo como grupo adicional para los nuevos usuarios.
• Crear tres nuevos usuarios con el nuevo grupo como su grupo adicional.
• Configurar los miembros del grupo adicional para ejecutar cualquier comando como
cualquier usuario que use sudo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. En serverb, asegúrese de que los usuarios creados recientemente tengan contraseñas que
se deben cambiar cada 30 días.
210 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
...output omitted...
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be
# used.
# PASS_MIN_DAYS Minimum number of days allowed between
# password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a
# password expires.
#
PASS_MAX_DAYS 30
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
...output omitted...
4. Configure los derechos administrativos para que todos los miembros de consultants
puedan ejecutar cualquier comando como cualquier usuario.
RH124-RHEL8.2-es-1-20200928 211
capítulo 6 | Administración de usuarios y grupos locales
8.1. Establezca el último día del cambio de contraseña en 0 para que los usuarios se vean
obligados a cambiar la contraseña cuando inicien sesión en el sistema por primera vez.
Evaluación
En workstation, ejecute el comando lab users-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab users-review finish para terminar este trabajo de
laboratorio. Este script elimina las cuentas de usuario y los archivos creados durante el trabajo de
laboratorio para garantizar que el entorno esté limpio.
212 RH124-RHEL8.2-es-1-20200928
capítulo 6 | Administración de usuarios y grupos locales
Resumen
En este capítulo, aprendió lo siguiente:
• Hay tres tipos principales de cuenta de usuario: el superusuario, el usuario del sistema y el
usuario normal.
• Un usuario debe tener un grupo principal y puede ser miembro de uno o más grupos adicionales.
• Los tres archivos críticos que contienen información de usuarios y grupos son /etc/passwd , /
etc/group y /etc/shadow.
• Los comandos su y sudose pueden utilizar para ejecutar comandos como superusuario.
• Los comandos useradd , usermod y userdel se pueden utilizar para administrar usuarios.
• Los comandos groupadd , groupmod y groupdel se pueden utilizar para administrar grupos.
RH124-RHEL8.2-es-1-20200928 213
214 RH124-RHEL8.2-es-1-20200928
capítulo 7
RH124-RHEL8.2-es-1-20200928 215
capítulo 7 | Control de acceso a los archivos
Objetivos
Tras completar esta sección, deberá poder 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 primario del usuario que creó el archivo,
pero esto se puede cambiar. Pueden establecerse diferentes permisos para el usuario o grupo
propietario y para otros usuarios del sistema que no sean el usuario o un miembro del grupo
propietario.
Los permisos más específicos tienen prioridad. Los permisos de usuario anulan los permisos de
grupo, lo cual anula los permisos de otros.
En Figura 7.1, joshua es un miembro de los grupos joshua y web, y allison es miembro de los
grupos allison, wheel y web. Cuando joshua y allison necesitan colaborar, los archivos
deben asociarse con el grupo web y los permisos del grupo deben permitir el acceso deseado.
216 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
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 su contenido. Si un usuario solo posee acceso de lectura en un directorio, los nombres de los
archivos dentro de este pueden enumerarse, pero no estará disponible otra información, incluidos
permisos o marcas de tiempo, y tampoco se podrá acceder a ellos. 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 donde se
encuentra el archivo puede quitar un archivo, sin importar la propiedad ni los permisos del archivo
en sí. Esto puede anularse con un permiso especial, el sticky bit, que trataremos 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 Microsoft Windows.
El usuario root en Linux posee los permisos equivalentes a Full Control (Control
total) de Windows en todos los archivos. Sin embargo, el usuario root puede tener
acceso restringido por la política de SELinux del sistema que utiliza contextos de
seguridad del proceso y de los archivos. SELinux se analizará en un curso posterior.
RH124-RHEL8.2-es-1-20200928 217
capítulo 7 | Control de acceso a los archivos
[user@host~]$ ls -l test
-rw-rw-r--. 1 student student 0 Feb 8 17:36 test
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 blando.
• Otros caracteres representan dispositivos de hardware (b y c) u otros archivos con fines
específicos (p y s).
Los siguientes nueve caracteres son los permisos de archivo. Se encuentran en tres conjuntos
de tres caracteres: permisos que se aplican al usuario que es propietario del archivo, al grupo
que es propietario del archivo y a todos los demás usuarios. Si el conjunto muestra rwx, esa
categoría tiene los tres permisos: lectura, escritura y ejecución. Si se ha reemplazado una letra por
-, entonces esa categoría no tiene ese permiso.
Después del recuento de enlaces, el primer nombre especifica el usuario que es propietario del
archivo, y el segundo nombre el grupo que es propietario del archivo.
Por lo tanto, en el ejemplo anterior, los permisos para el usuario student se especifican mediante
el primer conjunto de tres caracteres. El usuario student tiene permisos de lectura y escritura
para test, pero no de ejecución.
El grupo student se especifica mediante el segundo conjunto de tres caracteres: también tiene
permisos de lectura y escritura en test, pero no de ejecución.
Los permisos de cualquier otro usuario se especifican mediante el tercer conjunto de tres
caracteres: 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 que el grupo student, y el usuario student también es miembro de ese
grupo, entonces los permisos del usuario serán los que se apliquen.
218 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Esos usuarios trabajarán con archivos en el directorio dir. Este es un listado extenso de los
archivos en ese directorio:
La opción -a muestra los permisos de los archivos ocultos, incluidos los archivos especiales
utilizados para representar el directorio y su directorio principal. En este ejemplo, . refleja los
permisos de dir, y .. los permisos de su directorio principal.
¿Cuáles son los permisos de rfile1? El usuario que es propietario del archivo (database1)
tiene permisos de lectura y escritura, pero no de ejecución. El grupo que es propietario del archivo
(consultant1) tiene permisos de lectura y escritura, pero no de ejecución. Todos los otros
usuarios tienen permiso de lectura, pero no de escritura ni ejecución.
La siguiente tabla muestra algunos de los efectos de este conjunto de permisos para estos
usuarios:
Efecto Fundamentación
Los usuarios database2 y contractor1 no Rigen permisos de otros para los usuarios
tienen acceso al contenido de rfile2. database2 y contractor1, y dichos
permisos no incluyen permisos de lectura ni
escritura.
RH124-RHEL8.2-es-1-20200928 219
capítulo 7 | Control de acceso a los archivos
Efecto Fundamentación
El usuario database1 puede ver el contenido El usuario database1 es miembro del grupo
de lfile2, pero no puede modificar el consultant1, y ese grupo tiene solamente
contenido de lfile2 (no lo puede borrar ni permiso de lectura respecto de lfile2. Si
recrear). bien otro tiene permiso de escritura, los
permisos del grupo tienen prioridad.
Referencias
Página de manual: ls(1)
220 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Cuestionario
El directorio actual (.) contiene cuatro archivos con la siguiente información de permisos:
1. ¿Qué archivo regular es propiedad de operator1 y legible por todos los usuarios?
a. lfile1
b. lfile2
c. rfile1
d. rfile2
RH124-RHEL8.2-es-1-20200928 221
capítulo 7 | Control de acceso a los archivos
222 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Solución
El directorio actual (.) contiene cuatro archivos con la siguiente información de permisos:
1. ¿Qué archivo regular es propiedad de operator1 y legible por todos los usuarios?
a. lfile1
b. lfile2
c. rfile1
d. rfile2
RH124-RHEL8.2-es-1-20200928 223
capítulo 7 | Control de acceso a los archivos
224 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Objetivos
Tras finalizar esta sección, deberá poder cambiar los permisos y la propiedad de los archivos
usando herramientas de la línea de comandos.
El método simbólico de cambiar los permisos del archivo usa letras para representar los distintos
grupos de permisos: u para usuario, g para grupo, o para otros y a para todos.
Los permisos en sí están representados por una única letra: r para leer, w para escribir y x para
ejecutar. Cuando use chmod para cambiar los permisos con el método simbólico, el uso de una X
mayúscula como indicador de permiso agregará permiso de ejecución únicamente si el archivo es
un directorio o si ya tiene el permiso de ejecución establecido para usuario, grupo u otros.
RH124-RHEL8.2-es-1-20200928 225
capítulo 7 | Control de acceso a los archivos
nota
El comando chmod admite la opción -R para establecer permisos de manera
recursiva en los archivos, en todo el árbol de directorios. Cuando usa la opción -
R, puede ser útil para establecer permisos de manera simbólica mediante el uso
de la opción X. Esto permite ejecutar (buscar) permisos para establecer en los
directorios de modo que se pueda acceder a su contenido, sin cambiar los permisos
en la mayoría de los archivos. Sin embargo, tenga cuidado con la opción X, porque si
un archivo tiene un permiso de ejecución establecido, X establecerá el permiso de
ejecución especificado en ese archivo también. Por ejemplo, el siguiente comando
establece de manera recursiva el acceso de lectura y de escritura en demodir
y todos sus procesos secundarios para el propietario del grupo, pero solo aplica
permisos de ejecución de grupo a directorios y archivos que ya tienen permisos de
ejecución establecidos para usuario, grupo u otros.
Ejemplos
• Cada dígito representa permisos para un nivel de acceso: usuario, grupo, otros.
• El dígito se calcula sumando los números para cada permiso que desea agregar, 4 para lectura, 2
para escritura y 1 para ejecución.
Al usar el método numérico, los permisos son representados por un número octal de tres dígitos
(o cuatro, al establecer permisos avanzados). Un octal de un único dígito puede representar
cualquier valor de 0 a 7.
En la representación de permisos octal (numérica) de tres dígitos, cada dígito representa un nivel
de acceso, de izquierda a derecha: usuario, grupo y otros. Para determinar cada dígito:
1. Comience con 0.
2. Si el permiso de lectura debe estar presente para este nivel de acceso, agregue 4.
3. Si el permiso de escritura debe estar presente, agregue 2.
4. Si el permiso de ejecución debe estar presente, agregue 1.
Examine los permisos -rwxr-x---. Para el usuario, rwx se calcula como 4+2+1=7. Para el grupo,
r-x se calcula como 4+0+1=5, y para otros usuarios, --- se representa con 0. Si reunimos estos
tres, la representación numérica de esos permisos es 750.
226 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Este cálculo también se puede realizar en dirección opuesta. Veamos los permisos 640. Para
los permisos de usuario, 6 representa leer (4) y escribir (2), que se ve como rw-. Para la parte
de grupo, 4 solo incluye leer (4) y se ve como r--. El 0 para otros no nos proporciona permisos
(---), por lo que el conjunto final de permisos simbólicos para este archivo es -rw-r-----.
Los administradores experimentados a menudo usan permisos numéricos, ya que son más breves
para escribir y pronunciar, al tiempo que le proporcionan el control total de todos los permisos.
Ejemplos
• Establezca permisos de lectura y escritura para usuario, permiso de lectura para grupo y otros
respecto de samplefile:
Solo el usuario root puede cambiar el usuario que es propietario de un archivo. No obstante, la
propiedad del grupo puede establecerla el usuario root o el propietario del archivo. root puede
otorgar propiedad de archivo a cualquier grupo, mientras que los usuarios normales pueden hacer
que un grupo sea propietario de un archivo solo si son miembros de ese grupo.
La propiedad del archivo se puede cambiar con el comando chown (cambiar propietario). Por
ejemplo, para otorgarle propiedad del archivo test_file al usuario student, use el siguiente
comando:
Se puede usar chown con la opción -R para cambiar recursivamente la propiedad de un árbol
de directorios completo. El siguiente comando otorga propiedad de test_dir y de todos los
archivos y subdirectorios incluidos dentro a student:
El comando chown también se puede usar para cambiar el propietario del grupo de un archivo,
anteponiendo el nombre del grupo con dos puntos (:). Por ejemplo, el siguiente comando cambia
la propiedad del grupo del directorio test_dir a admins:
RH124-RHEL8.2-es-1-20200928 227
capítulo 7 | Control de acceso a los archivos
El comando chown también se puede usar para cambiar el propietario y el grupo al mismo tiempo.
Para ello, puede usar la sintaxis owner:group. Por ejemplo, para cambiar la propiedad de test_dir
a visitor y el grupo a guests, use el siguiente comando:
En lugar de usar chown, algunos usuarios cambian la propiedad del grupo usando el comando
chgrp. Este comando funciona igual que chown, excepto que solo se usa para cambiar la
propiedad del grupo, y no es necesario colocar los dos puntos (:) antes del nombre del grupo.
Importante
Puede encontrar ejemplos de los comandos chown con una sintaxis alternativa que
separa al propietario y al grupo con un punto en lugar de dos puntos:
Referencias
Páginas del manual: ls(1), chmod(1), chown(1) y chgrp(1)
228 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Ejercicio Guiado
Resultados
Deberá poder crear un directorio de colaboración al que puedan acceder todos los
miembros de un grupo en particular.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
student.
[student@servera ~]$ su -
Password: redhat
[root@servera ~]#
4. Use el comando chown para cambiar la propiedad del grupo del directorio consultants a
consultants.
RH124-RHEL8.2-es-1-20200928 229
capítulo 7 | Control de acceso a los archivos
5. Asegúrese de que los permisos del grupo consultants permitan a los miembros del
grupo crear archivos en el directorio /home/consultants y eliminarlos de este. Los
permisos deben impedir que otros accedan a los archivos.
5.1. Use el comando ls para confirmar que los permisos del grupo consultants
permitan a los miembros del grupo crear archivos en el directorio /home/
consultants y eliminarlos de este.
5.2. Use el comando chmod para agregar permiso de escritura al grupo consultants.
5.3. Use el comando chmod para impedir que otros accedan a los archivos del directorio /
home/consultants.
7.2. Use el comando touch para crear un archivo vacío con el nombre
consultant1.txt.
230 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
9. Asegúrese de que todos los miembros del grupo consultants puedan editar el archivo
consultant1.txt. Cambie la propiedad del grupo del archivo consultant1.txt a
consultants.
9.1. Use el comando chown para cambiar la propiedad del grupo del archivo
consultant1.txt a consultants.
9.2. Use el comando ls con la opción -l para registrar la nueva propiedad del archivo
consultant1.txt.
11.2. Use el comando cat para verificar que el texto se haya agregado al archivo
consultant1.txt.
RH124-RHEL8.2-es-1-20200928 231
capítulo 7 | Control de acceso a los archivos
Finalizar
En workstation, ejecute el script lab perms-cli finish para terminar este ejercicio.
232 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Administración de permisos
predeterminados y acceso a archivos
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de realizar lo siguiente:
• Controlar los permisos predeterminados de los nuevos archivos creados por los usuarios.
• Usar permisos especiales y permisos predeterminados para establecer el propietario del grupo
de archivos creados en un directorio en particular.
Permisos especiales
Los permisos especiales constituyen un cuarto tipo de permiso, además del usuario básico, grupo
y otros tipos. Como su nombre lo indica, estos permisos proporcionan funciones adicionales
relacionadas con el acceso más allá de lo que permiten los tipos de permisos básicos. En esta
sección, se detalla el impacto de los permisos especiales, que se resumen en la siguiente tabla.
g+s (sgid) El archivo se ejecuta como el grupo Los archivos creados recientemente
propietario. en el directorio han establecido
al propietario del grupo para que
coincida con el propietario del grupo
del directorio.
El permiso setuid en un archivo ejecutable significa que los comandos se ejecutan como el usuario
que es propietario del archivo, no como el usuario que ejecutó el comando. Un ejemplo de este
caso es el comando passwd:
RH124-RHEL8.2-es-1-20200928 233
capítulo 7 | Control de acceso a los archivos
En una larga lista, puede identificar los permisos setuid con una s minúscula, donde normalmente
esperaría ver la x (el propietario ejecuta los permisos). Si el propietario no posee permisos de
ejecución, será reemplazada por una S mayúscula.
El permiso especial setgid en un directorio significa que los archivos creados en el directorio
heredarán la propiedad de grupos del directorio, en lugar de heredarla del usuario que la creó. Esto
generalmente se usa en directorios colaborativos grupales para poder cambiar automáticamente
un archivo del grupo privado predeterminado al grupo compartido, o si los archivos de un
directorio deben pertenecer siempre a un grupo específico. Un ejemplo de esto es el directorio /
run/log/journal:
Si se configura setgid en un archivo ejecutable, los comandos se ejecutan como el grupo que
posee ese archivo, no como el usuario que ejecutó el comando, de manera similar a como funciona
setuid. Un ejemplo de este caso es el comando locate:
En una larga lista, puede identificar los permisos setgid con una s minúscula, donde normalmente
esperaría ver la x (el grupo ejecuta los permisos). Si el grupo no posee permisos de ejecución, será
reemplazada por una S mayúscula.
Por último, el sticky bit para un directorio establece una restricción especial en la eliminación de
archivos. Solo el propietario del archivo (y root) puede borrar archivos dentro del directorio. Un
ejemplo es /tmp:
En una larga lista, puede identificar los permisos sticky con una s minúscula, donde normalmente
esperaría ver la x (otro ejecuta los permisos). Si otra persona no posee permisos de ejecución, se
reemplazará por una S mayúscula.
Ejemplos
234 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Si crea un nuevo directorio, el sistema operativo comienza asignándole permisos octales 0777
(drwxrwxrwx). Si crea un nuevo archivo regular, el sistema operativo le asigna permisos octales
(-rw-rw-rw-). Siempre debe agregar explícitamente el permiso de ejecución a un archivo
regular. Esto hace que sea más difícil para un atacante comprometer un servicio de red para que
cree un nuevo archivo y lo ejecute inmediatamente como un programa.
Sin embargo, la sesión de shell también establecerá un umask para restringir aún más los permisos
que se establecen inicialmente. Es una máscara de bits octal usada para borrar los permisos de
archivos y directorios nuevos creados por el proceso. Si se establece un bit en el umask, el permiso
correspondiente se elimina en los archivos nuevos. Por ejemplo, el umask 0002 borra el bit de
escritura para otros usuarios. Los ceros iniciales indican que los permisos especiales, de usuario y
de grupo no están borrados. Un umask de 0077 borra los permisos de todo el grupo y de otros de
los archivos creados recientemente.
El comando umask sin argumentos mostrará el valor actual del umask de shell:
Use el comando umask con un argumento numérico único para cambiar el umask de la shell actual.
El argumento numérico debe ser un valor octal que se corresponda con el valor del umask nuevo.
Puede omitir los ceros iniciales en el umask.
Los valores de umask predeterminados del sistema para usuarios de shell Bash se definen
en los archivos /etc/profile y /etc/bashrc. Los usuarios pueden anular los valores
predeterminados del sistema en sus archivos .bash_profile y .bashrc en sus directorios de
inicio.
Ejemplo de umask
El siguiente ejemplo explica cómo el umask afecta los permisos de los archivos y directorios.
Observe los permisos predeterminados de umask para archivos y directorios en la shell actual.
Tanto el propietario como el grupo tienen permiso de lectura y escritura en los archivos, y otros
tienen permiso de lectura. Tanto el propietario como el grupo tienen permisos de lectura, escritura
y ejecución en los directorios. El único permiso para otros es el de lectura.
Al establecer el valor de umask en 0, los permisos del archivo para otros cambian de lectura a
lectura y escritura. Los permisos del directorio para otros cambios de lectura y ejecución para
lectura, escritura y ejecución.
RH124-RHEL8.2-es-1-20200928 235
capítulo 7 | Control de acceso a los archivos
Para enmascarar todos los permisos de archivos y directorios para otros, establezca el valor de
umask en 007.
Un umask de 027 garantiza que los nuevos archivos tengan permisos de lectura y escritura para
el usuario y permisos de lectura para el grupo. Los nuevos directorios tienen acceso de lectura y
escritura para el grupo y no tienen permisos para otros.
El umask predeterminado para usuarios se establece mediante los scripts de inicio de shell. De
manera predeterminada, si la UID de su cuenta es 200 o más y su nombre de usuario y nombre
de grupo primario son los mismos, se le asignará un umask de 002. De lo contrario, su umask será
022.
Como usuario root, puede cambiarlo al agregar un script de inicio de shell llamado /etc/
profile.d/local-umask.sh, que se parece al resultado en este ejemplo:
El ejemplo anterior establecerá el umask en 007 para los usuarios con una UID mayor que 199
y con un nombre de usuario y un nombre de grupo primario iguales, y en 022 para todos los
demás. Si solo deseara establecer el umask para todos en 022, puede crear ese archivo solo con el
siguiente contenido:
236 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Para asegurarse de que los cambios globales de umask surtan efecto, debe cerrar sesión en la
shell y volver a iniciar sesión. Hasta ese momento, el umask configurado en la shell actual sigue
vigente.
Referencias
Páginas del manual: bash(1), ls(1), chmod(1) y umask(1)
RH124-RHEL8.2-es-1-20200928 237
capítulo 7 | Control de acceso a los archivos
Ejercicio Guiado
Administración de permisos
predeterminados y acceso a archivos
En este ejercicio, controlará los permisos de los nuevos archivos creados en un directorio
mediante el uso de la configuración de umask y el permiso setgid.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Use el comando su para cambiar al usuario operator1 usando redhat como contraseña.
3. Use el comando umask para registrar el valor de umask predeterminado del usuario
operator1.
238 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
4.1. Use el comando mkdir para crear el directorio /tmp/shared. Use el comando ls -
ld para enumerar los permisos del nuevo directorio.
4.2. Use el comando touch para crear un archivo denominado defaults en el directorio
/tmp/shared.
4.3. Use el comando ls -l para enumerar los permisos del nuevo archivo.
5.1. Use el comando chown para cambiar la propiedad del grupo del directorio /tmp/
shared a operators.
5.2. Use el comando ls -ld para enumerar los permisos del directorio /tmp/shared.
5.3. Use el comando touch para crear un archivo denominado group en el directorio /
tmp/shared. Use el comando ls -l para enumerar los permisos del archivo.
nota
El propietario del grupo del archivo /tmp/shared/group no es operators, sino
operator1.
6. Asegúrese de que los archivos creados en el directorio /tmp/shared son propiedad del
grupo operators.
6.1. Use el comando chmod para establecer el ID de grupo al grupo operators para el
directorio /tmp/shared.
RH124-RHEL8.2-es-1-20200928 239
capítulo 7 | Control de acceso a los archivos
6.3. Use el comando ls -l para verificar que el grupo operators es el propietario del
grupo para el nuevo archivo.
7.3. Use el comando umask para cambiar el umask para el usuario operator1 a 027. Use
el comando umask para confirmar el cambio.
8. Abra una nueva ventana de terminal e inicie sesión en servera como operator1.
240 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
10. Cambie el valor predeterminado de umask para el usuario operator1. El nuevo valor
de umask prohíbe el acceso a los usuarios que no pertenezcan al grupo. Confirme que el
umask haya cambiado.
10.1. Use el comando echo para cambiar valor de umask predeterminado para el usuario
operator1 a 007.
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
10.2. Cierre la sesión y vuelva a iniciar sesión como el usuario operator1. Use el comando
umask para confirmar que el cambio es permanente.
11. En servera, salga de todas las shells del usuario operator1 y de student.
Advertencia
Salga de todas las shells que fueron abiertas por operator1. Si no sale de todas las
shells, el script de finalización fallará.
RH124-RHEL8.2-es-1-20200928 241
capítulo 7 | Control de acceso a los archivos
Finalizar
En workstation, ejecute el script lab perms-default finish para terminar este ejercicio.
242 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Cambie al
usuario root en serverb con la contraseña redhat.
2. Cree un directorio denominado /home/techdocs.
3. Cambie la propiedad del directorio /home/techdocs al grupo techdocs.
4. Verifique que los usuarios en el grupo techdocs no puedan crear archivos en el directorio /
home/techdocs.
5. Establezca permisos en el directorio /home/techdocs. En el directorio /home/techdocs,
configure setgid (2), permisos de lectura/escritura/ejecución (7) para el propietario/usuario
y grupo, y ningún permiso (0) para otros usuarios.
6. Verifique que los permisos hayan sido establecidos correctamente.
7. Confirme que los usuarios en el grupo techdocs ahora pueden crear y editar archivos en
el directorio /home/techdocs. Los usuarios que no forman parte del grupo techdocs no
pueden editar ni crear archivos en el directorio /home/techdocs. Los usuarios tech1 y
tech2 están en el grupo techdocs. El usuario database1 no está en ese grupo.
8. Modifique los scripts de inicio de sesión globales. Los usuarios normales deberían tener una
configuración de umask que evite que otros visualicen o modifiquen los archivos y directorios
nuevos.
9. Cierre sesión en serverb.
RH124-RHEL8.2-es-1-20200928 243
capítulo 7 | Control de acceso a los archivos
Evaluación
En workstation, ejecute el script lab perms-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab perms-review finish para terminar el trabajo de
laboratorio.
244 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Crear un directorio donde los usuarios puedan trabajar de forma conjunta en los archivos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Cambie al
usuario root en serverb con la contraseña redhat.
3.1. Use el comando chown para cambiar la propiedad del grupo para el directorio /home/
techdocs al grupo techdocs.
RH124-RHEL8.2-es-1-20200928 245
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.
4.2. Use touch para crear un archivo denominado techdoc1.txt en el directorio /home/
techdocs.
nota
Tenga en cuenta que si bien el directorio /home/techdocs es propiedad de
techdocs y tech1 es parte del grupo techdocs, no es posible crear un nuevo
archivo en ese directorio. Esto es porque el grupo techdocs no tiene permiso de
escritura. Use el comando ls -ld para mostrar los permisos.
5.2. Use el comando chmod para establecer el permiso del grupo para el directorio /home/
techdocs. En el directorio /home/techdocs, configure setgid (2), permisos de
lectura/escritura/ejecución (7) para el propietario/usuario y grupo, y ningún permiso
(0) para otros usuarios.
246 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
7.1. Cambie al usuario tech1. Use touch para crear un archivo denominado
techdoc1.txt en el directorio /home/techdocs. Salga de la shell del usuario
tech1.
7.2. Cambie al usuario tech2. Use el comando echo para agregar contenido al archivo Use
the echo command to add some content to the /home/techdocs/techdoc1.txt.
Salga de la shell del usuario tech2.
7.3. Cambie al usuario database1. Use el comando echo para anexar contenido al
archivo Use the echo command to add some content to the /home/techdocs/
techdoc1.txt. Tenga en cuenta que obtendrá un mensaje de Permiso denegado.
Use el comando ls -l para confirmar que database1 no tiene acceso al archivo.
Salga de la shell del usuario database1.
El siguiente comando echo es muy extenso y debe ingresarse en una sola línea.
8. Modifique los scripts de inicio de sesión globales. Los usuarios normales deberían tener una
configuración de umask que evite que otros visualicen o modifiquen los archivos y directorios
nuevos.
8.1. Determine el umask del usuario student. Utilice el comando su - student para
cambiar a la shell de inicio de sesión de student. Salga de la shell cuando termine.
RH124-RHEL8.2-es-1-20200928 247
capítulo 7 | Control de acceso a los archivos
8.3. Cierre sesión en la shell y vuelva a iniciar sesión como student para verificar que el
umask global haya cambiado a 007.
Evaluación
En workstation, ejecute el script lab perms-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab perms-review finish para terminar el trabajo de
laboratorio.
248 RH124-RHEL8.2-es-1-20200928
capítulo 7 | Control de acceso a los archivos
RH124-RHEL8.2-es-1-20200928 249
capítulo 7 | Control de acceso a los archivos
Resumen
En este capítulo, aprendió lo siguiente:
• Los archivos tienen tres categorías a las que se le aplican permisos. Un archivo es propiedad
de un usuario, un único grupo y otros usuarios. Se aplicarán los permisos más específicos. Los
permisos de usuario anulan los permisos de grupo, y los permisos de grupo anulan los permisos
de otros.
• El comando ls con la opción -l expande la lista del archivo para incluir tanto los permisos de un
archivo como su propiedad.
• El comando chmod cambia los permisos de archivo desde la línea de comandos. Hay dos
métodos para representar permisos: el método simbólico (letras) y el método numérico
(dígitos).
• El comando umask sin argumentos muestra el valor actual de umask de la shell. Todos los
procesos del sistema tienen un umask. Los valores de umask predeterminados para Bash se
definen en los archivos /etc/profile y /etc/bashrc.
250 RH124-RHEL8.2-es-1-20200928
capítulo 8
Monitoreo y administración de
procesos Linux
Meta Evaluar y controlar los procesos que se ejecutan en
un sistema Red Hat Enterprise Linux.
RH124-RHEL8.2-es-1-20200928 251
capítulo 8 | Monitoreo y administración de procesos Linux
Lista de procesos
Objetivos
Tras completar esta sección, deberá poder obtener información acerca de los programas que se
ejecutan en el sistema para poder determinar el estado, el uso de los recursos y la propiedad, y
controlarlos.
Definición de un proceso
Un proceso es una instancia de un programa ejecutable que se inició y se encuentra en
funcionamiento. Un proceso consta de lo siguiente:
Un proceso (principal) existente duplica su propio espacio de direcciones (fork) para crear
una nueva estructura de proceso (secundaria). Se asigna una identificación de proceso (PID)
única a cada proceso nuevo para su rastreo y por motivos de seguridad. La PID y la identificación
del proceso principal (PPID) son elementos del entorno del proceso nuevo. Cualquier proceso
puede crear un proceso secundario. Todos los procesos derivan del primer proceso de sistemas,
systemd, en un sistema Red Hat Enterprise Linux 8.
252 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
y su entorno. El único recurso restante, llamado zombi, es una entrada en la tabla de procesos. El
proceso principal, que se señala como activo una vez que finaliza el proceso secundario, limpia
la tabla de procesos de la entrada del proceso secundario y libera el último recurso del proceso
secundario. El proceso principal continúa con la ejecución de su propio código de programa.
RH124-RHEL8.2-es-1-20200928 253
capítulo 8 | Monitoreo y administración de procesos Linux
254 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Lista de procesos
El comando ps se usa para elaborar una lista de los procesos actuales. Puede proporcionar
información detallada de los procesos, que incluye:
• La identificación del usuario (UID) que determina los privilegios del proceso
Importante
La versión de ps de Linux admite tres formatos de opciones:
• Opciones UNIX (POSIX), que pueden agruparse y deben estar precedidas por un
guion
Quizás el conjunto de opciones más común, aux, muestra todos los procesos, incluidos los
procesos sin un terminal de control. Una lista extensa (opciones lax) proporciona detalles más
técnicos, pero puede visualizarse más rápidamente porque no realiza la búsqueda de nombre
de usuario. La sintaxis de UNIX similar usa las opciones -ef para la visualización de todos los
procesos.
RH124-RHEL8.2-es-1-20200928 255
capítulo 8 | Monitoreo y administración de procesos Linux
...output omitted...
[user@host ~]$ ps lax
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 1 0 20 0 51648 7504 ep_pol Ss ? 0:03 /usr/lib/
systemd/
1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd]
1 0 3 2 20 0 0 0 smpboo S ? 0:00 [ksoftirqd/0]
1 0 5 2 0 -20 0 0 worker S< ? 0:00 [kworker/0:0H]
1 0 7 2 -100 - 0 0 smpboo S ? 0:00 [migration/0]
...output omitted...
[user@host ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 17:45 ? 00:00:03 /usr/lib/systemd/systemd --
switched-ro
root 2 0 0 17:45 ? 00:00:00 [kthreadd]
root 3 2 0 17:45 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 17:45 ? 00:00:00 [kworker/0:0H]
root 7 2 0 17:45 ? 00:00:00 [migration/0]
...output omitted...
De manera predeterminada, el comando ps sin opciones selecciona todos los procesos que tienen
la misma identificación de usuario efectivo (EUID) que el usuario actual y que están asociados con
la misma terminal en la que se invocó ps.
• Los procesos entre corchetes (normalmente en la parte superior de la lista) son subprocesos del
kernel programados.
• La salida de ps se muestra una vez. Use top para una visualización del proceso que se actualiza
dinámicamente.
• ps se puede mostrar en formato de árbol para que pueda ver las relaciones entre el proceso
principal y los procesos secundarios.
• La salida predeterminada se ordena por número de ID de proceso. A primera vista, esto puede
parecer un orden cronológico. Sin embargo, el kernel vuelve a usar los ID de proceso, por lo
que el orden es menos estructurado de lo que parece. Para ordenar, use las opciones -O o --
sort. El orden de visualización coincide con el de la tabla de procesos del sistema, que vuelve
a usar las filas de la tabla, ya que ciertos procesos finalizan y otros nuevos se crean. La salida
puede aparecer en orden cronológico, pero esto no es seguro, a menos que se usen las opciones
explícitas -O o --sort.
Referencias
info libc signal (Manual de referencia de la biblioteca GNU C)
256 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Cuestionario
Lista de procesos
Elija las respuestas correctas para las siguientes preguntas:
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 y crear un nuevo proceso
secundario?
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-RHEL8.2-es-1-20200928 257
capítulo 8 | Monitoreo y administración de procesos Linux
Solución
Lista de procesos
Elija las respuestas correctas para las siguientes preguntas:
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 y crear un nuevo proceso
secundario?
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
258 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Control de trabajos
Objetivos
Tras completar esta sección, deberá poder 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. Si se ingresa
solo un comando en un prompt de shell, puede considerarse como una “tubería” mínima de un
comando, lo que crea un trabajo con un solo miembro.
Solo un trabajo puede leer entradas y señales generadas por el teclado desde una ventana de
terminal específica por vez. Los procesos que son parte de ese trabajo son procesos en primer
plano de dicha terminal de control.
Cada terminal es su propia sesión, y puede tener un proceso en primer plano y cualquier cantidad
de procesos en segundo plano independientes. Un trabajo es parte de exactamente una sesión, la
que pertenece a su terminal de control.
RH124-RHEL8.2-es-1-20200928 259
capítulo 8 | Monitoreo y administración de procesos Linux
nota
Cuando una línea de comandos que contiene una tubería se envía a un segundo
plano mediante el uso de un signo, el PID del último comando de la tubería se usa
como salida. Todos los procesos de la tubería continúan siendo miembros de ese
trabajo.
Puede visualizar la lista de trabajos que Bash está rastreando para una sesión en particular con el
comando jobs.
Un trabajo en segundo plano se puede colocar en primer plano con el comando fg con su ID de
trabajo (%número de trabajo).
[user@host ~]$ fg %1
sleep 10000
Para enviar un proceso en primer plano a segundo plano, presione primero la solicitud de
suspensión generada por el teclado (Ctrl+z) en la terminal.
sleep 10000
^Z
[1]+ Stopped sleep 10000
[user@host ~]$
[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
260 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Para iniciar el proceso suspendido que se está ejecutando en segundo plano, use el comando bg
con la misma ID de trabajo.
[user@host ~]$ bg %1
[1]+ sleep 10000 &
La shell emitirá 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
Observe el signo + después de [1] en los ejemplos anteriores. El signo + indica que
este trabajo es el trabajo predeterminado actual. Es decir, si se usa un comando que
espera un argumento de número de trabajo % y este no se proporciona, entonces la
acción se realiza en el trabajo con el indicador +.
Referencias
Página de información Bash (Manual de referencia de BASH para GNU)
https://www.gnu.org/software/bash/manual
RH124-RHEL8.2-es-1-20200928 261
capítulo 8 | Monitoreo y administración de procesos Linux
Ejercicio Guiado
Control de trabajos
En este ejercicio, iniciará, suspenderá, ejecutará en segundo plano y en primer plano varios
procesos usando el control de trabajos.
Resultados
Deberá poder usar el control de trabajos para suspender y reiniciar los procesos de usuario.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. En esta sección,
estos dos terminales se denominan izquierda y derecha. En cada terminal, use el comando
ssh para iniciar sesión en servera como el usuario student.
2.1. Use el comando mkdir para crear un nuevo directorio denominado /home/
student/bin.
2.2. Use el comando vim para crear un script denominado control en el directorio /
home/student/bin. Para ingresar al modo interactivo Vim, pulse la tecla i. Use el
comando :wq para guardar el archivo.
262 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
nota
El script control se ejecuta hasta que termine. Adjunta argumentos de línea de
comandos al archivo ~/control_outfile una vez por segundo.
2.3. Use el comando chmod para hacer que el archivo control sea ejecutable.
nota
Puede ejecutar su script control porque se encuentra en su PATH, y se ha hecho
ejecutable.
4. En la shell de terminal derecha, use el comando tail con la opción -f para confirmar que
el nuevo proceso se escriba en el archivo /home/student/control_outfile.
^Z
[1]+ Stopped control technical
[student@servera ~]$
6. En la shell de terminal izquierda, vea la lista jobs. Recuerde que el signo + indica el trabajo
predeterminado. Reinicie el trabajo en segundo plano. En la shell de terminal derecha,
confirme que la salida del proceso esté de nuevo activa.
RH124-RHEL8.2-es-1-20200928 263
capítulo 8 | Monitoreo y administración de procesos Linux
[student@servera ~]$ bg
[1]+ control technical &
6.3. Use el comando jobs para confirmar que el trabajo control se está ejecutando otra
vez.
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 signo (&) para iniciar los procesos en segundo plano. Reemplace
technical con documents y, luego, con database. Reemplazar los argumentos ayuda a
diferenciar los tres procesos.
nota
El número de trabajo de cada proceso nuevo se imprime entre corchetes. El
segundo número es el número de ID de proceso (PID) único de todo el sistema para
el proceso.
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, confirme 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...
264 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
9.1. En la shell de terminal izquierda, use el comando fg con la ID de trabajo para poner
en primer plano el proceso control technical. Presione Ctrl+z para suspender
el proceso. Use el comando jobs para confirmar que el proceso está suspendido.
[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 &
9.3. En la shell de terminal izquierda, use el comando fg con la ID de trabajo para poner
en primer plano el proceso control documents. Presione Ctrl+c para finalizar el
proceso. Use el comando jobs para confirmar que el proceso está finalizado.
[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 ventana izquierda, use el comando ps con la opción jT para ver los trabajos restantes.
Los trabajos suspendidos tiene el estado T. Los otros trabajos en segundo plano están
inactivos (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
RH124-RHEL8.2-es-1-20200928 265
capítulo 8 | Monitoreo y administración de procesos Linux
11. En la ventana izquierda, use el comando jobs para visualizar los trabajos actuales. Finalice
el proceso control database y confirme que ha sido terminado.
Use el comando fg con la ID de trabajo para poner en primer plano el proceso control
database. Presione Ctrl+c para finalizar el proceso. Use el comando jobs para confirmar
que el proceso está finalizado.
[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. Con el comando rm, elimine el archivo ~/control_outfile.
...output omitted...
Ctrl+c
[student@servera ~]$ rm ~/control_outfile
Finalizar
En workstation, ejecute el script lab processes-control finish para terminar este
ejercicio.
266 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Finalización de procesos
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
La siguiente tabla enumera las señales fundamentales usadas por los administradores del sistema
para la administración de procesos de rutina. Puede referirse a las señales ya sea por su nombre
abreviado (HUP) o nombre propio (SIGHUP).
Nombre
Número de señal Definición Propósito
abreviado
RH124-RHEL8.2-es-1-20200928 267
capítulo 8 | Monitoreo y administración de procesos Linux
Nombre
Número de señal Definición Propósito
abreviado
Provoca la finalización
Finalización,
abrupta del programa. No se
9 KILL no se puede
puede bloquear, ignorar ni
bloquear.
manipular; siempre es grave.
A diferencia de SIGSTOP,
puede bloquearse, ignorarse
Detención
508 TSTP o manipularse. Enviado al
del teclado
presionar una secuencia de
teclas SUSP (Ctrl+z).
nota
Los números de señal varían en las distintas plataformas de hardware de Linux,
pero los nombres y los significados de las señales están estandarizados. Para el uso
del comando, se aconseja usar los nombres de señal en lugar de los números. Los
números analizados en esta sección son para los sistemas x86_64.
Cada señal tiene una acción predeterminada que, por lo general, es una de las siguientes:
• Core: provoca que un programa guarde una imagen de la memoria (volcado central) y que, a
continuación, finalice.
• Stop: provoca que un programa deje de ejecutarse (se suspenda) y espere para continuar (se
reinicie).
Los programas pueden estar preparados para reaccionar ante señales de eventos esperadas
mediante la implementación de rutinas de controlador que ignoren, reemplacen o amplíen la
acción predeterminada de una señal.
268 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Las señales se pueden especificar como opciones por nombre (por ejemplo, -HUP o -SIGHUP)
o por número (el -1 relacionado). Los usuarios pueden finalizar sus propios procesos, pero se
necesitan privilegios de root para finalizar procesos que son propiedad de otros usuarios.
El comando kill envía una señal a un proceso mediante un número de PID. A pesar de su
nombre, el comando kill puede usarse para enviar cualquier señal y no solo aquellas para finalizar
programas. Puede usar el comando kill -l para enumerar los nombres y números de todas las
señales disponibles.
RH124-RHEL8.2-es-1-20200928 269
capítulo 8 | Monitoreo y administración de procesos Linux
Use pkill para enviar una señal a uno o más procesos que coincidan con los criterios de
selección. Los criterios de selección pueden ser un nombre de comando, un proceso que es
propiedad de un usuario específico o todos los procesos del sistema. El comando pkill incluye
criterios de selección avanzados:
270 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Para cerrar la sesión de un usuario, primero identifique la sesión de inicio de sesión que se
finalizará. Use el comando w para enumerar los inicios de sesión de usuario y los procesos actuales
en ejecución. Observe que las columnas TTY y FROM para determinar las sesiones a cerrar.
Todas las sesiones de inicio de sesión de usuario están asociadas a un dispositivo terminal (TTY).
Si el nombre del dispositivo tiene el formato pts/N, se trata de una pseudoterminal asociada con
una ventana de terminal gráfica o sesión de inicio de sesión remota. Si tiene el formato ttyN, el
usuario se encuentra en una consola del sistema, consola alternativa u otro dispositivo terminal
conectado directamente.
[user@host ~]$ w
12:43:06 up 27 min, 5 users, load average: 0.03, 0.17, 0.66
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 12:26 14:58 0.04s 0.04s -bash
bob tty3 12:28 14:42 0.02s 0.02s -bash
user pts/1 desk.example.com 12:41 2.00s 0.03s 0.03s w
[user@host ~]$
Averigüe cuánto tiempo un usuario estuvo en el sistema con la hora de inicio de sesión. Para cada
sesión, los recursos de CPU consumidos por los trabajos actuales, incluidas las tareas en segundo
plano y los procesos secundarios, se encuentran en la columna JCPU. El consumo de CPU del
proceso de primer plano actual está en la columna PCPU.
Los procesos y las sesiones pueden señalizarse en forma individual o colectiva. Para finalizar todos
los procesos de un usuario, use el comando pkill. Debido a que el proceso inicial en una sesión
de inicio de sesión (líder de sesión) está diseñado para manipular las solicitudes de finalización
de sesión e ignorar las señales de teclado involuntarias, la finalización de los procesos y shells de
inicio de sesión de un usuario requiere del uso de la señal SIGKILL.
Importante
Los administradores suelen utilizar SIGKILL con demasiada rapidez.
Primero identifique los números de PID que se finalizarán mediante pgrep, que funciona como
pkill, incluido el uso de las mismas opciones, excepto que pgrep enumera procesos, en lugar de
finalizarlos.
RH124-RHEL8.2-es-1-20200928 271
capítulo 8 | Monitoreo y administración de procesos Linux
Cuando los procesos que requieren atención están en la misma sesión de inicio de sesión, es
probable que no sea necesario finalizar todos los procesos de un usuario. Determine el terminal
de control para la sesión con el comando w y, a continuación, finalice solo los procesos que hagan
referencia a la misma ID de terminal. A menos que se especifique SIGKILL, el líder de sesión (en
este caso, la shell de inicio de sesión Bash) manipula y supera en forma correcta la solicitud de
finalización, pero finalizan todos los demás procesos de sesión.
Puede aplicarse el mismo proceso selectivo de finalización con las relaciones de proceso principal
y secundario. Use el comando pstree para visualizar un árbol de proceso para el sistema o un
solo usuario. Use la PID del proceso principal para finalizar todos los procesos secundarios que
haya creado. Esta vez, la shell de inicio de sesión Bash principal sobrevive porque la señal se dirige
solo a sus procesos secundarios.
272 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Referencias
info libc signal (Manual de referencia de la biblioteca GNU C)
RH124-RHEL8.2-es-1-20200928 273
capítulo 8 | Monitoreo y administración de procesos Linux
Ejercicio Guiado
Finalización de procesos
En este ejercicio, usará señales para gestionar y detener procesos.
Resultados
Deberá poder iniciar y detener varios procesos de shell.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. En esta sección,
estas terminales se denominan izquierda y derecha. En cada terminal, use el comando ssh
para iniciar sesión en servera como el usuario student.
2.1. Use el comando mkdir para crear un nuevo directorio denominado /home/
student/bin.
2.2. Use el comando vim para crear un script denominado killing en el directorio /
home/student/bin. Presione la tecla i para ingresar al modo interactivo Vim. Use
el comando :wq para guardar el archivo.
274 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
nota
El script killing se ejecuta hasta que termine. Adjunta argumentos de línea de
comandos a ~/killing_outfile una vez cada 5 segundos.
2.3. Use el comando chmod para hacer que el archivo killing sea ejecutable.
4. En la shell de terminal derecha, use el comando tail con la opción -f para confirmar que
los tres procesos se estén adjuntando al archivo /home/student/killing_outfile.
5. En la shell de terminal izquierda, use el comando jobs para enumerar los trabajos.
6. Use señales para suspender el proceso network. Confirme que el proceso network está
detenido. En la shell de terminal derecha, confirme que el proceso network ya no está
anexando la salida a ~/killing_output.
6.1. Use kill con la opción -SIGSTOP para detener el proceso network. Ejecute jobs
para confirmar que se ha detenido.
RH124-RHEL8.2-es-1-20200928 275
capítulo 8 | Monitoreo y administración de procesos Linux
6.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra network ya no se está anexando al archivo ~/killing_outfile.
...output omitted...
interface connection interface connection interface connection interface
7.1. Use el comando kill con la opción -SIGTERM para finalizar el proceso de
interface. Ejecute el comando jobs para confirmar que ha sido finalizado.
7.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra interface ya no se está anexando al archivo ~/killing_outfile.
...output omitted...
connection connection connection connection connection connection connection
connection
8.1. Use el comando kill con -SIGCONT para reanudar el proceso network. Ejecute el
comando jobs para confirmar que el proceso se está ejecutando.
8.2. En la shell de terminal derecha, observe la salida del comando tail. Confirme que la
palabra network se está anexando al archivo ~/killing_outfile.
276 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
...output omitted...
network connection network connection network connection network connection
network connection
9. En la shell de terminal izquierda, finalice los dos trabajos restantes. Confirme que no
queden trabajos y que se haya detenido la salida.
9.1. Use el comando kill con la opción -SIGTERM para finalizar el proceso interface.
Use el mismo comando para finalizar el proceso connection.
10. En la shell de terminal izquierda, enumere los procesos tail que se están ejecutando en
todas las shells de terminales abiertas. Finalizar la ejecución de comandos tail. Confirme
que el proceso ya no se está ejecutando.
10.1. Use el comando ps con la opción -ef para enumerar todos los procesos tail en
ejecución. Refine la búsqueda con el comando grep.
10.2. Use el comando pkill con la opción -SIGTERM para finalizar todos los procesos
tail. Use ps para confirmar que ya no está presente.
...output omitted...
network connection network connection network connection Terminated
[student@servera ~]$
11. Salga de ambas ventanas de terminal. Si no sale de todas las sesiones, el script de
finalización fallará.
RH124-RHEL8.2-es-1-20200928 277
capítulo 8 | Monitoreo y administración de procesos Linux
Finalizar
En workstation, ejecute el script lab processes-kill finish para terminar este ejercicio.
278 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de describir qué es el promedio de carga y
determinar los procesos responsables del alto uso de recursos en un servidor.
Cada cinco segundos, el kernel recoge la cantidad de carga actual en función de la cantidad de
procesos en estados ejecutables e ininterrumpidos. Este número se acumula y se informa como un
promedio móvil exponencial en los últimos 1, 5 y 15 minutos.
• Algunos sistemas UNIX solo tienen en cuenta la utilización de la CPU o la longitud de la cola de
ejecución para indicar la carga del sistema. Linux también incluye la utilización del disco o de la
red porque eso puede tener un impacto tan significativo en el rendimiento del sistema como la
carga de la CPU. Cuando haya promedios altos de carga con actividad mínima de CPU, se debe
examinar la actividad del disco y de la red.
RH124-RHEL8.2-es-1-20200928 279
capítulo 8 | Monitoreo y administración de procesos Linux
Los tres valores del promedio de carga representan la carga durante los últimos 1, 5 y 15 minutos.
Una rápida mirada indica si la carga del sistema parece estar subiendo o bajando.
En el siguiente ejemplo, el sistema es un sistema de un solo socket de doble núcleo con dos
hyperthreads por núcleo. En términos generales, Linux tratará esto como un sistema de cuatro
CPU para fines de programación.
Imagine por un momento que la única contribución a la cantidad de carga proviene de procesos
que necesitan tiempo de CPU. Puede entonces dividir los valores promedios de carga que se
muestran por el número de CPU lógicas en el sistema. Un valor por debajo de 1 indica utilización
de recursos satisfactoria y tiempos de espera mínimos. Un valor por encima de 1 indica saturación
de recursos y cierta cantidad de retraso en el procesamiento.
Una cola de CPU inactiva tiene una cantidad de carga de 0. Cada proceso que espera a una CPU
agrega un recuento de 1 a la cantidad de carga. Si un proceso se está ejecutando en una CPU, la
cantidad de carga es 1, es decir, el recurso (la CPU) está en uso, pero no hay solicitudes en espera.
Si ese proceso se está ejecutando durante un minuto entero, su contribución al promedio de carga
de un minuto será 1.
Sin embargo, los procesos en suspensión ininterrumpida para E/S críticas debido a un disco o
recurso de red ocupados se incluyen también en el recuento y aumentan el promedio de carga.
Si bien no es una indicación de la utilización de la CPU, estos procesos se agregan al recuento de
la cola porque están esperando recursos y no pueden ejecutarse en una CPU hasta que obtienen
esos recursos. Esto sigue siendo una carga del sistema debido a las limitaciones de recursos que
están haciendo que los procesos no se ejecuten.
280 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administració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 son encontradas en las colas de espera. El promedio de
carga solo aumenta cuando la saturación del recurso provoca que las solicitudes se mantengan en
fila y sean contadas por la rutina del cálculo de carga. Cuando la utilización del recurso se aproxima
al 100 %, cada solicitud adicional comienza a experimentar un tiempo de espera del servicio.
Existen algunas otras herramientas que informan el promedio de carga, incluyendo w y top.
• La memoria virtual (VIRT) es toda la memoria que está usando el proceso, incluido el conjunto
residente, las bibliotecas compartidas y cualquier página de memoria asignada o intercambiada.
(Con la etiqueta VSZ en el comando ps).
• La memoria residente (RES) es la memoria física que usa el proceso, incluido cualquier objeto
residente compartido. (Con la etiqueta RSS en el comando ps).
– D = Suspensión ininterrumpida
– R = En ejecución o ejecutable
– S = En espera
– T = Detenido o en seguimiento
– Z = Zombi
• El tiempo de CPU (TIME) es el tiempo total de procesamiento desde que comenzó el proceso.
Se puede alternar para incluir el tiempo acumulativo de todos los procesos secundarios.
Tecla Propósito
s (1) Cambiar la tasa de actualización (pantalla) en segundos decimales (p. ej., 0.5, 1,
5).
RH124-RHEL8.2-es-1-20200928 281
capítulo 8 | Monitoreo y administración de procesos Linux
Tecla Propósito
r (1) Ejecute el comando renice para un proceso. Cuando se le solicite, ingrese PID;
luego, nice_value.
q Salir.
Referencias
Páginas de manual: ps(1), top(1), uptime(1) y w(1)
282 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Ejercicio Guiado
Resultados
Deberá poder gestionar los procesos en tiempo real.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. Estas terminales se
denominan izquierda y derecha. En cada terminal, use el comando ssh para iniciar sesión en
servera como el usuario student.
2.1. Use el comando mkdir para crear un nuevo directorio denominado /home/
student/bin.
#!/bin/bash
while true; do
var=1
while [[ var -lt 60000 ]]; do
var=$(($var+1))
done
sleep 1
done
RH124-RHEL8.2-es-1-20200928 283
capítulo 8 | Monitoreo y administración de procesos Linux
El script monitor se ejecuta hasta que termine. Genera carga artificial de CPU
al realizar sesenta mil problemas de suma. Luego se inactiva durante un segundo,
restablece la variable y se repite.
2.3. Use el comando chmod para hacer que el archivo monitor sea ejecutable.
5. En la shell de terminal izquierda, ejecute una sola instancia del archivo ejecutable monitor.
Use el signo (&) para iniciar el proceso en segundo plano.
284 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
top - 12:23:45 up 11 days, 1:09, 3 users, load average: 0.21, 0.14, 0.05
8. En la shell de terminal izquierda, ejecute una segunda instancia de monitor. Use el signo
(&) para iniciar el proceso en segundo plano.
top - 12:27:39 up 11 days, 1:13, 3 users, load average: 0.36, 0.25, 0.11
10. En la shell de terminal izquierda, ejecute una tercera instancia de monitor. Use el signo (&)
para iniciar el proceso en segundo plano.
RH124-RHEL8.2-es-1-20200928 285
capítulo 8 | Monitoreo y administració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 también se espera que sea
entre el 15 % y el 25 %.
Para que el promedio de carga sea superior a 1, debe iniciar más procesos de monitor.
La configuración del aula tiene 2 CPU, por lo que solo 3 procesos no son suficientes para
alterarla. Inicie tres procesos de monitor más. Observe de nuevo el promedio de carga
de un minuto, que ahora se espera que sea superior a 1. Es importante esperar al menos un
minuto para permitir que el cálculo se adapte a la carga de trabajo nueva.
top - 12:42:32 up 11 days, 1:28, 3 users, load average: 1.23, 2.50, 1.54
12. Una vez que haya finalizado de observar los valores promedio de carga, finalice cada uno
de los procesos monitor desde top.
12.1. En la shell de terminal derecha, presione k. Observe el prompt que está debajo de los
encabezados y arriba de las columnas.
...output omitted...
PID to signal/kill [default pid = 11338]
...output omitted...
Send pid 11338 signal [15/sigterm]
286 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
13. Repita el paso anterior para cada instancia de monitor restante. Confirme que no quede
ningún proceso monitor en top.
14. En la shell de terminal derecha, presione q para salir de top. Salga de servera en ambas
ventanas de terminal.
Finalizar
En workstation, ejecute el script lab processes-monitor finish para terminar este
ejercicio.
RH124-RHEL8.2-es-1-20200928 287
capítulo 8 | Monitoreo y administración de procesos Linux
Trabajo de laboratorio
Resultados
Debe poder administrar procesos utilizando top como herramienta de administración de
procesos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. En esta sección,
estas terminales se denominan izquierda y derecha. En cada ventana de terminal, inicie sesión
en serverb como el usuario student.
Cree un script llamado process101, que generará carga artificial de la CPU. Cree el script
en el directorio /home/student/bin.
#!/bin/bash
while true; do
var=1
while [[ var -lt 50000 ]]; do
var=$(($var+1))
done
sleep 1
done
288 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
6. Copie el script process101 en un archivo nuevo llamado process102. Edite el script para
crear más carga artificial de la CPU. Incremente la carga de cincuenta mil a cien mil. Inicie el
proceso process102 en segundo plano.
7. En la shell de terminal derecha, confirme 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 todavía 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, conviértase en 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 mediante la línea de comandos.
Confirme que los procesos ya no se muestren en top.
12. En la shell de terminal izquierda, salga del usuario root. En la shell de terminal derecha,
detenga el comando top. Salga de serverb en ambas ventanas.
Evaluación
En workstation, ejecute el script lab processes-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab processes-review finish para terminar el trabajo de
laboratorio.
RH124-RHEL8.2-es-1-20200928 289
capítulo 8 | Monitoreo y administración de procesos Linux
Solución
Resultados
Debe poder administrar procesos utilizando top como herramienta de administración de
procesos.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, abra dos ventanas de terminal una al lado de la otra. En esta sección,
estas terminales se denominan izquierda y derecha. En cada ventana de terminal, inicie sesión
en serverb como el usuario student.
Cree un script llamado process101, que generará carga artificial de la CPU. Cree el script
en el directorio /home/student/bin.
#!/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 serverb como el usuario
student.
1.2. En la shell de terminal izquierda, use el comando mkdir para crear el directorio /home/
student/bin.
290 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
1.3. En la shell de terminal izquierda, use el comando vim para crear el script process101.
Presione la tecla i para ingresar al modo interactivo. Escriba :wq para guardar el
archivo.
1.4. Use el comando chmod para hacer que el archivo process101 sea ejecutable.
2.1. En la ventana derecha, ejecute la utilidad top. Modifique el tamaño de la ventana para
que sea lo más alta posible.
RH124-RHEL8.2-es-1-20200928 291
capítulo 8 | Monitoreo y administración de procesos Linux
4. En la shell de terminal derecha, observe la pantalla de top. Alterne entre cargas, subprocesos
y memoria. Anote la ID de proceso (PID) para process101. Observe el porcentaje de CPU.
Debería rondar entre el 10 % y 15 %. Asegúrese de que top muestra el uso de la CPU una vez
que haya visto la carga, los subprocesos y la memoria.
nota
Tenga en cuenta que cuando top se cambia al modo memory, process101 ya no es
el primer proceso. Puede presionar Shift+p para volver al uso de la CPU.
4.2. Presione m.
4.3. Presione t.
292 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administració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.
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. Copie el script process101 en un archivo nuevo llamado process102. Edite el script para
crear más carga artificial de la CPU. Incremente la carga de cincuenta mil a cien mil. Inicie el
proceso process102 en segundo plano.
RH124-RHEL8.2-es-1-20200928 293
capítulo 8 | Monitoreo y administración de procesos Linux
6.2. Use el comando vim para editar el script process102. Incremente los problemas de
suma de cincuenta mil a cien mil. Ingrese al modo interactivo mediante el uso de la i.
Escriba :wq para guardar el archivo.
6.4. Use el comando jobs para confirmar que ambos procesos se ejecutan en segundo
plano.
7. En la shell de terminal derecha, confirme 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 y que usa
la mayoría de los recursos de la CPU. La carga debe ser del 25 % al 35 %.
294 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
nota
Si no ve process101 y process102 en la parte superior de la lista de procesos,
presione Shift+p para garantizar que top está ordenado por la utilización de la
CPU.
8.1. En la shell de terminal derecha, confirme que el promedio de carga sea inferior a 1.
8.3. En la shell de terminal izquierda, use el comando vim para editar el script process103.
Incremente el recuento de sumas a ochocientos mil. Ingrese al modo interactivo
mediante la tecla i. Escriba :wq para guardar el archivo.
8.6. En la ventana de terminal derecha, confirme que el promedio de carga sea superior a 1.
RH124-RHEL8.2-es-1-20200928 295
capítulo 8 | Monitoreo y administración de procesos Linux
[student@serverb bin]$ su -
Password: redhat
9.2. Use el comando pkill con la opción -SIGSTOP para suspender el proceso
process101.
9.4. En la shell de terminal izquierda, ejecute el comando ps jT para ver los trabajos
restantes.
[root@serverb ~]# ps jT
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
...output omitted...
27138 1180 1180 27138 pts/0 28558 T 1000 3:06 /bin/bash /home/student/
bin/process101
27138 20723 20723 27138 pts/0 28558 R 1000 1:23 /bin/bash /home/student/
bin/process102
27138 24043 24043 27138 pts/0 28558 R 1000 2:35 /bin/bash /home/student/
bin/process103
...output omitted...
Tenga en cuenta que process101 tiene un estado de T. Esto denota que el proceso
está actualmente suspendido.
10.1. En la shell de terminal izquierda, use el comando pkill con la opción -SIGCONTpara
reanudar el proceso process101.
10.2. En la shell de terminal derecha, confirme que el proceso se está ejecutando otra vez.
296 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
11.1. En la shell de terminal izquierda, use el comando pkill para finalizar process101,
process102 y process103.
11.2. En la shell de terminal derecha, confirme que los procesos ya no aparecen en top.
12. En la shell de terminal izquierda, salga del usuario root. En la shell de terminal derecha,
detenga el comando top. Salga de serverb en ambas ventanas.
12.1. Use el comando exit para cerrar sesión del usuario root.
RH124-RHEL8.2-es-1-20200928 297
capítulo 8 | Monitoreo y administración de procesos Linux
12.3. En la shell de terminal derecha, presione q para salir de top. Use el comando exit para
cerrar sesión.
Evaluación
En workstation, ejecute el script lab processes-review grade para confirmar que ha realizado
correctamente este ejercicio.
Finalizar
En workstation, ejecute el script lab processes-review finish para terminar el trabajo de
laboratorio.
298 RH124-RHEL8.2-es-1-20200928
capítulo 8 | Monitoreo y administración de procesos Linux
Resumen
En este capítulo, aprendió lo siguiente:
• Cada terminal es 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 el comando top, uptime o w.
RH124-RHEL8.2-es-1-20200928 299
300 RH124-RHEL8.2-es-1-20200928
capítulo 9
RH124-RHEL8.2-es-1-20200928 301
capítulo 9 | Control de servicios y daemons
Objetivos
Tras finalizar esta sección, deberá ser capaz de enumerar los daemons del sistema y los servicios
de red iniciados por el servicio systemd y las unidades socket.
Introducción a systemd
El daemon de systemd administra el inicio para Linux, incluido el inicio del servicio y la gestión de
servicios en general. Activa los recursos del sistema, los daemons del servidor y otros procesos,
tanto en el momento del arranque como en un sistema que está en funcionamiento.
Los daemons son procesos que esperan o se ejecutan en segundo plano y realizan diversas tareas.
Generalmente, los daemons se inician automáticamente en el momento del arranque y continúan
ejecutándose hasta que se apaga el sistema o son detenidos manualmente. Por convención, los
nombres de muchos programas daemon finalizan con la letra d.
A menudo, un servicio en el contexto de systemd hace referencia a uno o más daemons, pero
iniciar o detener un servicio puede, en cambio, hacer una modificación por única vez en el estado
del sistema, que no implica dejar un proceso daemon en ejecución después de esto (que se
denomina oneshot).
En Red Hat Enterprise Linux, el primer proceso que se inicia (PID 1) es systemd. Estas son algunas
de las funciones que proporciona systemd:
• Gestión automática de dependencias del servicio, que puede evitar largos tiempos de espera.
Por ejemplo, un servicio que depende de una red no intentará iniciarse hasta que la red esté
disponible.
• Método para realizar el seguimiento de los procesos relacionados en forma conjunta con el uso
de los grupos de control de Linux.
• Las unidades de servicio tienen una extensión .service y representan servicios del sistema.
Este tipo de unidad se usa para iniciar los daemons usados con más frecuencia, como un
servidor web.
• Las unidades socket tienen una extensión .socket y representan sockets de comunicación
entre procesos (IPC) que systemd debe monitorear. Si un cliente se conecta al socket,
systemd iniciará un daemon y le pasará la conexión. Las unidades socket se usan para demorar
el inicio de un servicio en el momento del arranque y para iniciar servicios usados con menos
frecuencia a pedido.
302 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
• Las unidades de ruta tienen una extensión .path y se usan para demorar la activación de un
servicio hasta que ocurra un cambio en el sistema de archivos específico. Esto se usa con más
frecuencia en servicios que usan directorios de cola, como los sistemas de impresión.
El comando systemctl se usa para gestionar unidades. Por ejemplo, el comando systemctl -
t help permite visualizar los tipos de unidad disponibles.
Importante
Cuando usa systemctl, puede abreviar los nombres de las unidades, las entradas
de árbol de proceso y las descripciones de unidad.
La salida anterior limita el tipo de unidad enumerada en las unidades de servicio con la opción --
type=service. La salida tiene las siguientes columnas:
UNIT (UNIDAD)
El nombre de la unidad de servicio.
LOAD (CARGA)
Se detalla si systemd analizó adecuadamente la configuración de la unidad y cargó la unidad
en la memoria.
ACTIVE (ACTIVO)
El estado de activación de alto nivel de la unidad. Esta información indica si la unidad se ha
iniciado de forma satisfactoria.
SUB
El estado de activación de bajo nivel de la unidad. Esta información proporciona datos más
detallados sobre la unidad. La información varía según el tipo de unidad, el estado y cómo se
ejecuta la unidad.
DESCRIPTION (DESCRIPCIÓN)
La descripción breve de la unidad.
RH124-RHEL8.2-es-1-20200928 303
capítulo 9 | Control de servicios y daemons
El comando systemctl sin ningún argumento enumera las unidades que están cargadas y
activas.
Con el comando systemctl list-units, se visualizan las unidades que el servicio systemd
intenta analizar y cargar en la memoria; no se visualizan los servicios instalados no habilitados.
Para ver el estado de todos los archivos de unidad instalados, use el comando systemctl list-
unit-files. Por ejemplo:
En la salida del comando systemctl list-units-files, las entradas válidas para el campo
STATE son enabled (habilitado), disabled (deshabilitado), static (estático) y masked
(enmascarado).
304 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
Con este comando, se visualiza el estado actual del servicio. Los significados de los campos son
los siguientes:
Campo Descripción
Main PID (ID de proceso principal) El ID de proceso principal del servicio, incluido
el nombre del comando.
En la salida del estado, se pueden encontrar varias palabras clave que indican el estado del
servicio:
active (running) (activo [en En ejecución con uno o más procesos en curso.
ejecución])
RH124-RHEL8.2-es-1-20200928 305
capítulo 9 | Control de servicios y daemons
static (estático) No puede habilitarse, pero puede iniciarse por una unidad
habilitada en forma automática.
nota
El comando systemctl status NAME reemplaza al comando service NAME
status que se usaba en Red Hat Enterprise Linux 6 y versiones anteriores.
Ejecute el siguiente comando para verificar si una unidad de servicio está habilitada para iniciarse
automáticamente durante el arranque del sistema:
El comando informa si la unidad de servicio está habilitada para iniciarse en el momento del
arranque, lo cual generalmente se informa como estado enabled (habilitado) o disabled
(deshabilitado).
306 RH124-RHEL8.2-es-1-20200928
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)
RH124-RHEL8.2-es-1-20200928 307
capítulo 9 | Control de servicios y daemons
Ejercicio Guiado
Resultados
Deberá ser capaz de enumerar las unidades de servicio instaladas e identificar los servicios
activos y habilitados en el sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
308 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
4. Explore el estado del servicio chronyd. Este servicio se usa para la sincronización del
tiempo en red (NTP).
4.1. Visualice el estado del servicio chronyd. Observe la ID del proceso de todos los
daemons activos.
RH124-RHEL8.2-es-1-20200928 309
capítulo 9 | Control de servicios y daemons
5. Explore el estado del servicio sshd. Este servicio se usa para una comunicación cifrada
segura entre sistemas.
5.1. Determine si el servicio sshd está habilitado para que se inicie en el arranque del
sistema.
5.2. Determine si el servicio sshd está activo sin mostrar toda la información de estado.
310 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
chrony-wait.service disabled
chronyd.service enabled
...output omitted...
7. Salga de servera.
Finalizar
En workstation, ejecute el script lab services-identify finish para terminar este
ejercicio.
RH124-RHEL8.2-es-1-20200928 311
capítulo 9 | Control de servicios y daemons
Objetivos
Tras finalizar esta sección, deberá ser capaz de controlar los daemons del sistema y los servicios
de red con systemctl.
Para iniciar un servicio, primero verifique que no se esté ejecutando con systemctl status.
A continuación, use el comando systemctl start como el usuario root (usando sudo si es
necesario). En el siguiente ejemplo, se muestra cómo iniciar el servicio sshd.service:
El servicio systemd busca archivos .service para la gestión del servicio en comandos a falta
del tipo de servicio con el nombre del servicio. Por lo tanto, el comando anterior se puede ejecutar
como:
Para detener un servicio que se encuentra actualmente en ejecución, use el argumento stop
con el comando systemctl. En el siguiente ejemplo, se muestra cómo detener el servicio
sshd.service:
Algunos servicios tienen la capacidad de volver a cargar sus archivos de configuración sin
necesidad de reiniciar. Este proceso se llama recarga del servicio. La recarga de un servicio no
cambia la ID del proceso asociada con diversos procesos del servicio. Para recargar un servicio
en ejecución, use el argumento reload con el comando systemctl. En el siguiente ejemplo, se
muestra cómo volver a cargar el servicio sshd.service después de modificar la configuración:
312 RH124-RHEL8.2-es-1-20200928
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 argumento reload-or-restart con el comando
systemctl. El comando vuelve a cargar los cambios de configuración si la funcionalidad de
recarga está disponible. De lo contrario, el comando reinicia el servicio para implementar los
nuevos cambios de configuración:
Para detener por completo los servicios de impresión en un sistema, detenga las tres unidades. Al
deshabilitar el servicio, se deshabilitarán las dependencias.
RH124-RHEL8.2-es-1-20200928 313
capítulo 9 | Control de servicios y daemons
El intento de iniciar una unidad de servicio enmascarada falla y arroja la siguiente salida:
Importante
Un servicio deshabilitado se puede iniciar manualmente o por medio de otros
archivos de la unidad, pero no se inicia automáticamente en el arranque. Un servicio
enmascarado no se inicia de forma manual ni automática.
314 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
Para que el servicio no se inicie automáticamente, use el siguiente comando que quita el enlace
simbólico creado al habilitar un servicio. Tenga en cuenta que la deshabilitación de un servicio no
detiene el servicio.
Para verificar si el servicio está habilitado o deshabilitado, use el comando systemctl is-
enabled.
Tarea Comando
RH124-RHEL8.2-es-1-20200928 315
capítulo 9 | Control de servicios y daemons
Referencias
Páginas del manual systemd(1), systemd.unit(5), systemd.service(5),
systemd.socket(5) y systemctl(1)
316 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
Ejercicio Guiado
Resultados
Deberá ser capaz de usar el comando systemctl para controlar los servicios gestionados
por systemd.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña.
2.1. Visualice el estado del servicio sshd. Tenga en cuenta la ID del proceso del daemon
sshd.
RH124-RHEL8.2-es-1-20200928 317
capítulo 9 | Control de servicios y daemons
2.2. Reinicie el servicio sshd y visualice el estado. La ID del proceso del daemon debe
cambiar.
En la salida anterior, observe que la ID del proceso cambió de 759 a 1132 (es probable
que los números en su sistema sean diferentes). Presione q para salir del comando.
2.3. Vuelva a cargar el servicio sshd y visualice el estado. La ID del proceso del daemon
no debe cambiar, y las conexiones no deben estar interrumpidas.
318 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
5. Determine si el servicio chronyd está habilitado para iniciarse en el arranque del sistema.
Inicie sesión con el usuario student en servera y visualice el estado del servicio
chronyd.
7. Deshabilite el servicio chronyd para que no se inicie en el arranque del sistema y, luego,
visualice el estado del servicio.
RH124-RHEL8.2-es-1-20200928 319
capítulo 9 | Control de servicios y daemons
Inicie sesión con el usuario student en servera y visualice el estado del servicio
chronyd.
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab services-control finish para terminar este
ejercicio.
320 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
Trabajo de laboratorio
Resultados
Deberá ser capaz de habilitar, deshabilitar, iniciar y detener servicios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab services-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab services-review finish para terminar este trabajo
de laboratorio.
RH124-RHEL8.2-es-1-20200928 321
capítulo 9 | Control de servicios y daemons
Solución
Resultados
Deberá ser capaz de habilitar, deshabilitar, iniciar y detener servicios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student.
1.2. Use el comando systemctl para verificar el estado del servicio psacct. Tenga en
cuenta que psacct se encuentra detenido y deshabilitado, por lo que no se inicia en el
momento del arranque.
322 RH124-RHEL8.2-es-1-20200928
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. Use el comando systemctl para verificar el estado del servicio rsyslog. Tenga
en cuenta que el servicio rsyslog está en ejecución y habilitado para iniciarse en el
momento del arranque.
4. Configure el servicio rsyslog para que no se inicie en el momento de arranque del sistema.
4.1. Deshabilite el servicio rsyslog para que no se inicie en el momento de arranque del
sistema.
RH124-RHEL8.2-es-1-20200928 323
capítulo 9 | Control de servicios y daemons
Evaluación
En workstation, ejecute el script lab services-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab services-review finish para terminar este trabajo
de laboratorio.
324 RH124-RHEL8.2-es-1-20200928
capítulo 9 | Control de servicios y daemons
Resumen
En este capítulo, aprendió lo siguiente:
• 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 utiliza systemctl para iniciar, detener, volver a cargar, habilitar y deshabilitar servicios.
• Se utiliza el comando systemctl status para determinar el estado de los daemons del
sistema y los servicios de red iniciados por systemd.
• systemd puede enmascarar una unidad de servicio para que no se ejecute ni siquiera para dar
respuesta a las dependencias.
RH124-RHEL8.2-es-1-20200928 325
326 RH124-RHEL8.2-es-1-20200928
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-RHEL8.2-es-1-20200928 327
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Tras finalizar esta sección, deberá poder iniciar sesión en un sistema remoto y ejecutar comandos
a través de ssh.
¿Qué es OpenSSH?
OpenSSH implementa el protocolo Secure Shell o SSH en los sistemas de Red Hat
Enterprise Linux. El protocolo SSH permite que los sistemas se comuniquen de forma cifrada y
segura a través de una red insegura.
Puede usar 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 como
ese usuario. También puede usar el comando ssh para ejecutar un comando individual en el
sistema remoto sin acceder a la shell interactiva.
Con el siguiente comando ssh, podría iniciar sesión en el servidor remoto remotehost utilizando
el nombre de usuario user02. Una vez más, el sistema remoto le solicita que se autentique con la
contraseña de ese usuario.
Este comando ssh ejecutaría el comando hostname en el sistema remoto remotehost como el
usuario user02 sin acceder a la shell interactiva remota.
328 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Tenga en cuenta que el comando anterior mostró el resultado en el terminal del sistema local.
Cuando un usuario usa el comando ssh para conectarse a un servidor SSH, el comando
verifica si tiene una copia de la clave pública para ese servidor en sus archivos de hosts locales
conocidos. El administrador del sistema puede tenerla configurada previamente en /etc/ssh/
ssh_known_hosts, o el usuario puede tener un archivo ~/.ssh/known_hosts en su directorio
de inicio que contiene la clave.
Si el cliente tiene una copia de la clave, 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 sufre un secuestro o que el servidor está en riesgo, y solicita al usuario que
confirme si desea continuar o interrumpir la conexión.
nota
Defina el parámetro StrictHostKeyChecking en sí en el archivo ~/.ssh/
config específico del usuario o /etc/ssh/ssh_config de todo el sistema para
que el comando ssh siempre interrumpa la conexión SSH si las claves públicas no
coinciden.
RH124-RHEL8.2-es-1-20200928 329
capítulo 10 | Configuración y seguridad de SSH
Si el cliente no tiene una copia de la clave pública en sus archivos de hosts conocidos, el comando
ssh le preguntará si desea iniciar sesión de todos modos. Si lo hace, se guardará una copia de
la clave pública en su archivo ~/.ssh/known_hosts para que la identidad del servidor pueda
confirmarse automáticamente en el futuro.
Cada servidor SSH remoto al que se conecte almacena su clave pública en el directorio /etc/ssh
en archivos con la extensión .pub.
nota
Es una buena práctica agregar entradas que hagan coincidir los archivos
ssh_host_*key.pub de un servidor con su archivo ~/.ssh/known_hosts o el
archivo /etc/ssh/ssh_known_hosts en todo el sistema.
330 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Referencias
Páginas de manual ssh(1), w(1) y hostname(1)
RH124-RHEL8.2-es-1-20200928 331
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
Usted debe poder realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute lab ssh-access start para comenzar el ejercicio. Este script
asegura que el entorno esté configurado correctamente.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. Abra una sesión de SSH en serverb como student. Acepte la clave de host. Use la
contraseña student cuando se le solicite la contraseña para el usuario student en
serverb.
332 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
3. Ejecute el comando w para mostrar los usuarios que actualmente han iniciado sesión en
serverb.
[student@serverb ~]$ w
18:49:29 up 2:55, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
student pts/0 172.25.250.10 18:33 0.00s 0.01s 0.00s w
nota
La dirección IP de un sistema identifica el sistema en una red. Aprenderá acerca de
las direcciones IP en el capítulo posterior.
5. Abra una sesión de SSH en serverb como root. Use redhat como contraseña para el
usuario root.
Tenga en cuenta que el comando ssh anterior no le pidió que aceptara la clave de host
porque esta se encontró entre los hosts conocidos. Si la identidad de serverb cambia en
cualquier momento, OpenSSH le solicitará que verifique y acepte la clave de host nueva.
6. Ejecute el comando w para mostrar los usuarios que actualmente han iniciado sesión en
serverb.
[root@serverb ~]# w
19:10:28 up 3:16, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 172.25.250.10 19:09 1.00s 0.01s 0.00s w
En la salida anterior, se 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 servera en la red del aula.
RH124-RHEL8.2-es-1-20200928 333
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
reemplazó debido a una falla del hardware, o es posible que la máquina remota se haya
reinstalado. Por lo general, es aconsejable solo eliminar la entrada de clave para el host
particular en el archivo known_hosts. Puesto que este archivo particular known_hosts
tiene solo una entrada, puede eliminar todo el archivo.
9. Abra una sesión de SSH en serverb como student. Acepte la clave de host (si se le
solicita). Use la contraseña student cuando se le solicite la contraseña para el usuario
student en serverb.
Tenga en cuenta que 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 serverb y confirme que una instancia nueva de
known_hosts existe en servera.
11. Confirme si la nueva instancia del archivo known_hosts tiene la clave de host de
serverb.
334 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
12. Ejecute hostname de forma remota en serverb sin acceder a la shell interactiva.
El comando anterior mostró el nombre de host completo del sistema remoto serverb.
Finalizar
En workstation, ejecute lab ssh-access finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 335
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Tras finalizar esta sección, deberá poder configurar una cuenta de usuario para emplear la
autenticación basada en claves e iniciar sesión en sistemas remotos de forma segura y sin una
contraseña.
Para hacer esto, genera un par coincidente de archivos de claves criptográficas. Una es una clave
privada, la otra una clave pública coincidente. El archivo de clave privada se usa como credencial
de autenticación y, al igual que una contraseña, debe ser secreta y segura. La clave pública se
copia en los sistemas con los que el usuario desea conectarse y se usa para verificar la clave
privada. No es necesario que la clave pública sea secreta.
Coloque una copia de la clave pública en su cuenta en el servidor. Cuando intenta iniciar sesión,
el servidor SSH puede usar la clave pública para emitir un desafío que solo puede ser respondido
correctamente usando la clave privada. Como resultado, su cliente ssh puede autenticar
automáticamente su inicio de sesión en el servidor con su copia única de la clave privada. Esto le
permite acceder a los sistemas de manera segura sin que sea necesario ingresar siempre en forma
interactiva una contraseña.
336 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
|.+% O . + B . |
|=*oO . . + * |
|++. . +. |
+----[SHA256]-----+
Puede ejecutar un programa de ayuda llamado ssh-agent que puede almacenar temporalmente
en la memoria caché la contraseña de la clave privada al inicio de la sesión para obtener una
verdadera autenticación sin contraseña. Hablaremos de esto más adelante en esta sección.
La opción -f con el comando ssh-keygen determina los archivos donde se guardan las
claves. En el ejemplo anterior, las claves privada y pública se guardan en los archivos /home/
user/.ssh/key-with-pass /home/user/.ssh/key-with-pass.pub, respectivamente.
Advertencia
Durante la generación de pares de claves SSH adicionales, a menos que especifique
un nombre de archivo único, se le solicitará permiso para sobrescribir los archivos
id_rsa y id_rsa.pub existentes. Si sobrescribe los archivos id_rsa y
id_rsa.pub existentes, entonces debe reemplazar la clave pública anterior con la
nueva en todos los servidores SSH que tienen su clave pública anterior.
RH124-RHEL8.2-es-1-20200928 337
capítulo 10 | Configuración y seguridad de SSH
Una vez que se hayan generado las claves SSH, se guardarán de modo predeterminado en el
directorio .ssh/ del directorio principal del usuario. Los modos de permisos deben ser 600 en la
clave privada y 644 en la clave pública.
Una vez que la clave pública se transfiere de forma satisfactoria a un sistema remoto, puede
realizar la autenticación en el sistema remoto por medio de la clave privada correspondiente
mientras inicia sesión en el sistema remoto a través de SSH. Si omite la ruta al archivo de la
clave privada mientras ejecuta el comando ssh, se usa el archivo /home/user/.ssh/id_rsa
predeterminado.
338 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Si inicia sesión en una consola de texto, inicie sesión con ssh, o usa sudo o su, probablemente
deberá iniciar ssh-agent manualmente para esa sesión. Puedes hacer esto con el siguiente
comando:
nota
Cuando ejecuta ssh-agent, este imprime algunos comandos de shell. Debe
ejecutar estos comandos para configurar las variables de entorno utilizadas por
programas como ssh-add para que se comuniquen con estos. El comando eval
$(ssh-agent) inicia ssh-agent y ejecuta esos comandos para establecer
automáticamente esas variables de entorno para esa sesión de shell. También
muestra el PID del proceso ssh-agent.
Una vez que ssh-agent se está ejecutando, debe decirle la frase de contraseña para su clave
privada o sus claves. Puede hacerlo con el comando ssh-add.
Los siguientes comandos ssh-add agregan las claves privadas desde los archivos /
home/user/.ssh/id_rsa (de manera predeterminada) y /home/user/.ssh/key-with-
pass, respectivamente.
Después de agregar las claves privadas satisfactoriamente al proceso sh-agent, puede invocar
una conexión SSH por medio del comando ssh. Si está usando un archivo de clave privada que
no es el archivo /home/user/.ssh/id_rsa predeterminado, debe usar la opción -i con el
comando ssh para especificar la ruta al archivo de la clave privada.
En el siguiente ejemplo del comando ssh, se usa el archivo de clave privada predeterminado para
realizar la autenticación en un servidor SSH.
En el siguiente ejemplo del comando ssh, se usa el archivo de clave privada /home/user/.ssh/
key-with-pass (no predeterminado) para realizar la autenticación en un servidor SSH. La
clave privada en el siguiente ejemplo ya se ha descifrado y agregado a su proceso principalssh-
agent, por lo que el comando ssh no le solicita que descifre la clave privada mediante el ingreso
interactivo de su frase de contraseña.
RH124-RHEL8.2-es-1-20200928 339
capítulo 10 | Configuración y seguridad de SSH
Cuando sales de la sesión que comenzó ssh-agent , el proceso se cerrará y las frases de
contraseña de sus claves privadas se borrarán de la memoria.
Referencias
Páginas de manual ssh-keygen(1), ssh-copy-id(1), ssh-agent(1),ssh-add(1)
340 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
Usted debe poder realizar lo siguiente:
• Realizar la autenticación mediante claves SSH sin frase de contraseña y mediante claves
SSH protegidas con frase de contraseña.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Use el comando su para cambiar al usuario operator1 en serverb. Use redhat como la
contraseña de operator1.
3. Use el comando ssh-keygen para generar claves SSH. No ingrese una frase de
contraseña.
RH124-RHEL8.2-es-1-20200928 341
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 a
operator1 en servera. Use redhat como la contraseña de operator1 en servera.
5. Ejecute el comando hostname en servera de forma remota usando SSH sin acceder a la
shell interactiva remota.
Tenga en cuenta que el comando ssh anterior no le solicitó una contraseña porque usó
la clave privada sin frase de contraseña correspondiente a la clave pública exportada para
realizar la autenticación como operator1 en servera. Este enfoque no es seguro, ya
que cualquier persona que tenga acceso al archivo de clave privada puede iniciar sesión
en servera como operator1. La alternativa segura es proteger la clave privada con una
frase de contraseña, lo cual se describe en el siguiente paso.
342 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
6. Use el comando ssh-keygen para generar otro conjunto de claves SSH protegidas con
frase de contraseña. Guarde la clave como /home/operator1/.ssh/key2. Utilice
redhatpass como la frase de contraseña de la clave privada.
Advertencia
Si no especifica el archivo donde se guarda la clave, se usa el archivo
predeterminado (/home/user/.ssh/id_rsa). Ya ha usado el nombre de
archivo predeterminado al generar claves SSH en el paso anterior, por lo que es
fundamental que especifique un archivo no predeterminado. De lo contrario, las
claves SSH existentes se sobrescribirán.
7. Use el comando ssh-copy-id para enviar la clave pública del par de claves protegidas con
con frase de contraseña a operator1 en servera.
RH124-RHEL8.2-es-1-20200928 343
capítulo 10 | Configuración y seguridad de SSH
8. Ejecute el comando hostname en servera de forma remota con SSH sin acceder a
la shell interactiva remota. Use /home/operator1/.ssh/key2 como el archivo de
identidad. Ingrese la frase de contraseña redhatpass que definió para la clave privada en
el paso anterior.
Tenga en cuenta que el comando ssh anterior le solicitó la frase de contraseña que
usó para proteger la clave privada del par de claves SSH. Esta frase de contraseña
protege la clave privada. Si un atacante obtiene acceso a la clave privada, no podrá usarla
para acceder a otros sistemas porque la clave privada está protegida con una frase de
contraseña. El comando ssh usa una frase de contraseña diferente a la frase de contraseña
para operator1 en servera, lo que exige que los usuarios conozcan ambas.
Puede usar ssh-agent, como en el siguiente paso, para evitar escribir de forma interactiva
la frase de contraseña al iniciar sesión con SSH. El uso de ssh-agent resulta más
conveniente y más seguro en situaciones donde los administradores inician sesión en
sistemas remotos con regularidad.
9. Ejecute ssh-agent en la shell Bash y agregue la clave privada protegida con frase de
contraseña (/home/operator1/.ssh/key2) del par de claves SSH a la sesión de shell.
El comando eval anterior inició ssh-agent y configuró esta sesión de shell para usarla.
Así, usó ssh-add para proporcionar la clave privada desbloqueada para ssh-agent.
10. Ejecute el comando hostname en servera de forma remota sin acceder a la shell
interactiva remota. Use /home/operator1/.ssh/key2 como el archivo de identidad.
Tenga en cuenta que el comando ssh anterior no le solicitó que ingrese la frase de
contraseña de forma interactiva.
11. Abra otro terminal en workstation y abra una sesión de SSH en serverb como
student.
12. En serverb, use el comando su para cambiar a operator1 e invocar una conexión SSH
en servera. Use /home/operator1/.ssh/key2 como el archivo de identidad para
realizar la autenticación por medio de claves SSH.
344 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
12.1. Use el comando su para cambiar a operator1. Use redhat como la contraseña de
operator1.
13. Salga de todas las shells que está utilizando en el segundo terminal.
13.2. Salga de las shells operator1 y student en serverb para volver a la shell del
usuario student en workstation.
14.1. Desde el primer terminal, salga de la shell del usuario operator1 en serverb.
El comando exit hizo que saliera de la shell del usuario operator1, finalizando la
sesión de la shell donde ssh-agent estaba activo, y volviera a la shell del usuario
student en serverb.
RH124-RHEL8.2-es-1-20200928 345
capítulo 10 | Configuración y seguridad de SSH
14.2. Salga de la shell del usuario student en serverb para volver a la shell del usuario
student en workstation.
Finalizar
En workstation, ejecute lab ssh-configure finish para terminar este ejercicio.
346 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Objetivos
Tras finalizar esta sección, usted debe poder restringir los inicios de sesión directos como root y
deshabilitar la autenticación basada en contraseñas para el servicio OpenSSH.
La configuración predeterminada del servidor OpenSSH funciona bien. Sin embargo, es posible
que desee realizar algunos cambios para fortalecer la seguridad de su sistema. Es posible que
desee realizar dos cambios comunes. 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. Esto 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 como root e hizo cambios. Si los usuarios tienen que iniciar sesión como un usuario
regular y cambiar a la cuenta root, esto genera un evento de registro que se puede usar para
ayudar a proporcionar responsabilidad.
PermitRootLogin yes
Es necesario volver a cargar el servidor SSH (sshd) para que los cambios se efectúen.
RH124-RHEL8.2-es-1-20200928 347
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 contraseña en conjunción con ssh-agent, la
frase de contraseña se expone con menos frecuencia ya que se ingresa con menos frecuencia, y
el inicio de sesión es más conveniente para el usuario.
PasswordAuthentication yes
Tenga en cuenta que, para que los cambios se efectúen, es necesario volver a cargar el servicio
sshd siempre que cambie el archivo /etc/ssh/sshd_config.
Importante
Recuerde que si desactiva la autenticación basada en contraseña para ssh, necesita
tener una manera de asegurar que el archivo ~/.ssh/authorized_keys del
usuario en el servidor remoto se rellena con su clave pública, para que puedan iniciar
sesión.
Referencias
Páginas de manual ssh(1), sshd_config(5)
348 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Ejercicio Guiado
Resultados
Usted debe poder realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
3. Use el comando ssh-keygen para generar claves SSH. No introduzca ninguna frase de
contraseña para las claves.
RH124-RHEL8.2-es-1-20200928 349
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 a
operator2 en servera. Use redhat como la contraseña de operator2 en servera.
5. Confirme que pueda iniciar sesión correctamente en servera como operator2 por
medio de las claves SSH.
Tenga en cuenta que el comando ssh anterior usó claves SSH para la autenticación.
350 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
6. Confirme que pueda iniciar sesión correctamente en servera como root por medio de la
contraseña redhat.
6.1. Abra una sesión de SSH en servera como root por medio de la contraseña
redhat.
Tenga en cuenta que el comando ssh anterior usó la contraseña del superusuario
para la autenticación porque las claves SSH no existen para el superusuario.
7. Confirme que pueda iniciar sesión correctamente en servera como operator3 por
medio de la contraseña redhat.
7.1. Abra una sesión de SSH en servera como operator3 con la contraseña redhat.
Tenga en cuenta que el comando ssh anterior usó la contraseña de operator3 para
la autenticación porque las claves SSH no existen para operator3.
8. Configure sshd en servera para evitar que los usuarios inicien sesión como root. Use la
contraseña redhat para el superusuario cuando sea necesario.
8.1. Abra una sesión de SSH en servera como operator2 por medio de las claves SSH.
8.2. En servera, cambie a root. Use redhat como contraseña para el usuario root.
RH124-RHEL8.2-es-1-20200928 351
capítulo 10 | Configuración y seguridad de SSH
[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 serverb como
operator2. Desde serverb, intente iniciar sesión en servera como root. Esto
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 sshd en 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 servera.
Configure PasswordAuthentication con el valor no en /etc/ssh/
sshd_config y vuelva a cargar sshd. Puede usar vim /etc/ssh/sshd_config
para editar el archivo de configuración de sshd.
...output omitted...
PasswordAuthentication no
...output omitted...
[root@servera ~]# systemctl reload sshd
352 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
9.2. Diríjase al segundo terminal que tiene la shell del usuario operator2 activa en
serverb e intente iniciar sesión en servera como operator3. Esto debería fallar
porque las claves SSH no están configuradas para operator3, y el servicio sshd en
servera no permite el uso de contraseñas para la autenticación.
nota
Para mayor granularidad, puede usar las opciones -o
PubkeyAuthentication=no y -o PasswordAuthentication=yes explícitas
con el comando ssh. Esto le permite 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 /etc/ssh/sshd_config en el paso
anterior.
9.3. Regrese al primer terminal que tiene la shell del usuario root activa en servera.
Verifique que PubkeyAuthentication esté habilitado en /etc/ssh/
sshd_config. Puede usar vim /etc/ssh/sshd_config para visualizar el archivo
de configuración de sshd.
...output omitted...
#PubkeyAuthentication yes
...output omitted...
9.4. Vuelva al segundo terminal que tiene la shell del usuario operator2 activa en
serverb e intente iniciar sesión en servera como operator2. Debería obtener
un resultado satisfactorio porque las claves SSH están configuradas para que
operator2 pueda iniciar sesión en servera desde serverb.
9.5. Desde el segundo terminal, salga de la shell del usuario operator2 en servera y
serverb.
RH124-RHEL8.2-es-1-20200928 353
capítulo 10 | Configuración y seguridad de SSH
9.7. Desde el primer terminal, salga de la shell del usuario root en servera.
9.8. Desde el primer terminal, salga de la shell del usuario operator2 en servera y
serverb.
Finalizar
En workstation, ejecute lab ssh-customize finish para terminar este ejercicio.
354 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Trabajo de laboratorio
Resultados
Usted debe poder realizar lo siguiente:
• Evitar que los usuarios inicien sesión directamente como root en ssh.
• Evitar que los usuarios inicien sesión en el sistema mediante la autenticación basada en
contraseñas de SSH.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute lab ssh-review start para comenzar el ejercicio. Este script
crea las cuentas de usuario y los archivos necesarios.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. Use el comando su para cambiar a production1 en servera.
3. Use el comando ssh-keygen para generar claves SSH sin frase de contraseña para
production1 en servera.
4. Use el comando ssh-copy-id para enviar la clave pública del par de claves SSH a
production1 en serverb.
5. Confirme que pueda iniciar sesión correctamente como production1 en serverb por
medio de las claves SSH.
6. Configure sshd en serverb para evitar que los usuarios inicien sesión como root. Use la
contraseña redhat para el superusuario.
7. Configure sshd en 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
En workstation, ejecute el comando lab ssh-review grade para confirmar que ha
realizado correctamente este ejercicio.
RH124-RHEL8.2-es-1-20200928 355
capítulo 10 | Configuración y seguridad de SSH
Finalizar
En workstation, ejecute lab ssh-review finish para terminar este trabajo de laboratorio.
356 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
Solución
Resultados
Usted debe poder realizar lo siguiente:
• Evitar que los usuarios inicien sesión directamente como root en ssh.
• Evitar que los usuarios inicien sesión en el sistema mediante la autenticación basada en
contraseñas de SSH.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute lab ssh-review start para comenzar el ejercicio. Este script
crea las cuentas de usuario y los archivos necesarios.
1. Desde workstation, abra una sesión de SSH para servera como student.
3. Use el comando ssh-keygen para generar claves SSH sin frase de contraseña para
production1 en servera.
RH124-RHEL8.2-es-1-20200928 357
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 a
production1 en serverb.
5. Confirme que pueda iniciar sesión correctamente como production1 en serverb por
medio de las claves SSH.
6. Configure sshd en serverb para evitar que los usuarios inicien sesión como root. Use la
contraseña redhat para el superusuario.
[production1@serverb ~]$ su -
Password: redhat
[root@serverb ~]#
358 RH124-RHEL8.2-es-1-20200928
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 workstation y abra una sesión de SSH en servera como
production1. Desde servera, intente iniciar sesión en serverb como root. Esto
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 servera en el entorno del aula.
El comando ssh anterior fue rechazado después de tres intentos fallidos de iniciar
sesión en servera como root. De manera predeterminada, el comando ssh prefiere
usar claves SSH para la autenticación, pero si no encuentra las claves necesarias del
usuario, solicita la contraseña del usuario para la autenticación.
7. Configure sshd en 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 del usuario root activa en serverb.
Configure PasswordAuthentication con el valor no en /etc/ssh/sshd_config
y vuelva a cargar sshd. Puede usar vim /etc/ssh/sshd_config para editar el
archivo de configuración de sshd.
...output omitted...
PasswordAuthentication no
...output omitted...
[root@serverb ~]# systemctl reload sshd
7.2. Diríjase al segundo terminal que tiene la shell del usuario production1 activa en
servera e intente iniciar sesión en serverb como production2. Esto debería fallar
porque las claves SSH no están configuradas para production2, y el servicio sshd en
serverb no permite el uso de contraseñas para la autenticación.
RH124-RHEL8.2-es-1-20200928 359
capítulo 10 | Configuración y seguridad de SSH
nota
Para mayor granularidad, puede usar las opciones -o
PubkeyAuthentication=no y -o PasswordAuthentication=yes explícitas
con el comando ssh. Esto le permite anular los valores predeterminados del
comando ssh y comprobar con seguridad si el comando anterior realmente falla en
función de la configuración que estableció en /etc/ssh/sshd_config en el paso
anterior.
7.3. Regrese al primer terminal que tiene la shell del usuario root activa en serverb.
Verifique que PubkeyAuthentication esté habilitado en /etc/ssh/
sshd_config. Puede usar vim /etc/ssh/sshd_config para visualizar el archivo
de configuración de sshd.
...output omitted...
#PubkeyAuthentication yes
...output omitted...
7.4. Regrese al segundo terminal que tiene la shell del usuario production1 activa
en servera e intente iniciar sesión en serverb como production1. Debería
obtener un resultado satisfactorio porque las claves SSH están configuradas para que
production1 pueda iniciar sesión en serverb desde servera.
7.5. Desde el segundo terminal, salga de la shell del usuario production1 en serverb y
servera.
7.7. Desde el primer terminal, salga de la shell del usuario root en serverb.
360 RH124-RHEL8.2-es-1-20200928
capítulo 10 | Configuración y seguridad de SSH
7.8. Desde el primer terminal, salga de la shell del usuario production1 en serverb y
servera.
Evaluación
En workstation, ejecute el comando lab ssh-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab ssh-review finish para terminar este trabajo de laboratorio.
RH124-RHEL8.2-es-1-20200928 361
capítulo 10 | Configuración y seguridad de SSH
Resumen
En este capítulo, aprendió lo siguiente:
• El comando ssh permite a los usuarios el acceso seguro a los sistemas remotos por medio del
protocolo SSH.
• 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.
362 RH124-RHEL8.2-es-1-20200928
capítulo 11
Análisis y almacenamiento de
registros
Meta Ubicar e interpretar correctamente registros
de eventos del sistema para la resolución de
problemas.
RH124-RHEL8.2-es-1-20200928 363
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted debe poder describir la arquitectura de registro básica que
emplea Red Hat Enterprise Linux para registrar eventos.
Red Hat Enterprise Linux incluye un sistema de registro estándar que se basa en el protocolo
Syslog. Muchos programas usan este sistema para registrar eventos y organizarlos en archivos de
registro. Los servicios systemd-journald y rsyslog se encargan de gestionar los mensajes de
syslog en Red Hat Enterprise Linux 8.
Sin embargo, el servicio rsyslog lee los mensajes de syslog recibidos por systemd-journald
desde el diario a medida que llegan. Luego procesa los eventos del registro del sistema, los
registra en sus archivos de registro o los reenvía a otros servicios de acuerdo con su propia
configuración.
El servicio rsyslog ordena y escribe mensajes de syslog en los archivos de registro que no
persisten en los reinicios en /var/log. El servicio rsyslog clasifica los mensajes de registro en
archivos de registro específicos según el tipo de programa que envió cada mensaje, o instalación, y
la prioridad de cada mensaje de syslog.
364 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
Algunas aplicaciones no usan syslog para administrar sus mensajes de registro,
aunque, por lo general, colocan sus archivos de registro en un subdirectorio de /
var/log. Por ejemplo, el servidor web Apache guarda los mensajes de registro en
archivos en un subdirectorio del directorio /var/log.
Referencias
Páginas de manual systemd-journald.service(8), rsyslogd(8) y
rsyslog.conf(5)
RH124-RHEL8.2-es-1-20200928 365
capítulo 11 | Análisis y almacenamiento de registros
Cuestionario
1. ¿Qué archivo de registro almacena la mayoría de los mensajes de syslog, excepto los
relacionados con la autenticación, el correo, los trabajos programados y la depuración?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
2. ¿Qué archivo de registro almacena los mensajes de syslog relacionados con las
operaciones de seguridad y autenticación en el sistema?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
4. ¿Qué directorio contiene los archivos de syslog que pueden leer las personas?
a. /sys/kernel/debug
b. /var/log/journal
c. /run/log/journal
d. /var/log
366 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
7. ¿Qué archivo almacena mensajes de la consola relacionados con el inicio del sistema?
a. /var/log/messages
b. /var/log/cron
c. /var/log/boot.log
d. /var/log/secure
RH124-RHEL8.2-es-1-20200928 367
capítulo 11 | Análisis y almacenamiento de registros
Solución
1. ¿Qué archivo de registro almacena la mayoría de los mensajes de syslog, excepto los
relacionados con la autenticación, el correo, los trabajos programados y la depuración?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
2. ¿Qué archivo de registro almacena los mensajes de syslog relacionados con las
operaciones de seguridad y autenticación en el sistema?
a. /var/log/maillog
b. /var/log/boot.log
c. /var/log/messages
d. /var/log/secure
4. ¿Qué directorio contiene los archivos de syslog que pueden leer las personas?
a. /sys/kernel/debug
b. /var/log/journal
c. /run/log/journal
d. /var/log
368 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
7. ¿Qué archivo almacena mensajes de la consola relacionados con el inicio del sistema?
a. /var/log/messages
b. /var/log/cron
c. /var/log/boot.log
d. /var/log/secure
RH124-RHEL8.2-es-1-20200928 369
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, deberá poder interpretar los eventos en los archivos syslog relevantes
para solucionar problemas o revisar el estado del sistema.
En la siguiente tabla, se enumeran las ocho prioridades estándares de syslog, de mayor a menor.
El servicio rsyslog usa el tipo (facility) y la prioridad de los mensajes de registro para determinar
cómo resolverlos. Esto está configurado por reglas en el archivo /etc/rsyslog.conf y
cualquier archivo en el directorio /etc/rsyslog.d que tiene una extensión de nombre de
archivo de .conf. Los paquetes de software pueden agregar reglas fácilmente instalando un
archivo apropiado en el directorio /etc/rsyslog.d.
Cada regla que controla cómo ordenar los mensajes de syslog es una línea en uno de los archivos
de configuración. En el lado izquierdo de cada línea, se indican el tipo (facility) y la gravedad del
mensaje de syslog que se corresponde con la regla. En el lado derecho de cada línea, se indica
en qué archivo se debe guardar el mensaje de registro (o a donde más enviar el mensaje). Un
asterisco (*) es un comodín que coincide con todos los valores.
Por ejemplo, la siguiente línea registraría los mensajes enviados al facility authpriv en cualquier
prioridad para el archivo /var/log/secure:
370 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
authpriv.* /var/log/secure
Los mensajes de registro a veces coinciden con más de una regla en rsyslog.conf. En tales
casos, un mensaje se almacena en más de un archivo de registro. Para limitar los mensajes
almacenados, la palabra clave none en el campo de prioridad señala que no se deben almacenar
mensajes para el tipo (facility) indicado en el archivo dado.
nota
El subsistema de syslog tiene muchas más características que no se incluyen
en este curso. Si desea explorar más a fondo, consulte la página del manual
rsyslog.conf(5) y toda la documentación HTML en /usr/share/doc/
rsyslog/html/index.html contenida en el paquete rsyslog-doc, disponible del
repositorio de AppStream en Red Hat Enterprise Linux 8.
RH124-RHEL8.2-es-1-20200928 371
capítulo 11 | Análisis y almacenamiento de registros
Monitoreo de registros
Para reproducir problemas e inconvenientes, es útil monitorear uno o más archivos de registro para
eventos. El comando tail -f /path/to/file proporciona las últimas 10 líneas del archivo
especificado y continúa ofreciendo líneas nuevas en el archivo a medida que se escriben.
Por ejemplo, para monitorear los intentos fallidos de inicio de sesión, ejecute el comando tail en
un terminal y, luego, en otro terminal, ejecute el comando ssh como el usuario root mientras un
usuario intenta iniciar sesión en el sistema.
372 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
...output omitted...
Feb 10 09:01:13 host sshd[2712]: Accepted password for root from 172.25.254.254
port 56801 ssh2
Feb 10 09:01:13 host sshd[2712]: pam_unix(sshd:session): session opened for user
root by (uid=0)
Para enviar un mensaje al servicio rsyslog que se graba en el archivo de registro /var/log/
boot.log, ejecute el siguiente comando logger:
Referencias
Páginas de manual logger(1), tail(1), rsyslog.conf(5) y logrotate(8)
Manual de rsyslog
RH124-RHEL8.2-es-1-20200928 373
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Debe poder configurar el servicio rsyslog para escribir todos los mensajes de registro con
la prioridad debug en el archivo de registro /var/log/messages-debug.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. Configure rsyslog en servera para registrar todos los mensajes con la prioridad debug,
o una prioridad más elevada, para cualquier servicio en un archivo de registro /var/log/
messages-debug nuevo mediante el agregado del archivo configuración rsyslog /etc/
rsyslog.d/debug.conf.
2.1. Use el comando sudo -i para cambiar al usuario root. Especifique la contraseña
student para el usuario student si se le solicita cuando ejecute el comando sudo
-i.
*.debug /var/log/messages-debug
Esta línea de configuración captura los mensajes de syslog con cualquier facility y
un nivel debug o de prioridad superior. El servicio rsyslog escribirá esos mensajes
374 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
3. Verifique que todos los mensajes de registro con prioridad debug aparezcan en el archivo /
var/log/messages-debug.
3.1. Use el comando logger con la opción -p para generar un mensaje de registro con
facility user y prioridad debug.
3.2. Use el comando tail para ver los últimos diez mensajes de registro del archivo /
var/log/messages-debug y confirmar que visualiza el mensaje Debug Message
Test (Prueba de mensaje de depuración) entre los otros mensajes de registro.
3.3. Salga de las shells de los usuarios root y student en servera para volver a la shell
del usuario student en workstation.
Finalizar
En workstation, ejecute lab log-configure finish para terminar este ejercicio. Este
script garantiza que el entorno se restaure a un estado limpio.
RH124-RHEL8.2-es-1-20200928 375
capítulo 11 | Análisis y almacenamiento de registros
376 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, deberá poder encontrar e interpretar las entradas en el diario (journal)
del sistema para solucionar problemas o revisar el estado del sistema.
Importante
En Red Hat Enterprise Linux 8, el directorio /run/log almacena el diario del
sistema de forma predeterminada. El contenido del directorio /run/log se borra
después de un reinicio. Puede cambiar esta configuración, y cómo hacerlo se explica
más adelante en este capítulo.
Para recuperar mensajes de registro del diario, use el comando journalctl. Puede usar este
comando para ver todos los mensajes en el diario o para buscar eventos específicos basados
en una amplia gama de opciones y criterios. Si ejecuta el comando como root, tiene acceso
completo al diario. Los usuarios normales también pueden usar este comando, pero se les puede
restringir la visualización de ciertos mensajes.
RH124-RHEL8.2-es-1-20200928 377
capítulo 11 | Análisis y almacenamiento de registros
El comando journalctl destaca los mensajes de registro importantes: los mensajes con
prioridad notice o warning se muestran en negrita, y los mensajes con prioridad error o una
prioridad mayor se muestran en rojo.
La clave para usar en forma correcta el diario (journal) para la solución de problemas y auditorías
es limitar las búsquedas en el diario (journal) para mostrar solo la salida relevante.
Al igual que el comando tail -f, el comando journalctl -f ofrece las últimas 10 líneas
del diario (journal) del sistema y continúa proporcionando entradas del diario (journal) nuevas
a medida que se escriben en el diario (journal). Para salir del proceso journalctl -f, use la
combinación de teclas Ctrl+C.
378 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Para solucionar problemas, se recomienda filtrar el resultado del diario (journal) en función de la
prioridad de las entradas del diario (journal). El journalctl -p usa el nombre o el número de un
nivel de prioridad y muestra las entradas del diario (journal) del nivel dado o del nivel superior. El
comando journalctl comprende los niveles de prioridad debug, info, notice, warning, err,
crit, alert y emerg.
Ejecute el siguiente comando journalctl para enumerar las entradas del diario (journal) con
prioridad err o prioridad superior:
Ejecute el siguiente comando journalctl para enumerar todas las entradas del diario (journal)
de los registros de hoy.
RH124-RHEL8.2-es-1-20200928 379
capítulo 11 | Análisis y almacenamiento de registros
Ejecute el siguiente comando journalctl para enumerar todas las entradas del diario (journal)
que van del 10-2-2019 20:30:00 al 13-2-2019 12:00:00.
También puede especificar todas las entradas desde un tiempo relativo al presente. Por ejemplo,
para especificar todas las entradas en la última hora, puede usar el siguiente comando:
nota
Puede utilizar otras especificaciones de tiempo más sofisticadas con las
opciones --since y --until. Para algunos ejemplos, vea la página del manual
systemd.time(7)
Además del contenido visible del diario (journal), existen campos adjuntos a las entradas del
registro que solo pueden verse cuando se activa el resultado de explicación extensa. Para filtrar
el resultado de una consulta del diario (journal), puede usarse cualquier campo adicional que
se muestra. Esto es útil para restringir el resultado de búsquedas complejas para determinados
eventos del diario (journal).
380 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
SYSLOG_FACILITY=3
SYSLOG_IDENTIFIER=systemd
_UID=0
_GID=0
CODE_FILE=../src/core/job.c
CODE_LINE=826
CODE_FUNC=job_log_status_message
JOB_TYPE=start
JOB_RESULT=done
MESSAGE_ID=39f53479d3a045ac8e11786248231fbf
_TRANSPORT=journal
_PID=1
_COMM=systemd
_EXE=/usr/lib/systemd/systemd
_CMDLINE=/usr/lib/systemd/systemd --switched-root --system --deserialize 18
_CAP_EFFECTIVE=3fffffffff
_SELINUX_CONTEXT=system_u:system_r:init_t:s0
_SYSTEMD_CGROUP=/init.scope
_SYSTEMD_UNIT=init.scope
_SYSTEMD_SLICE=-.slice
UNIT=dnf-makecache.service
MESSAGE=Started dnf makecache.
_HOSTNAME=host.lab.example.com
INVOCATION_ID=d6f90184663f4309835a3e8ab647cb0e
_SOURCE_REALTIME_TIMESTAMP=1550748674509128
lines 32239-32275/32275 (END) q
En la siguiente lista, se proporcionan los campos comunes del diario (journal) del sistema que se
pueden usar para buscar líneas relevantes para un proceso o evento en particular.
Es posible combinar más de un campo del diario (journal) del sistema para realizar una búsqueda
detallada con el comando journalctl. Por ejemplo, el siguiente comando journalctl muestra
todas las entradas del diario (journal) relacionadas con la unidad sshd.service systemd de un
proceso con la PID 1182.
nota
Para obtener una lista de los campos más usados del diario (journal), consulte la
página del manual systemd.journal-fields(7).
RH124-RHEL8.2-es-1-20200928 381
capítulo 11 | Análisis y almacenamiento de registros
Referencias
Páginas del manual journalctl(1), systemd.journal-fields(7) y
systemd.time(7)
382 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Deberá ser capaz de buscar en el diario (journal) del sistema las entradas que registran
eventos en función de diferentes criterios.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
En workstation, ejecute lab log-query start para comenzar el ejercicio. Este script
asegura que el entorno esté configurado correctamente.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. Use la coincidencia _PID=1 con el comando journalctl para mostrar solo los eventos
de registro que se originan del proceso systemd que se ejecuta con el identificador de
proceso 1 en servera. Para salir de journalctl, presione q.
nota
El comando journalctl puede producir un resultado diferente en su sistema.
RH124-RHEL8.2-es-1-20200928 383
capítulo 11 | Análisis y almacenamiento de registros
3. Use la coincidencia _UID=81 con el comando journalctl para visualizar todos los
eventos de registro que se originan de un servicio del sistema que se inició con el
identificador de usuario 81 en servera. Para salir de journalctl, presione q.
5. Muestre todos los eventos de registro registrados en los últimos 10 minutos a partir de la
hora actual en servera.
5.1. Use la opción --since con el comando journalctl para visualizar todos los
eventos de registro registrados en los últimos 10 minutos en servera. Para salir de
journalctl, presione q.
384 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
Es posible que esté o no ubicado en la misma zona horaria que el aula. Verifique la
hora en servera y ajuste el valor de --since según corresponda, si es necesario.
RH124-RHEL8.2-es-1-20200928 385
capítulo 11 | Análisis y almacenamiento de registros
Finalizar
En workstation, ejecute lab log-query finish para terminar este ejercicio. Este script
garantiza que el entorno se restaure a un estado limpio.
386 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de configurar el diario (journal) del sistema para
resguardar el registro de eventos cuando se reinicia un servidor.
Puesto que el sistema de archivos /run es temporal y solo existe en la memoria de tiempo de
ejecución, los datos almacenados en él, incluidos los diarios (journals) del sistema, se borran en
el reinicio.
• none: no usa ningún almacenamiento. Se descartan todos los registros, pero el reenvío de
registros aún funcionará como se espera.
La ventaja de los diarios (journals) del sistema almacenados de forma persistente es que los
datos históricos están disponibles de inmediato en el inicio. Sin embargo, incluso cuando el diario
(journal) se almacene de forma persistente, no todos los datos se conservan para siempre. El
diario (journal) tiene un mecanismo de rotación de registro incorporado que se desencadena
mensualmente. Además, de manera predeterminada, los diarios (journals) no pueden tener más
del 10 % del sistema de archivos en el que están ubicados ni dejar menos del 15 % del sistema
de archivos libre. Estos valores se pueden ajustar tanto para el tiempo de ejecución como para
los diarios (journals) persistentes en /etc/systemd/journald.conf. Los límites actuales en
cuanto al tamaño del diario (journal) se registran cuando inicia el proceso systemd-journald.
En el siguiente resultado de comando, se muestran las entradas del diario (journal) que reflejan los
límites de tamaño actuales:
RH124-RHEL8.2-es-1-20200928 387
capítulo 11 | Análisis y almacenamiento de registros
nota
En el grep anterior, el símbolo de barra vertical (|) actúa como operador de o.
Es decir, grep coincide con cualquier línea que contenga la cadena Runtime o la
cadena System journal del resultado journalctl. Esto captura los límites de
tamaño actuales en el almacenamiento volátil del diario (journal) (Runtime), así
como en el almacenamiento persistente del diario (journal) (System).
[Journal]
Storage=persistent
...output omitted...
Mientras los diarios (journals) del sistema persisten en el reinicio, se obtiene una gran cantidad
de entradas en el resultado del comando journalctl que incluyen entradas del inicio actual
del sistema así como de los inicios anteriores. Para limitar el resultado a un inicio específico del
388 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
El siguiente comando journalctl recupera las entradas limitadas al segundo inicio del sistema.
El siguiente argumento es significativo solo si el sistema se ha reiniciado al menos dos veces:
El siguiente comando journalctl recupera las entradas limitadas al inicio actual del sistema:
nota
Cuando se depura el bloqueo de un sistema con un diario (journal) persistente,
generalmente es necesario limitar la cola del diario (journal) al reinicio anterior al
bloqueo. La opción -b puede estar acompañada por un número negativo que indica
la cantidad de arranques anteriores del sistema que debe incluir el resultado. Por
ejemplo, journalctl -b -1 limita el resultado solo al inicio anterior.
Referencias
Páginas de manual systemd-journald.conf(5), systemd-journald(8)
RH124-RHEL8.2-es-1-20200928 389
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar el diario (journal) del sistema para preservar sus datos
después de un reinicio.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
390 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
...output omitted...
[Journal]
Storage=persistent
...output omitted...
Tenga en cuenta que la conexión SSH finalizó apenas se reinició el sistema servera.
Finalizar
En workstation, ejecute lab log-preserve finish para terminar este ejercicio. Este script
garantiza que el entorno se restaure a un estado limpio.
RH124-RHEL8.2-es-1-20200928 391
capítulo 11 | Análisis y almacenamiento de registros
392 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de mantener una sincronización de hora precisa
por medio de NTP y configurar la zona horaria para garantizar marcas de tiempo correctas para los
eventos registrados por el diario (journal) y los registros del sistema.
El comando timedatectl muestra una descripción general de los parámetros actuales del
sistema relacionados con la hora, que incluyen la hora actual, la zona horaria y los parámetros de
sincronización de NTP del sistema.
Está disponible una base de datos con las zonas horarias, y puede enumerarse con el comando
timedatectl list-timezones.
Los nombres de las zonas horarias se basan en la base de datos de zonas horarias públicas que
están a cargo de la Autoridad para la Asignación de Números de Internet (IANA). Las zonas
horarias se nombran según el continente u océano; luego, por lo general, pero no siempre, la
ciudad más grande dentro de la región de la zona horaria. Por ejemplo, la mayoría de la zona
horaria de montaña de los EE. UU. se denomina América/Denver.
RH124-RHEL8.2-es-1-20200928 393
capítulo 11 | Análisis y almacenamiento de registros
La elección del nombre correcto puede ser no intuitiva en casos donde las localidades dentro de
una zona horaria tienen normas horarias de aprovechamiento de la luz solar. Por ejemplo, en los
EE. UU., gran parte del estado de Arizona (hora de la zona montañosa de los EE. UU.) no modifica
la hora para aprovechar la luz solar y su huso horario es el de América/Phoenix.
El comando tzselect es práctico para identificar los nombres de la zona horaria zoneinfo
correcta. De manera interactiva, se le formulan preguntas al usuario sobre la ubicación del sistema
y se proporciona el nombre de la zona horaria correcta. No implementa ningún cambio en la
configuración de la zona horaria del sistema.
El superusuario puede cambiar la configuración del sistema para actualizar la zona horaria actual
mediante el comando timedatectl set-timezone. El siguiente comando timedatectl
actualiza la zona horaria actual a America/Phoenix.
nota
En caso de que necesite usar el horario universal coordinado (UTC) en un servidor
en particular, establezca su zona horaria en UTC. El comando tzselect no incluye
el nombre de la zona horaria UTC. Use el comando timedatectl set-timezone
UTC para configurar la zona horaria actual del sistema en UTC.
Use el comando timedatectl set-time para cambiar la hora actual del sistema. La hora se
especifica con el formato "DD-MM-AAAA hh:mm:ss", donde se puede omitir la fecha o la hora. El
siguiente comando timedatectl cambia la hora a 09:00:00.
394 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
nota
En Red Hat Enterprise Linux 8, el comando timedatectl set-ntp se ajustará
independientemente de si el servicio chronyd NTP esté en funcionamiento. Otras
distribuciones de Linux pueden usar esta configuración para ajustar un servicio NTP
o SNTP diferente.
Habilitar o deshabilitar NTP usando otras utilidades en Red Hat Enterprise Linux,
como la aplicación gráfica GNOME Settings, también actualiza esta configuración.
De manera predeterminada, el servicio chronyd usa servidores de NTP Pool Project para la
sincronización de la hora y no necesita otra configuración. Puede ser útil cambiar los servidores
NTP cuando la máquina en cuestión esté en una red aislada.
Existen dos categorías de fuentes de hora, server y peer, que puede declarar en el archivo de
configuración /etc/chrony.conf. La categoría server se encuentra un estrato más arriba que
el servidor NTP local, y la categoría peer está en el mismo estrato. Puede especificarse más de un
server y más de un peer, uno por línea.
El primer argumento de la línea server es la dirección IP o el nombre de DNS del servidor NTP.
A continuación del nombre o de la dirección IP del servidor, puede especificarse una serie de
opciones para el servidor. Se recomienda usar la opción iburst porque, una vez que se inicie el
servicio, se realizarán cuatro mediciones en un período breve a fin de lograr una sincronización del
reloj inicial más precisa.
El comando chronyc actúa como cliente para el servicio chronyd. Después de configurar la
sincronización de NTP, debe verificar que el sistema local esté usando sin problemas el servidor
RH124-RHEL8.2-es-1-20200928 395
capítulo 11 | Análisis y almacenamiento de registros
NTP para sincronizar el reloj del sistema por medio del comando chronyc sources. Para
obtener un resultado más extenso con explicaciones adicionales, use el comando chronyc
sources -v.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| / xxxx = adjusted offset,
|| Log2(Polling interval) -. | yyyy = measured offset,
|| \ | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 8 6 17 23 -497ns[-7000ns] +/- 956us
Referencias
Páginas de manual timedatectl(1), tzselect(8), chronyd(8),
chrony.conf(5) y chronyc(1)
396 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar el servidor para sincronizar su hora con una fuente de hora de NTP.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Desde workstation, abra una sesión de SSH para servera como student.
2. A los fines de la actividad, suponga que el sistema servera se reubica en Haití y, por lo
tanto, usted debe actualizar la zona horaria según corresponda. Use sudo para elevar
los privilegios del usuario student mientras ejecuta el comando timedatectl para
actualizar la zona horaria. Use la contraseña student si se le solicita una.
2.1. Use el comando tzselect para determinar la zona horaria adecuada para Haití.
RH124-RHEL8.2-es-1-20200928 397
capítulo 11 | Análisis y almacenamiento de registros
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 2
Please select a country whose clocks agree with yours.
1) Anguilla 19) Dominican Republic 37) Peru
2) Antigua & Barbuda 20) Ecuador 38) Puerto Rico
3) Argentina 21) El Salvador 39) St Barthelemy
4) Aruba 22) French Guiana 40) St Kitts & Nevis
5) Bahamas 23) Greenland 41) St Lucia
6) Barbados 24) Grenada 42) St Maarten (Dutch)
7) Belize 25) Guadeloupe 43) St Martin (French)
8) Bolivia 26) Guatemala 44) St Pierre & Miquelon
9) Brazil 27) Guyana 45) St Vincent
10) Canada 28) Haiti 46) Suriname
11) Caribbean NL 29) Honduras 47) Trinidad & Tobago
12) Cayman Islands 30) Jamaica 48) Turks & Caicos Is
13) Chile 31) Martinique 49) United States
14) Colombia 32) Mexico 50) Uruguay
15) Costa Rica 33) Montserrat 51) Venezuela
16) Cuba 34) Nicaragua 52) Virgin Islands (UK)
17) Curaçao 35) Panama 53) Virgin Islands (US)
18) Dominica 36) Paraguay
#? 28
The following information has been given:
Haiti
You can make this change permanent for yourself by appending the line
TZ='America/Port-au-Prince'; export TZ
to the file '.profile' in your home directory; then log out and log in again.
Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Port-au-Prince
398 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
2.3. Use el comando timedatectl para verificar que la zona horaria se haya actualizado
a America/Port-au-Prince.
3. Configure el servicio chronyd en servera para sincronizar la hora del sistema con la
fuente de hora de NTP classroom.example.com.
...output omitted...
server classroom.example.com iburst
...output omitted...
4. Verifique que los ajustes de hora en servera estén configurados actualmente para
sincronizarse con la fuente de hora de classroom.example.com en el entorno del aula.
4.1. Use el comando timedatectl para verificar que servera tenga actualmente
habilitada la sincronización horaria.
RH124-RHEL8.2-es-1-20200928 399
capítulo 11 | Análisis y almacenamiento de registros
nota
Si en el resultado anterior se muestra que el reloj no está sincronizado, espere dos
segundos y vuelva a ejecutar el comando timedatectl. La sincronización correcta
de los ajustes de hora con la fuente de hora tarda unos segundos.
4.2. Use el comando chronyc para verificar que el sistema servera esté
sincronizando actualmente sus ajustes de hora con la fuente de hora de
classroom.example.com.
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* classroom.example.com 2 6 377 62 +105us[ +143us] +/- 14ms
Finalizar
En workstation, ejecute lab log-maintain finish para terminar este ejercicio. Este script
garantiza que la zona horaria original se restaure junto con todos los ajustes de hora originales en
servera.
400 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar un nuevo archivo de registro para almacenar todos los mensajes relacionados
con fallas de autenticación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el comando lab log-review grade para confirmar que ha
realizado correctamente este ejercicio.
RH124-RHEL8.2-es-1-20200928 401
capítulo 11 | Análisis y almacenamiento de registros
Finalizar
En workstation, ejecute lab log-review finish para terminar este trabajo de laboratorio.
Este script garantiza que la zona horaria original se restaure junto con todos los ajustes de hora
originales en serverb.
402 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Configurar un nuevo archivo de registro para almacenar todos los mensajes relacionados
con fallas de autenticación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
2. Suponga que el sistema serverb se ha reubicado en Jamaica y, por lo tanto, usted debe
actualizar la zona horaria según corresponda. Use sudo para elevar los privilegios del usuario
student mientras ejecuta el comando timedatectl para actualizar la zona horaria. Use la
contraseña student si se le solicita una.
2.1. Use el comando timedatectl para ver las zonas horarias disponibles y determinar la
zona horaria adecuada para Jamaica.
2.2. Use el comando timedatectl para establecer la zona horaria del sistema serverb
de América/Jamaica.
RH124-RHEL8.2-es-1-20200928 403
capítulo 11 | Análisis y almacenamiento de registros
2.3. Use el comando timedatectl para verificar que la zona horaria se haya establecido
correctamente en América/Jamaica.
3. Visualice todos los eventos de registro registrados en los últimos 30 minutos en serverb.
3.1. Use el comando date para determinar el período para ver las entradas del diario
(journal).
3.2. Use el comando journalctl con las opciones --since y --until para visualizar
todos los eventos de registro registrados en los últimos 30 minutos en serverb. Para
salir de journalctl, presione q.
404 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
authpriv.alert /var/log/auth-errors
4.2. Reinicie el servicio rsyslog para que se apliquen los cambios en el archivo de
configuración.
4.3. Use el comando logger para escribir un nuevo mensaje de registro en el archivo /
var/log/auth-errors. Aplique la opción -p authpriv.alert para generar un
mensaje de registro relevante para los problemas de autenticación y seguridad.
Evaluación
En workstation, ejecute el comando lab log-review grade para confirmar que ha
realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab log-review finish para terminar este trabajo de laboratorio.
Este script garantiza que la zona horaria original se restaure junto con todos los ajustes de hora
originales en serverb.
RH124-RHEL8.2-es-1-20200928 405
capítulo 11 | Análisis y almacenamiento de registros
406 RH124-RHEL8.2-es-1-20200928
capítulo 11 | Análisis y almacenamiento de registros
Resumen
En este capítulo, aprendió lo siguiente:
• La rotación periódica de los archivos de registro evita que llenen el espacio del sistema de
archivos.
• El servicio chronyd ayuda a sincronizar los ajustes de hora con una fuente de hora.
RH124-RHEL8.2-es-1-20200928 407
408 RH124-RHEL8.2-es-1-20200928
capítulo 12
Administración de redes
Meta Configure las interfaces de red y la configuración
en servidores Red Hat Enterprise Linux.
RH124-RHEL8.2-es-1-20200928 409
capítulo 12 | Administración de redes
Objetivos
Tras completar esta sección, debería poder describir conceptos fundamentales de
direccionamiento y enrutamiento de redes para un servidor.
• 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 (inicio de sesión
remoto), HTTPS (web segura), NFS o CIFS (uso compartido de archivo) y SMTP (envío de
correo electrónico).
• Transporte
Los protocolos de transporte son TCP y UDP. 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 usan 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.
• Internet
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 usa 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 WLAN (802.11) inalámbrica. Cada
dispositivo físico tiene una dirección de hardware (MAC) que se usa para identificar el destino
de paquetes en el segmento de red local.
410 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Versiones anteriores de Red Hat Enterprise Linux usaba nombres como eth0, eth1 y eth2
para cada interfaz de red. El nombre eth0 fue el primer puerto de red detectado por el sistema
operativo, eth1, el segundo, y así sucesivamente. Sin embargo, a medida que se agregan y
eliminan dispositivos, el mecanismo que los detecta y los nombra puede cambiar el nombre que
recibe cada interfaz. Además, el estándar PCIe no garantiza el orden en el que se detectarán
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.
Las versiones más nuevas de Red Hat Enterprise Linux usan un sistema de asignación de nombre
diferente. En lugar de basarse en el orden de detección, los nombres de las interfaces de red se
asignan en función de la información del firmware, la topología del bus PCI y el tipo de dispositivo
de red.
El resto del nombre de la interfaz después del tipo se basará en la información proporcionada por
el firmware del servidor o determinada por la ubicación del dispositivo en la topología PCI.
RH124-RHEL8.2-es-1-20200928 411
capítulo 12 | Administración de redes
• sN indica que este dispositivo está en la ranura PCI hotplug N. Por lo tanto, ens3 es una tarjeta
Ethernet en la ranura PCI hotplug 3.
• pMsN indica que este es un dispositivo PCI en el bus M en la ranura N. Por lo tanto, wlp4s0
es una tarjeta WLAN en el bus PCI 4 en la ranura 0. Si la tarjeta es un dispositivo multifunción
(posible con una tarjeta Ethernet con varios puertos, o dispositivos que tengan Ethernet más
alguna otra funcionalidad), puede ver que se agrega fN al nombre del dispositivo. Por lo tanto,
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 denominación persistente significa que una vez que sepa cuál es el nombre de una interfaz
de red en el sistema, también sabrá que no cambiará más adelante. La compensación es que no
puede asumir que un sistema con una interfaz nombrará esa interfaz et0.
Redes IPv4
IPv4 es el protocolo de red principal usado en Internet hoy en día. Debe tener al menos una
comprensión básica de las redes IPv4 para administrar la comunicación de red para sus servidores.
Direcciones IPv4
Una dirección IPv4 es un número de 32 bits, normalmente 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: la parte de red y la parte de host. Todos los hosts en la misma subred, que pueden
comunicarse entre sí directamente sin un enrutador, cuentan con la misma parte de red; la parte
de red identifica la subred. Dos hosts en la misma subred no pueden tener la misma parte de host;
la parte del host identifica un host en particular en una subred.
En la Internet moderna, el tamaño de una subred IPv4 es variable. Para saber qué parte de una
dirección IPv4 es la parte de red y cuál es la parte de host, un administrador debe conocer la
máscara de red, que se asignó a la subred. La máscara de red indica cuántos bits de la dirección
IPv4 pertenecen a la subred. Cuantos más bits haya disponibles para la parte del host, más hosts
habrá en la subred.
La dirección más baja posible en una subred (la parte de host son todos ceros en binario), algunas
veces, se denomina dirección de red. La dirección más alta posible en una subred (la parte de
host son todos los unos en binario) se usa para los mensajes de difusión (broadcast) en IPv4 y se
denomina dirección de difusión (broadcast).
Las máscaras de red se expresan de dos formas. La sintaxis más antigua de la máscara de
red que usa 24 bits para la parte de red y lee 255.255.255.0. Una sintaxis más nueva,
denominada notación CIDR, especifica un prefijo de red de /24. Ambas formas transmiten la
misma información; a saber, cuántos bits principales en la dirección IP contribuyen a la dirección de
red.
Los siguientes ejemplos ilustran cómo se relacionan la dirección IP, el prefijo (máscara de red), la
parte de red y la parte del host.
412 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
RH124-RHEL8.2-es-1-20200928 413
capítulo 12 | Administración de redes
La dirección especial 127.0.0.1 siempre apunta al sistema local (“localhost”) y la red 127.0.0.0/8
pertenece al sistema local, para que pueda comunicarse con ella misma usando protocolos de red.
Enrutamiento IPv4
Ya sea que se use IPv4 o IPv6, el tráfico de red debe desplazarse desde un host a otro y de una
red a otra. Cada host tiene una tabla de enrutamiento, que le indica cómo enrutar el tráfico para
redes particulares. Una entrada de una tabla de enrutamiento enumera una red de destino, que se
conecta para usar al dirigir el tráfico, y la dirección IP de cualquier enrutador intermedio necesaria
para transmitir un mensaje a su destino final. La entrada de la tabla de enrutamiento que coincide
con el destino del tráfico de red se usa para enrutarla. Si dos entradas coinciden, se usa la que
tiene el prefijo más extenso.
Si el tráfico de la red no coincide con una ruta más específica, la tabla de enrutamiento
generalmente tiene una entrada para una ruta predeterminada para toda la Internet IPv4:
0.0.0.0/0. Esta ruta predeterminada apunta a un enrutador en una subred accesible (es decir, en
una subred que tiene una ruta más específica en la tabla de enrutamiento del host).
Si un enrutador recibe tráfico que no está dirigido a él, en lugar de ignorarlo como un host normal,
reenvía el tráfico sobre la base de su propia tabla de enrutamiento. Esto puede enviar el tráfico
directamente al host de destino (si el enrutador se encuentra en la subred de destino) o se lo
puede reenviar a otro enrutador. Este proceso de reenvío continúa hasta que el tráfico alcanza su
destino final.
414 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
192.0.2.0/24 wlo1
192.168.5.0/24 enp3s0
En este ejemplo, el tráfico que se mueve para la dirección IP 192.0.2.102 desde este host
se transmite directamente a ese destino a través de la interfaz inalámbrica wlo1 porque
su coincidencia más cercana es con la ruta 192.0.2.0/24. El tráfico de la dirección IP
192.168.5.3 se transmite directamente a ese destino a través de la interfaz Ethernet enp3s0
porque su coincidencia más cercana es con la ruta 192.168.5.0/24.
RH124-RHEL8.2-es-1-20200928 415
capítulo 12 | Administración de redes
Como alternativa, puede configurar un servidor para usar una configuración estática de la red.
En este caso, la configuración de red se lee desde los archivos de configuración locales. Debe
obtener la configuración correcta de su administrador de red y actualizarla manualmente según
sea necesario para evitar conflictos con otros servidores.
Redes IPv6
IPv6 pretende ser un reemplazo final del protocolo de red IPv4. Deberá comprender cómo
funciona, ya que cada vez más sistemas de producción usan direcciones IPv6. Por ejemplo,
muchos ISP ya usan IPv6 para redes de comunicación interna y de administración de dispositivos
para mantener las escasas direcciones IPv4 para los propósitos del cliente.
IPv6 también se puede usar en paralelo con IPv4 en un modelo de pila (stack) doble. En esta
configuración, una interfaz de red puede tener una dirección o direcciones IPv6 así como
direcciones IPv4. De forma predeterminada, Red Hat Enterprise Linux opera en un modo de pila
(stack) 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 que sea más sencillo escribir direcciones IPv6, no es necesario escribir los ceros a la izquierda
en los grupos separados 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 secuencias de ceros son habituales, uno o más grupos de
ceros consecutivos pueden combinarse con exactamente un ::bloque.
2001:db8:0:10::1
Note que según estas reglas, 2001:db8::0010:0:0:0:1 sería otra manera menos conveniente
de escribir la dirección del ejemplo. Pero es una representación válida de la misma dirección, y esto
puede confundir a los administradores nuevos en IPv6. Algunos consejos para escribir direcciones
que se puedan leer de manera consistente:
• Si una dirección contiene dos grupos de ceros consecutivos, de igual longitud, se prefiere
acortar los grupos de ceros situados más a la izquierda para :: y los grupos más a la derecha
para :0: para cada grupo.
• Aunque está permitido, no use :: para acortar un grupo de ceros. Use :0: en su lugar, y guarde
:: para grupos de ceros consecutivos.
416 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administració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 la misma ID de la interfaz: la 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, que se usa para casi todas las
direcciones normales, /64. En este caso, una mitad de la dirección es el prefijo de red y la otra
mitad es la ID de la interfaz. Esto significa que una sola subred puede contener tantos hosts como
sea necesario.
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) de ese prefijo asignado. Para una asignación /48, eso deja 16 bits para subredes (hasta 65
536 subredes).
RH124-RHEL8.2-es-1-20200928 417
capítulo 12 | Administració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 diferentes. Recuerde que las redes IPv6 asignadas desde los espacios de
monodifusión global y monodifusión local de vínculo tienen una máscara de subred
estándar /64.
418 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Una dirección local de vínculo en IPv6 es una dirección no enrutable que se usa solo para
comunicarse con hosts en un vínculo específico de red. Todas las interfaces de red del sistema
se configuran automáticamente con una dirección local de vínculo en la red fe80::/64. Para
asegurarse de que sea única, la ID de la interfaz de la dirección local de vínculo se crea a partir de
la dirección de hardware Ethernet de la interfaz de red. El procedimiento habitual para convertir la
dirección MAC de 48 bits en una ID de interfaz de 64 bits es invertir el bit 7 de la dirección MAC e
insertar ff:fe entre los dos bytes del medio.
Otros hosts en el mismo vínculo pueden usar las direcciones locales de vínculos de otras máquinas
como direcciones normales. Dado que todos los vínculos tienen una red fe80::/64, la tabla de
enrutamiento no se puede usar para seleccionar la interfaz de salida correctamente. El vínculo
que se debe usar al comunicarse con una dirección local de vínculo se debe especificar con un
identificador de ámbito al final de la dirección. El identificador de ámbito consiste en el símbolo de
% seguido por el nombre de la interfaz de red.
Por ejemplo, para usar ping6 para hacer ping a la dirección local de vínculo
fe80::211:22ff:feaa:bbcc con el vínculo conectado a la interfaz de red ens3, la sintaxis del
comando correcta es la siguiente:
nota
Los identificadores de ámbito solo se necesitan al comunicarse con direcciones que
tienen ámbito de “vínculo”. Las direcciones globales normales se usan al igual que
en IPv4, y seleccionan sus interfaces de salida de la tabla de enrutamiento.
La multidifusión (multicast) permite que un sistema envíe tráfico a una dirección IP especial que es
recibida por múltiples sistemas. Se diferencia de la difusión (broadcast), ya que solo los sistemas
específicos en la red reciben el tráfico. También difiere de la difusión (broadcast) en IPv4, ya que
parte del tráfico de multidifusión puede enrutarse a otras subredes, según la configuración de los
enrutadores y sistemas de su red.
La multidifusión (multicast) desempeña un rol más importante en IPv6 que en IPv4 ya que no hay
una dirección de difusión (broadcast) en IPv6. Una dirección clave de multidifusión (multicast)
en IPv6 es ff02::1, la dirección local de vínculo de todos los nodos. Al hacer ping a esta
dirección, el tráfico se envía a todos los nodos del vínculo. Las direcciones de multidifusión
(multicast) de ámbito de vínculo (que empiezan con ff02::/8) deben especificarse con un
identificador de ámbito, al igual que una dirección local de vínculo.
RH124-RHEL8.2-es-1-20200928 419
capítulo 12 | Administración de redes
Las ID de la interfaz para las direcciones IPv6 estáticas se pueden seleccionar a voluntad, al igual
que para IPv4. En IPv4, hay dos direcciones en una red que no se podían usar, la dirección inferior
y la dirección superior en la subred. En IPv6, las siguientes ID de la interfaz se reservan y no se
pueden usar para una dirección de red normal en un host.
DHCPv6 funciona de forma diferente que DHCP para IPv4, ya que no hay ninguna dirección de
difusión (broadcast). Básicamente, un host envía una solicitud de DHCPv6 desde su dirección
local de vínculo hasta el puerto 547/UDP en ff02::1:2, el grupo de multidifusión (multicast)
local de vínculo de todos los servidores DHCP. Luego, el servidor DHCPv6 envía una
respuesta con la información apropiada al puerto 546/UDP en la dirección local de vínculo del
cliente.
El paquete dhcp en Red Hat Enterprise Linux 8 proporciona soporte para un servidor DHCPv6.
El paquete radvd en Red Hat Enterprise Linux 8 permite que un enrutador IPv6 basado en Red Hat
Enterprise Linux genere SLAAC a través de anuncios de enrutador.
Importante
Una máquina Red Hat Enterprise Linux 8 típica configurada para obtener
direcciones IPv4 a través de DHCP también está, a menudo, configurada para
usar SLAAC para obtener direcciones IPv6. Esto puede hacer que las máquinas
obtengan, de manera inesperada, direcciones IPv6 al agregar un enrutador IPv6 a la
red.
420 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
números largas y difíciles de recordar. Y entonces, Linux tiene una serie de mecanismos para
asignar un nombre de host a una dirección IP, llamada conjuntamente resolución de nombres.
Una forma es establecer una entrada estática para cada nombre en el archivo /etc/hosts en
cada sistema. Esto requiere que actualice manualmente cada copia del archivo del servidor.
Para la mayoría de los hosts, puede buscar la dirección para un nombre de host (o un nombre
de host de una dirección) de un servicio de red llamado Sistema de Nombres de Dominio (DNS).
DNS es una red distribuida de servidores que proporciona asignaciones de nombres de host
a direcciones IP. Para que el servicio de nombres funcione, un host debe estar apuntado a un
servidor de nombres. Este servidor de nombres no debe estar en la misma subred, simplemente
necesita que el host tenga acceso a ella. Esto generalmente se configura a través de DHCP o una
configuración estática en un archivo llamado /etc/resolv.conf. Las siguientes secciones de
este capítulo explicarán cómo configurar la resolución de nombres.
Referencias
Páginas de manual services(5), ping(8), biosdevname(1) y udev(7)
RH124-RHEL8.2-es-1-20200928 421
capítulo 12 | Administració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
422 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
6. ¿Qué término permite 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 (multicast)
e. netaddr
f. red
RH124-RHEL8.2-es-1-20200928 423
capítulo 12 | Administració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
424 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
6. ¿Qué término permite 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 (multicast)
e. netaddr
f. red
RH124-RHEL8.2-es-1-20200928 425
capítulo 12 | Administración de redes
Objetivos
Tras finalizar esta sección, deberá poder probar y revisar la configuración de red actual con las
utilidades de la línea de comandos.
En el ejemplo anterior, el servidor tiene tres interfaces de red: lo, que es el dispositivo de bucle
invertido que está conectado al propio servidor, y dos interfaces Ethernet, ens3 y ens4.
Para configurar cada interfaz de red correctamente, necesita saber cuál está conectada a qué red.
En muchos casos, sabrá la dirección MAC de la interfaz conectada a cada red, ya sea porque está
impresa físicamente en la tarjeta o el servidor, o porque es una máquina virtual y usted sabe cómo
está configurada. La dirección MAC del dispositivo aparece después de link/ether para cada
interfaz. Así que ya sabes que la tarjeta de red con la dirección MAC 52:54:00:00:00:0a es la
interfaz de red ens3.
426 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
El comando ping6 es la versión de IPv6 de ping en Red Hat Enterprise Linux. Se comunica a
través de IPv6 y toma direcciones IPv6, pero de lo contrario funciona como ping.
RH124-RHEL8.2-es-1-20200928 427
capítulo 12 | Administración de redes
Cuando hace ping a las direcciones de vínculo local y al grupo multidifusión de todos los nodos
de vínculo local (ff02::1), la interfaz de red que se debe usar debe especificarse explícitamente
con un identificador de zona de alcance (como ff02::1%ens3). Si esto se deja afuera, se
muestra el error connect: Invalid argument.
Hacer ping a ff02::1 puede ser útil para buscar otros nodos IPv6 en la red local.
Recuerde que las direcciones de vínculo local de IPv6 pueden ser usadas por otros hosts en el
mismo vínculo, al igual que las direcciones normales.
Esto muestra la tabla de enrutamiento de IPv4. Todos los paquetes que estén destinados
para la red 10.0.0.0/8 se envían directamente al destino mediante la ens4 del dispositivo.
Todos los paquetes que estén destinados para la red 192.0.2.0/24 se envían directamente
al destino mediante la ens3 del dispositivo. Todos los demás paquetes se envían al enrutador
predeterminado que está ubicado en 192.0.2.254, y también mediante la ens3 del dispositivo.
428 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
En este ejemplo, ignore las rutas a las que no se puede acceder que apuntan a redes que no se
usan. Eso deja tres rutas:
1. La red 2001:db8:0:1::/64, que usa la interfaz ens3 (que supuestamente tiene una
dirección en esa red).
2. La red fe80::/64, que usa la interfaz ens3, para la dirección de vínculo local. En un sistema
con múltiples interfaces, hay una ruta a fe80::/64 cada interfaz para cada dirección de
vínculo local.
3. Una ruta predeterminada a todas las redes en Internet IPv6 (la red ::/0) que no tiene una
ruta más específica en el sistema, a través del enrutador en 2001:db8:0:1::ffff, al que se
puede acceder con el dispositivo ens3.
Cada línea de la salida de tracepath representa un router o hop por donde pasa el paquete
entre el origen y el destino final. Se proporciona información adicional como disponible, que
incluye la sincronización en ambos sentidos (RTT) y cualquier cambio en el tamaño de la unidad
de transmisión máxima (MTU). La indicación asymm significa que el tráfico llegó a ese enrutador y
RH124-RHEL8.2-es-1-20200928 429
capítulo 12 | Administración de redes
regresó de ese enrutador usando diferentes rutas (asimétricas). Los enrutadores que se muestran
son los que se usan para el tráfico saliente, no el tráfico de retorno.
El comando ss se usa para mostrar las estadísticas del socket. El comando ss tiene por objeto
reemplazar la herramienta anterior netstat, que es parte del paquete net-tools, que algunos
administradores de sistemas pueden conocer más, pero que no siempre está instalada.
El puerto usado para SSH escucha todas las direcciones IPv4. El “*” se usa para indicar
“todos” cuando se hace referencia a los puertos o las direcciones IPv4.
El puerto usado para SMTP escucha la interfaz de circuito de retorno de la IPv4 127.0.0.1.
La conexión SSH establecida está en la interfaz 172.25.250.10 y se origina de un sistema con
una dirección de 172.25.254.254.
El puerto usado para SSH está atento a todas las direcciones IPv6. Se usa la sintaxis “::” para
representar todas las interfaces de IPv6.
El puerto usado para SMTP presta atención a la interfaz de circuito de retorno de la IPv6 ::1.
Opción Descripción
430 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Opción Descripción
Referencias
Páginas de manual ip-link(8), ip-address(8), ip-route(8), ip(8), ping(8),
tracepath(8), traceroute(8), ss(8) y netstat(8)
RH124-RHEL8.2-es-1-20200928 431
capítulo 12 | Administración de redes
Ejercicio Guiado
Resultados
Identificar las interfaces de la red actual y las direcciones básicas de la red.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas están configurados para usar claves SSH para la autenticación y acceso sin
contraseña para servera.
2.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
432 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
RH124-RHEL8.2-es-1-20200928 433
capítulo 12 | Administración de redes
9. Salga de servera.
Finalizar
En workstation, ejecute el script lab net-validate finish para terminar este ejercicio.
434 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Objetivos
Tras finalizar esta sección, debería poder administrar dispositivos y configuraciones de red con el
comando nmcli.
• Solo puede haber una conexión activa para un dispositivo por vez. Pueden existir múltiples
conexiones para que las usen distintos dispositivos o para permitir que una configuración se
modifique para el mismo dispositivo. Si necesita cambiar temporalmente la configuración de
red, en lugar de cambiar la configuración de una conexión, puede cambiar la conexión que está
activa para un dispositivo. Por ejemplo, un dispositivo para una interfaz de red inalámbrica en
una laptop puede usar diferentes conexiones para la red inalámbrica en un sitio de trabajo y para
la red inalámbrica en el hogar.
• La utilidad nmcli se usa para crear y editar archivos de conexión desde la línea de comandos.
El comando nmcli con show muestra una lista de todas las conexiones. Para enumerar solo las
conexiones activas, agregue la opción --active.
RH124-RHEL8.2-es-1-20200928 435
capítulo 12 | Administración de redes
El siguiente comando agrega una conexión nueva llamada eno2 para la interfaz eno2, que obtiene
información de redes IPv4 mediante el uso de DHCP y que se conecta automáticamente en el
inicio. También obtiene configuraciones de red IPv6 al escuchar los anuncios del enrutador en el
vínculo local. El nombre del archivo de configuración se basa en el valor de la opción con-name,
eno2, y se guarda en el archivo /etc/sysconfig/network-scripts/ifcfg-eno2.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2
En el siguiente ejemplo, se crea la conexión eno2 para el dispositivo eno2 con una dirección
IPv4 estática, mediante el uso de la dirección IPv4 y el prefijo de red 192.168.0.5/24 y la
puerta de enlace predeterminada 192.168.0.254; sin embargo, sigue estableciendo la conexión
automática en el inicio y guarda su configuración en el mismo archivo. Debido a las limitaciones de
tamaño de la pantalla, termine la primera línea con un escape \ de shell y complete el comando en
la siguiente línea.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2 \
ipv4.address 192.168.0.5/24 ipv4.gateway 192.168.0.254
Este ejemplo final crea una conexión eno2 para el dispositivo eno2 con direcciones IPv4 estáticas,
mediante el uso de la dirección IPv6, el prefijo de red 2001:db8:0:1::c000:207/64, la puerta
de enlace predeterminada de IPv6 2001:db8:0:1::1, y la dirección IPv4, el prefijo de red
192.0.2.7/24 y la puerta de enlace predeterminada de IPv4 192.0.2.1, pero aún se conecta
de manera automática durante el inicio y almacena su configuración en /etc/sysconfig/
network-scripts/ifcfg-eno2. Debido a las limitaciones de tamaño de la pantalla, termine la
primera línea con un escape \ de shell y complete el comando en la siguiente línea.
[root@host ~]# nmcli con add con-name eno2 type ethernet ifname eno2 \
ipv6.address 2001:db8:0:1::c000:207/64 ipv6.gateway 2001:db8:0:1::1 \
ipv4.address 192.0.2.7/24 ipv4.gateway 192.0.2.1
436 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Importante
Use nmcli dev dis device para desactivar una interfaz de red.
Para enumerar los parámetros actuales de una conexión, ejecute el comando nmcli con
show name, donde name es el nombre de la conexión. Las configuraciones en minúsculas son
propiedades estáticas que el administrador puede cambiar. Las configuraciones en mayúscula son
configuraciones activas que se usan provisoriamente para esta instancia de la conexión.
RH124-RHEL8.2-es-1-20200928 437
capítulo 12 | Administración de redes
ipv4.method: manual
ipv4.dns: 192.168.0.254
ipv4.dns-search: example.com
ipv4.addresses: { ip = 192.168.0.2/24, gw =
192.168.0.254 }
ipv4.routes:
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
ipv6.method: manual
ipv6.dns: 2001:4860:4860::8888
ipv6.dns-search: example.com
ipv6.addresses: { ip = 2001:db8:0:1::7/64, gw =
2001:db8:0:1::1 }
ipv6.routes:
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-hostname: --
...output omitted...
El comando nmcli con mod name puede usarse para modificar la configuración de una
conexión. Las modificaciones que se realicen también se almacenan en el archivo /etc/
sysconfig/network-scripts/ifcfg-name para la conexión. Las configuraciones
disponibles se documentan en la página de manual nm-settings(5).
438 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Importante
Si una conexión que obtuvo la información de IPv4 de un servidor DHCPv4 se
modifica para obtenerla de archivos de configuración estática solamente, el
parámetro ipv4.method también debe modificarse de auto a manual.
Del mismo modo, si una conexión que obtuvo su información de IPv6 por SLAAC
o por un servidor DHCPv6 se está modificando para obtenerla solo de archivos de
configuración estática, el parámetro ipv6.method también debe modificarse de
auto o dhcp a manual.
Varias configuraciones pueden tener múltiples valores. Un valor específico puede agregarse a la
lista o eliminarse de la lista para una configuración mediante la adición de un símbolo + o - al inicio
del nombre de la configuración.
Sin embargo, los usuarios regulares que han iniciado sesión en la consola local también pueden
realizar muchos cambios de configuración de red en el sistema. Deben iniciar sesión en el teclado
del sistema para la consola virtual basada en texto o el entorno de escritorio gráfico para obtener
este control. La lógica detrás de esto es que si alguien está físicamente presente en la consola de
la computadora, es probable que se esté utilizando como una estación de trabajo o computadora
portátil y que deban configurar, activar y desactivar las interfaces de red inalámbricas o por cable
a voluntad. Por el contrario, si el sistema es un servidor en el centro de datos, generalmente los
únicos usuarios que inician sesión localmente en la máquina deben ser los administradores.
Los usuarios regulares que inician sesión usando ssh no tienen acceso para cambiar los permisos
de red sin convertirse en root.
Puedes usar el comando nmcli gen permissions para ver cuáles son sus permisos actuales.
Resumen de comandos
La siguiente tabla es una lista de los comandos nmcli clave abordados en esta sección.
Comando Propósito
RH124-RHEL8.2-es-1-20200928 439
capítulo 12 | Administración de redes
Comando Propósito
nmcli con add con-name name Agrega una conexión nueva con el nombre name.
Referencias
páginas de manual NetworkManager(8), nmcli(1), nmcli-examples(5), nm-
settings(5), hostnamectl(1), resolv.conf(5), hostname(5), ip(8) y ip-
address(8)
440 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Ejercicio Guiado
Resultados
Debería poder convertir un sistema de DHCP a configuración estática.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
nota
Si es solicitado por el comando sudo para la contraseña student, ingrese
student como contraseña.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
RH124-RHEL8.2-es-1-20200928 441
capítulo 12 | Administración de redes
442 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
GENERAL.DEVICES: enX
GENERAL.STATE: activated
GENERAL.DEFAULT: yes
GENERAL.DEFAULT6: no
GENERAL.SPEC-OBJECT: --
GENERAL.VPN: no
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
IP4.ADDRESS[1]: 172.25.250.10/24
IP4.GATEWAY: 172.25.250.254
IP4.ROUTE[1]: dst = 172.25.250.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 172.25.250.254, mt = 100
IP4.DNS[1]: 172.25.250.254
IP6.ADDRESS[1]: fe80::3059:5462:198:58b2/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
4. Cree una conexión estática con la misma dirección IPv4, prefijo de red y puerta de enlace
predeterminada. Asigne el nombre static-addr a la conexión nueva.
RH124-RHEL8.2-es-1-20200928 443
capítulo 12 | Administración de redes
Advertencia
Dado que el acceso al equipo se logra a través de la conexión de red principal,
configurar los valores incorrectos durante la configuración de red puede hacer que
su equipo no pueda encontrarse. Si esto sucede, use el botón Reset (Restablecer)
que está arriba de lo que antes era la pantalla gráfica del equipo e inténtelo de
nuevo.
[student@servera ~]$ sudo nmcli con add con-name "static-addr" ifname enX \
type ethernet ipv4.method manual \
ipv4.address 172.25.250.10/24 ipv4.gateway 172.25.250.254
Connection 'static-addr' (15aa3901-555d-40cb-94c6-cea6f9151634) successfully
added.
444 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
RH124-RHEL8.2-es-1-20200928 445
capítulo 12 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-configure finish para terminar este ejercicio.
446 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Objetivos
Tras finalizar esta sección, usted debería poder modificar los parámetros de configuración de red
mediante la edición de los archivos de configuración.
RH124-RHEL8.2-es-1-20200928 447
capítulo 12 | Administración de redes
448 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
IPADDR0=172.25.250.10 NAME="static-ens3"
PREFIX0=24 ONBOOT=yes
DEFROUTE=yes USERCTL=yes
DNS1=172.25.254.254
En estos parámetros de configuración estáticos, las variables para la dirección IP, el prefijo y la
puerta de enlace tienen un número al final. Esto permite que se asignen varios conjuntos de
valores a la interfaz. La variable DNS también tiene un número que se usa para especificar el
orden de la búsqueda cuando se especifican varios servidores.
Después de modificar los archivos de configuración, ejecute nmcli con reload para que
NetworkManager lea los cambios de configuración. La interfaz todavía necesita reiniciarse para
que se implementen los cambios.
RH124-RHEL8.2-es-1-20200928 449
capítulo 12 | Administración de redes
Referencias
Página de manual nmcli(1)
450 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Ejercicio Guiado
Resultados
Deberá ser capaz de agregar una dirección de red adicional a cada sistema.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
Importante
Los nombres de la interfaz de red están determinados por su tipo de bus y el orden
de detección de los dispositivos durante el arranque. Los nombres de la interfaz de
red variarán según la plataforma del curso y el hardware en uso.
RH124-RHEL8.2-es-1-20200928 451
capítulo 12 | Administración de redes
Si ha realizado ejercicios previos en este capítulo y esto fue cierto para su sistema, también
debería serlo para este ejercicio.
3.1. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
452 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
7.1. En workstation, use el comando ssh para iniciar sesión en serverb con el usuario
student.
7.2. Use el comando sudo -i para cambiar al usuario root. La contraseña del usuario
student es student.
RH124-RHEL8.2-es-1-20200928 453
capítulo 12 | Administración de redes
8.3. Desde workstation, utilice el comando ssh para acceder a servera como usuario
student para hacer ping a la nueva dirección de serverb.
454 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-edit finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 455
capítulo 12 | Administración de redes
Objetivos
Tras finalizar esta sección, deberá poder configurar el nombre de host estático del servidor y su
resolución de nombre y probar los resultados.
Importante
En Red Hat Enterprise Linux 7 y posterior, el nombre de host estático se almacena
en /etc/hostname. Red Hat Enterprise Linux 6 y anterior almacena el nombre de
host como variable en el archivo /etc/sysconfig/network.
456 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
172.25.254.254 classroom.example.com
172.25.254.254 content.example.com
El comando getent hosts hostname puede usarse para probar la resolución de nombre del
host con el archivo /etc/hosts.
• search: una lista de nombres de dominio para probar con un nombre del host corto. Tanto este
como el domain no deben configurarse en el mismo archivo; si esto ocurre, prevalece la última
instancia. Consulte resolv.conf(5) para obtener más detalles.
RH124-RHEL8.2-es-1-20200928 457
capítulo 12 | Administración de redes
nota
Las configuraciones DNS IPv4 e IPv6 estáticas terminan todas como directivas de
servidores de nombres en /etc/resolv.conf. Debe asegurarse de que hay,
como mínimo, un servidor de nombres accesible por IPv4 en la lista (suponiendo
un sistema de pila [stack] doble). Es mejor tener al menos un servidor de nombres
que use IPv4 y un segundo servidor de nombres que use IPv6 en caso de que tenga
problemas de red con su red IPv4 o IPv6.
Importante
DHCP reescribe automáticamente el archivo /etc/resolv.conf a medida que se
inician las interfaces, a menos que usted especifique PEERDNS=no en los archivos
de configuración de interfaz correspondientes. Configure esto con el comando
nmcli.
Referencias
Páginas de manual nmcli(1), hostnamectl(1), hosts(5), getent(1), host(1) y
resolv.conf(5)
458 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Ejercicio Guiado
Resultados
Deberá ser capaz de establecer un nombre de host personalizado y configurar los
parámetros de resolución de nombres.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
RH124-RHEL8.2-es-1-20200928 459
capítulo 12 | Administración de redes
3. Configure un nombre del host estático para que coincida con el nombre del host transitorio.
3.2. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
servera.lab.example.com
4.3. Visualice el contenido del archivo /etc/hostname que proporciona el nombre del
host al inicio de la red.
servera.lab.example.com
460 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
5.2. Modifique /etc/hosts para que el nombre adicional de class se puede utilizar
para acceder a la dirección IP 172.25.254.254.
RH124-RHEL8.2-es-1-20200928 461
capítulo 12 | Administración de redes
Finalizar
En workstation, ejecute el script lab net-hostnames finish para terminar este ejercicio.
462 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Trabajo de laboratorio
Administración de redes
Lista de verificación de rendimiento
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
Deberá ser capaz de configurar dos direcciones IPv4 estáticas para la interfaz de red
principal.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran para que usen claves SSH para la autenticación, por lo que no se necesita una
contraseña para iniciar sesión en serverb.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student como
la contraseña.
3. Cree una conexión de red estática nueva con los parámetros de configuración que figuran en
la tabla.
Parámetro Configuración
Dirección IP 172.25.250.11/24
4. Configure la conexión nueva para que se inicie en forma automática. Otras conexiones no
deberían iniciarse automáticamente.
5. Modifique la conexión nueva para que también use la dirección 10.0.1.1/24.
6. Configure el archivo hosts para que pueda hacerse referencia a 10.0.1.1 como privada.
7. Reinicie el sistema.
RH124-RHEL8.2-es-1-20200928 463
capítulo 12 | Administración de redes
8. Desde workstation use el comando ping para verificar que serverb se inició.
Evaluación
En workstation, ejecute el script lab net-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab net-review finish para finalizar este trabajo de
laboratorio.
464 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Solución
Administración de redes
Lista de verificación de rendimiento
En este trabajo de laboratorio, configurará los parámetros de red en un servidor Red Hat
Enterprise Linux.
Resultados
Deberá ser capaz de configurar dos direcciones IPv4 estáticas para la interfaz de red
principal.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en serverb como el usuario student. Los sistemas
se configuran para que usen claves SSH para la autenticación, por lo que no se necesita una
contraseña para iniciar sesión en serverb.
2. Use el comando sudo -i para cambiar al usuario root. Si se le solicita, use student como
la contraseña.
3. Cree una conexión de red estática nueva con los parámetros de configuración que figuran en
la tabla.
RH124-RHEL8.2-es-1-20200928 465
capítulo 12 | Administración de redes
Parámetro Configuración
Dirección IP 172.25.250.11/24
Cree el nuevo perfil de conexión lab basado en la información en la tabla descrita en las
instrucciones. Asocie el perfil con el nombre de su interfaz de red que aparece en el resultado
del comando ip link anterior.
[root@serverb ~]# nmcli con add con-name lab ifname enX type ethernet \
ipv4.method manual \
ipv4.address 172.25.250.11/24 ipv4.gateway 172.25.250.254
[root@serverb ~]# nmcli con mod "lab" ipv4.dns 172.25.250.254
4. Configure la conexión nueva para que se inicie en forma automática. Otras conexiones no
deberían iniciarse automáticamente.
466 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
De manera alternativa:
6. Configure el archivo hosts para que pueda hacerse referencia a 10.0.1.1 como privada.
7. Reinicie el sistema.
8. Desde workstation use el comando ping para verificar que serverb se inició.
Evaluación
En workstation, ejecute el script lab net-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab net-review finish para finalizar este trabajo de
laboratorio.
RH124-RHEL8.2-es-1-20200928 467
capítulo 12 | Administración de redes
468 RH124-RHEL8.2-es-1-20200928
capítulo 12 | Administración de redes
Resumen
En este capítulo, aprendió lo siguiente:
• IPv4 es el protocolo de red principal usado en Internet hoy en día. IPv6 pretende ser un
reemplazo final del protocolo de red IPv4. De forma predeterminada, Red Hat Enterprise Linux
opera en un modo de pila (stack) doble, con ambos protocolos en paralelo.
• El nombre del host estático del sistema se guarda en el archivo /etc/hostname. El comando
hostnamectl se usa para modificar o ver el estado del nombre de host del sistema y los
parámetros relacionados. El comando hostname muestra o modifica provisoriamente el nombre
de host del sistema.
RH124-RHEL8.2-es-1-20200928 469
470 RH124-RHEL8.2-es-1-20200928
capítulo 13
Almacenamiento y
transferencia de archivos
Meta Almacenar archivos y copiarlos de un sistema a
otro.
RH124-RHEL8.2-es-1-20200928 471
capítulo 13 | Almacenamiento y transferencia de archivos
Administración de colecciones de
archivos tar comprimidas
Objetivos
Tras completar esta sección, usted podrá archivar archivos y directorios en un archivo comprimido
con tar, y extraer el contenido de una colección de archivos tar existente.
El comando tar
El almacenamiento y la compresión de archivos es útil cuando se realizan copias de seguridad y se
transfieren datos a través de una red. Uno de los comandos más antiguos y más usados para crear
y trabajar con colecciones de archivos de copias de seguridad es el comando tar.
Con el comando tar, los usuarios pueden reunir grandes conjuntos de archivos en un solo archivo
(colección de archivos). Una colección de archivos tar es una secuencia estructurada de datos
de archivos mezclados con metadatos sobre cada archivo y un índice para poder extraer archivos
individuales. La colección de archivos puede comprimirse con gzip, bzip2 o xz.
Con el comando tar, también se puede enumerar el contenido de las colecciones de archivos o
extraer sus archivos a su sistema actual.
Opción Descripción
Opción Descripción
472 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Opción Descripción
Opción Descripción
-j, --bzip2 Use la compresión bzip2 (.tar.bz2). Generalmente, bzip2 logra una
mejor relación de compresión que gzip.
nota
El comando tar realmente admite un tercer estilo de opción antiguo que usa
las opciones de una sola letra estándares sin líder -. Todavía se encuentra con
frecuencia, y es posible que tenga esta sintaxis cuando trabaje con instrucciones
o comandos de otras personas. El comando info tar 'old options' analiza
cómo esto difiere de las opciones cortas normales en algún detalle.
Puede ignorar las opciones antiguas por ahora y concentrarse en la sintaxis estándar
de opciones cortas y largas.
RH124-RHEL8.2-es-1-20200928 473
capítulo 13 | Almacenamiento y transferencia de archivos
Advertencia
Antes de crear una colección de archivos tar, verifique que no haya otra colección
de archivos en el directorio con el mismo nombre de la colección de archivos nueva
que se creará. El comando tar sobrescribe una colección de archivos existente sin
advertencia.
Con el siguiente comando, se crea una colección de archivos con el nombre archive.tar con el
contenido de file1, file2 y file3 en el directorio de inicio del usuario.
El comando tar anterior también se puede ejecutar usando las opciones de la versión larga.
nota
Cuando se almacenan archivos con nombres de ruta absolutos, el / inicial de la ruta
se elimina del nombre del archivo de manera predeterminada. Quitar el / inicial
de la ruta ayuda a los usuarios a evitar sobrescribir archivos importantes al extraer
la colección de archivos. Con el comando tar, se extraen los archivos según el
directorio de trabajo actual.
Para que tar pueda archivar los archivos seleccionados, es obligatorio que el usuario que ejecute
el comando tar pueda leer los archivos. Por ejemplo, la creación de una colección de archivos
nueva de la carpeta /etc y todo su contenido requiere privilegios de root porque solo este tipo
de usuario root tiene permitido leer todos los archivos que están presentes en el directorio /
etc. Un usuario sin privilegios puede crear una colección de archivos del directorio /etc, pero la
colección de archivos omite los archivos que no incluyen el permiso de lectura para el usuario y
omite los directorios que no incluyen permiso de lectura y ejecución para el usuario.
Para crear la colección de archivos tar con el nombre /root/etc.tar, con el directorio /etc
como contenido con el usuario root:
Importante
Algunos permisos avanzados que no hemos cubierto en este curso, como los
contextos ACL y SELinux, no se almacenan automáticamente en una colección de
archivos tar. Use la opción --xattrs cuando cree una colección de archivos para
almacenar estos atributos ampliados en la colección de archivos tar.
474 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
RH124-RHEL8.2-es-1-20200928 475
capítulo 13 | Almacenamiento y transferencia de archivos
disponible como gzip, mientras que el método de compresión xz es relativamente nuevo, pero en
general ofrece la mejor relación de compresión de los métodos disponibles.
nota
La efectividad del algoritmo de compresión depende del tipo de datos que se
comprimen. Los archivos de datos que ya están comprimidos, como los formatos
de imagen comprimidos o archivos RPM, generalmente generan una relación de
compresión baja.
Una práctica adecuada es usar un solo directorio de nivel superior, que puede contener otros
directorios y archivos, para simplificar la extracción de los archivos de manera organizada.
Use una de las siguientes opciones para crear una colección de archivos tar comprimida:
Para crear una colección de archivos comprimida gzip llamada /root/etcbackup.tar.gz, con
el contenido del directorio /etc en host:
Después de crear una colección de archivos, verifique su contenido usando las opciones tf. No
es obligatorio usar la opción para el agente de compresión cuando se enumera el contenido de
un archivo de una colección de archivos comprimida. Por ejemplo, para enumerar el contenido del
archivo /root/etcbackup.tar.gz en una colección de archivos, que usa la compresión gzip,
use el siguiente comando:
476 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Para extraer el contenido de una colección de archivos comprimida con gzip con el nombre /
root/etcbackup.tar.gz en el directorio /tmp/etcbackup:
Para extraer el contenido de una colección de archivos comprimida con bzip2 con el nombre /
root/logbackup.tar.bz2 en el directorio /tmp/logbackup:
Para extraer el contenido de una colección de archivos comprimida con xz con el nombre /root/
sshbackup.tar.xz en el directorio /tmp/sshbackup:
RH124-RHEL8.2-es-1-20200928 477
capítulo 13 | Almacenamiento y transferencia de archivos
La enumeración de una colección de archivos tar comprimida funciona de la misma manera que la
enumeración de una colección de archivos tar sin comprimir.
nota
Además, gzip, bzip2 y xz se pueden usar de manera independiente para
comprimir archivos individuales. Por ejemplo, el comando gzip etc.tar genera
el archivo comprimido etc.tar.gz, mientras que el comando bzip2 abc.tar
genera el archivo comprimido abc.tar.bz2 y el comando xz myarchive.tar
genera el archivo comprimido myarchive.tar.xz.
Referencias
Páginas de manual tar(1), gzip(1), gunzip(1), bzip2(1), bunzip2(1), xz(1),
unxz(1)
478 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Ejercicio Guiado
Administración de colecciones de
archivos tar comprimidas
En este ejercicio, creará archivos de colecciones de archivos y extraerá su contenido con el
comando tar.
Resultados
Deberá ser capaz de archivar un árbol de directorios y extraer el contenido de la colección de
archivos en otra ubicación.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Cambie al usuario root ya que solo el usuario root puede acceder a todo el contenido del
directorio /etc.
[student@servera ~]$ su -
Password: redhat
[root@servera ~]#
3. Use el comando tar con las opciones -czf para crear una colección de archivos del
directorio /etc mediante la compresión gzip. Guarde el archivo de la colección de
archivos como /tmp/etc.tar.gz.
4. Use el comando tar con las opciones -tzf para verificar que la colección de archivos
etc.tar.gz contiene los archivos del directorio /etc.
RH124-RHEL8.2-es-1-20200928 479
capítulo 13 | Almacenamiento y transferencia de archivos
[root@servera backuptest]# ls -l
total 12
drwxr-xr-x. 95 root root 8192 Feb 8 10:16 etc
[root@servera backuptest]# cd etc
[root@servera etc]# ls -l
total 1204
-rw-r--r--. 1 root root 16 Jan 16 23:41 adjtime
-rw-r--r--. 1 root root 1518 Sep 10 17:21 aliases
drwxr-xr-x. 2 root root 169 Feb 4 21:58 alternatives
-rw-r--r--. 1 root root 541 Oct 2 21:01 anacrontab
...output omitted...
480 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
6. Salga de servera.
Finalizar
En workstation, ejecute el script lab archive-manage finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 481
capítulo 13 | Almacenamiento y transferencia de archivos
Objetivos
Tras finalizar esta sección, deberá ser capaz de transferir archivos de manera segura desde un
sistema remoto que use SSH y hasta él.
Puede especificar una ubicación remota para el origen o destino de los archivos que está
copiando. El formato de la ubicación remota debe ser en la forma [user@]host:/path. los
user@ parte del argumento es opcional. Si falta, se utilizará su nombre de usuario local actual.
Cuando ejecute el comando, su cliente scp se autenticará en el servidor SSH remoto al igual que
ssh, utilizando la autenticación basada en claves o le pide su contraseña.
En el siguiente ejemplo, se muestra cómo copiar los archivos locales /etc/yum.conf y /etc/
hosts en host, en el directorio de inicio de remoteuser en el sistema remoto remotehost:
También puede copiar un archivo en la otra dirección, desde un sistema remoto al sistema de
archivos local. En este ejemplo, el archivo /etc/hostname en remotehost se copia al directorio
local /home/user. El comando scp autentica a remotehost como usuario remoteuser.
Para copiar un árbol de directorios completo de manera recursiva, use la opción -r. En el siguiente
ejemplo, el directorio remoto /var/log en remotehost se copia de manera recursiva en el
directorio local /tmp/ en host. Debe conectarse al sistema remoto como root para asegurarse
de que puede leer todos los archivos en el directorio remoto /var/log.
482 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Al igual que con el comando scp, el comando sftp usa [user@]host para identificar el sistema
de destino y el nombre de usuario. Si no especifica un usuario, el comando intentará iniciar sesión
utilizando su nombre de usuario local como nombre de usuario remoto. A continuación, se le
presentará un prompt sftp>.
La sesión sftp interactiva acepta diversos comandos que funcionan de la misma manera en el
sistema de archivos remoto que en el sistemas de archivos local, como ls, cd, mkdir, rmdir y
pwd. El comando put carga un archivo en el sistema remoto. El comando get descarga un archivo
desde el sistema remoto. El comando exit finaliza la sesión sftp.
Para cargar el archivo /etc/hosts del sistema local en el directorio creado recientemente /
home/remoteuser/hostbackup en remotehost. La sesión sftp siempre supone que el
comando put es seguido de un archivo en el sistema de archivos local y comienza en el directorio
de inicio del usuario conectado; en este caso, /home/remoteuser:
Para descargar /etc/yum.conf del host remoto en el directorio actual del sistema de archivos
local, ejecute el comando get /etc/yum.conf y finalice la sesión sftp con el comando exit.
Referencias
Páginas de manual scp(1) y sftp(1)
RH124-RHEL8.2-es-1-20200928 483
capítulo 13 | Almacenamiento y transferencia de archivos
Ejercicio Guiado
Resultados
Copiará archivos desde un host remoto hacia un directorio que está en la máquina local.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Use el comando scp para copiar el directorio /etc/ssh desde serverb al directorio /
home/student/serverbackup en servera.
2.2. Use el comando scp para copiar de forma recursiva el directorio /etc/ssh desde
serverb al directorio /home/student/serverbackup en servera. Cuando se
le solicite, escriba la contraseña redhat. Tenga en cuenta que solo el usuario root
puede leer todo el contenido del directorio /etc/ssh.
484 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
/home/student/serverbackup/ssh:
total 588
-rw-r--r--. 1 student student 563386 Feb 11 18:35 moduli
-rw-r--r--. 1 student student 1727 Feb 11 18:35 ssh_config
drwxr-xr-x. 2 student student 28 Feb 11 18:35 ssh_config.d
-rw-------. 1 student student 4469 Feb 11 18:35 sshd_config
-rw-r-----. 1 student student 492 Feb 11 18:35 ssh_host_ecdsa_key
-rw-r--r--. 1 student student 162 Feb 11 18:35 ssh_host_ecdsa_key.pub
-rw-r-----. 1 student student 387 Feb 11 18:35 ssh_host_ed25519_key
-rw-r--r--. 1 student student 82 Feb 11 18:35 ssh_host_ed25519_key.pub
-rw-r-----. 1 student student 1799 Feb 11 18:35 ssh_host_rsa_key
-rw-r--r--. 1 student student 382 Feb 11 18:35 ssh_host_rsa_key.pub
/home/student/serverbackup/ssh/ssh_config.d:
total 8
-rw-r--r--. 1 student student 36 Feb 11 18:35 01-training.conf
-rw-r--r--. 1 student student 690 Feb 11 18:35 05-redhat.conf
3. Salga de servera.
Finalizar
En workstation, ejecute el script lab archive-transfer finish para terminar este
ejercicio.
RH124-RHEL8.2-es-1-20200928 485
capítulo 13 | Almacenamiento y transferencia de archivos
Objetivos
Tras finalizar esta sección, deberá ser capaz de sincronizar en forma eficiente y segura el
contenido de un archivo o directorio local con una copia en un servidor remoto.
Una ventaja de rsync es que puede copiar archivos entre un sistema local y un sistema remoto en
forma segura y eficiente. Cuando una sincronización inicial de un directorio demora prácticamente
el mismo tiempo que el copiado, las sincronizaciones posteriores solo requerirán que se copien las
diferencias a través de la red, lo que acelera sustancialmente las actualizaciones.
Una opción importante de rsync es la opción -n para realizar un simulacro. Un simulacro es una
imitación de lo que sucede cuando el comando se ejecuta. El simulacro muestra los cambios que
rsync ejecutaría cuando el comando se ejecuta normalmente. Realice un simulacro antes de la
operación de rsync real para garantizar que no se sobrescriban ni eliminen archivos importantes.
Las dos opciones más comunes cuando se sincronizan archivos y directorios con rsync son -v y -
a.
La opción -v o --verbose proporciona un resultado más detallado. Esto es útil para solucionar
problemas y para ver el progreso en vivo.
La opción -a o --archive habilita el "modo de archivo". Esto permite la copia recursiva y activa
una gran cantidad de opciones útiles que conservan la mayoría de las características de los
archivos. El modo de archivo es lo mismo que especificar las siguientes opciones:
Opción Descripción
486 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Opción Descripción
El modo de archivo no conserva los enlaces duros, ya que esto puede agregar un tiempo
significativo a la sincronización. Si también desea conservar los enlaces duros, agregue la opción -
H.
nota
Si está utilizando permisos avanzados, es posible que necesite dos opciones
adicionales:
Puede usar rsync para sincronizar el contenido de un archivo o directorio local con un archivo
o directorio en una máquina remota, utilizando cualquiera de las dos máquinas como origen.
También puede sincronizar el contenido de dos archivos o directorios locales.
Por ejemplo, para sincronizar contenido del directorio /var/log con el directorio /tmp:
[user@host ~]$ su -
Password: password
[root@host ~]# rsync -av /var/log /tmp
receiving incremental file list
log/
log/README
log/boot.log
...output omitted...
log/tuned/tuned.log
Una barra al final del directorio de origen sincroniza el contenido de un directorio sin crear el
subdirectorio en el directorio de destino. En este ejemplo, el directorio log no se crea en el
directorio /tmp, solo el contenido de /var/log/ se sincroniza en /tmp.
RH124-RHEL8.2-es-1-20200928 487
capítulo 13 | Almacenamiento y transferencia de archivos
Importante
Cuando se ingrese el directorio de origen en el comando rsync, es importante
si está presente la barra final en el nombre del directorio. Esto determina si el
directorio o solo el contenido del directorio se sincroniza en el destino.
La terminación con tab de Bash agrega automáticamente una barra al final de los
nombres de directorios.
Al igual que con los comandos scp y sftp, rsync especifica ubicaciones remotas usando el
formato [user@]host:/path. La ubicación remota puede ser el sistema de origen o destino,
pero una de las dos máquinas debe ser local.
Para preservar la propiedad del archivo, debe ser root en el sistema de destino. Si el destino es
remoto, autentíquese como root. Si el destino es local, debe ejecutar rsync como root.
En este ejemplo, sincronice el directorio local /var/log con el directorio /tmp en el sistema
remotehost:
Referencias
Página de manual rsync(1)
488 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Ejercicio Guiado
Resultados
Deberá ser capaz de usar el comando rsync para sincronizar el contenido de un directorio
local con una copia en un servidor remoto.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2.2. Use el comando rsync para sincronizar el árbol de directorio /var/log en serverb
con el directorio /home/student/serverlogs en servera. Tenga en cuenta
que solo el usuario root puede leer todo el contenido del directorio /var/log en
serverb. Todos los archivos se transfieren en la sincronización inicial.
RH124-RHEL8.2-es-1-20200928 489
capítulo 13 | Almacenamiento y transferencia de archivos
log/README
log/boot.log
...output omitted...
log/tuned/tuned.log
3. Con root en serverb, ejecute el comando logger "Log files synchronized" para
obtener una nueva entrada en el archivo de registro /var/log/messages para que refleje
cuándo se realizó la última sincronización.
4. Use el comando rsync para sincronizar de forma segura desde el árbol de directorio /
var/log en serverb con el directorio /home/student/serverlogs en servera.
Observe que, en esta oportunidad, solo se transfieren los archivos de registro modificados.
5. Salga de servera.
Finalizar
En workstation, ejecute el script lab archive-sync finish para terminar este ejercicio.
490 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Trabajo de laboratorio
Almacenamiento y transferencia de
archivos
Lista de verificación de rendimiento
En este trabajo de laboratorio, usará tar, rsync y scp para archivar y realizar copias de
seguridad del contenido de los directorios.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
[student@workstation savedconfig]$ cd
RH124-RHEL8.2-es-1-20200928 491
capítulo 13 | Almacenamiento y transferencia de archivos
Evaluación
En workstation, ejecute el script lab archive-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab archive-review finish para terminar este ejercicio.
492 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Solución
Almacenamiento y transferencia de
archivos
Lista de verificación de rendimiento
En este trabajo de laboratorio, usará tar, rsync y scp para archivar y realizar copias de
seguridad del contenido de los directorios.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student.
1.2. Use el comando su para cambiar al usuario root ya que la creación del directorio /
configsync requiere privilegios de superusuario. En pasos posteriores, almacenará
los archivos presentes en el árbol de directorios /etc, que son propiedad del usuario
root; esto también requiere privilegios de superusuario.
[student@serverb ~]$ su -
Password: redhat
[root@serverb ~]#
RH124-RHEL8.2-es-1-20200928 493
capítulo 13 | Almacenamiento y transferencia de archivos
1.4. Use el comando rsync para sincronizar el árbol de directorio /etc de servera con el
directorio /configsync en serverb.
Tenga en cuenta que solo el usuario root puede leer todo el contenido del directorio /
etc en servera.
2. Use la compresión gzip para crear una colección de archivos con el nombre configfile-
backup-servera.tar.gz con el contenido del directorio /configsync.
2.1. Use el comando tar con las opciones -czf para crear una colección de archivos
comprimida con gzip.
2.2. Use el comando tar con las opciones -tzf para enumerar el contenido de la colección
de archivos configfile-backup-servera.tar.gz.
494 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
4.4. Use el comando tar con las opciones -tzf para enumerar el contenido de la colección
de archivos configfile-backup-servera.tar.gz.
4.5. Use el comando tar con las opciones -xzf para extraer el contenido de la colección
de archivos /home/student/configfile-backup-servera.tar.gz en el
directorio /tmp/savedconfig/.
4.6. Enumere el árbol de directorio para verificar que el directorio contenga los archivos del
directorio /etc.
./configsync:
total 12
drwxr-xr-x. 95 student student 8192 Feb 13 09:41 etc
./configsync/etc:
RH124-RHEL8.2-es-1-20200928 495
capítulo 13 | Almacenamiento y transferencia de archivos
total 1212
-rw-r--r--. 1 student student 16 Jan 16 23:41 adjtime
-rw-r--r--. 1 student student 1518 Sep 10 17:21 aliases
drwxr-xr-x. 2 student student 169 Feb 4 21:58 alternatives
...output omitted...
[student@workstation savedconfig]$ cd
Evaluación
En workstation, ejecute el script lab archive-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab archive-review finish para terminar este ejercicio.
496 RH124-RHEL8.2-es-1-20200928
capítulo 13 | Almacenamiento y transferencia de archivos
Resumen
En este capítulo, aprendió lo siguiente:
• Además de proporcionar una shell remota segura, el servicio ssh también ofrece los comandos
scp y sftp como modos seguros de transferir archivos desde un sistema remoto que ejecute el
servidor SSH y hasta él.
• El comando rsync sincroniza de manera segura y eficiente los archivos entre dos directorios,
los cuales puede estar en un sistema remoto.
RH124-RHEL8.2-es-1-20200928 497
498 RH124-RHEL8.2-es-1-20200928
capítulo 14
Instalación y actualización de
paquetes de software
Meta Descargar, instalar, actualizar y gestionar paquetes
de software de Red Hat y repositorios de paquetes
Yum.
RH124-RHEL8.2-es-1-20200928 499
capítulo 14 | Instalación y actualización de paquetes de software
Objetivos
Tras completar esta sección, deberá ser capaz de registrar un sistema para su cuenta de Red Hat
y asignarle autorizaciones para actualizaciones de software y servicios de soporte mediante la
administración de suscripciones de Red Hat.
Existen cuatro tareas básicas que se realizan con las herramientas de administración de
suscripciones de Red Hat:
• Registrar un sistema para asociar ese sistema a una cuenta de Red Hat. Esto permite al
administrador de suscripciones realizar un inventario exclusivo del sistema. Cuando ya no se usa,
es posible anular la suscripción del sistema.
Registro de un sistema
Hay varias formas diferentes de registrar un sistema con el portal de clientes de Red Hat. Hay una
interfaz gráfica a la que puede acceder con una aplicación de GNOME o mediante el servicio de
consola web, y hay una herramienta de línea de comando.
500 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Para registrar el sistema, haga clic en el botón Registrar situado en la ventana Suscripciones.
Esto muestra el siguiente cuadro de diálogo:
Este cuadro de diálogo registra un sistema con un servidor de suscripción. Por defecto, registra el
servidor para el portal del clientes de Red Hat. Proporcione el inicio de sesión y la contraseña
para la cuenta del portal de clientes de Red Hat a la que se debe registrar el sistema y haga clic en
el botón Registrar.
Cuando está registrado, el sistema tiene automáticamente una suscripción adjunta si hay una
disponible.
Después de que se haya asignado un registro y una suscripción, cierre la ventana Suscripciones.
El sistema está suscrito adecuadamente y está listo para recibir actualizaciones o instalar un
software nuevo de Red Hat
RH124-RHEL8.2-es-1-20200928 501
capítulo 14 | Instalación y actualización de paquetes de software
nota
subscription-manager también puede usarse junto con las claves de activación
que permiten el registro y la asignación de suscripciones definidas previamente sin
usar un nombre de usuario o contraseña. Este método de registro puede ser muy
útil para las instalaciones e implementaciones automáticas. Por lo general, las claves
de activación son emitidas por un servicio de administración de suscripciones in situ,
como el administrador de activos de suscripción o Red Hat Satellite; no se analizan
en detalle en este curso.
Certificados de autorización
Una autorización es una suscripción que se adjuntó a un sistema. Los certificados digitales se
usan para almacenar información actual sobre las autorizaciones en el sistema local. Una vez
registrados, los certificados de autorización se almacenan en /etc/pki y en sus subdirectorios.
• /etc/pki/product contiene certificados que indican que hay productos Red Hat instalados
en el sistema.
502 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
• /etc/pki/consumer contiene certificados que indican la cuenta Red Hat donde está
registrado el sistema.
• /etc/pki/entitlement contiene certificados que indican cuáles son las suscripciones que
están adjuntadas al sistema.
Los certificados pueden inspeccionarse en forma directa con la utilidad rct, pero las herramientas
de subscription-manager proporcionan maneras más prácticas de examinar las suscripciones
que están adjuntadas al sistema.
Referencias
Páginas de manual subscription-manager(8) y rct(8)
RH124-RHEL8.2-es-1-20200928 503
capítulo 14 | Instalación y actualización de paquetes de software
Cuestionario
1. ¿Qué comando se usa para registrar un sistema sin usar un entorno gráfico?
a. rct
b. subscription-manager
c. rpm
d. yum
504 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Solución
1. ¿Qué comando se usa para registrar un sistema sin usar un entorno gráfico?
a. rct
b. subscription-manager
c. rpm
d. yum
RH124-RHEL8.2-es-1-20200928 505
capítulo 14 | Instalación y actualización de paquetes de software
Objetivos
Tras completar esta sección, debería poder explicar cómo se proporciona el software como
paquetes de RPM y revisar los paquetes instalados en el sistema con Yum 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 (4.el8).
Solo se necesita el nombre de paquete para instalar paquetes de repositorios. Si existen varias
versiones, se instala el paquete con el número de versión más alto. Si existen varios lanzamientos
de una sola versión, se instala el paquete con el número de lanzamiento más alto.
Cada paquete RPM es una colección de archivos especial con tres componentes:
506 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
• Scripts que pueden ejecutarse cuando el paquete se instala, se actualiza o se quita, o que se
desencadenan cuando otros paquetes se instalan, se actualizan o se quitan.
Por lo general, los proveedores de software firman digitalmente paquetes RPM con claves GPG
(Red Hat firma digitalmente todos los paquetes que lanza). El sistema RPM verifica la integridad
del paquete al confirmar que el paquete fue firmado por la clave GPG apropiada. El sistema RPM
rechaza la instalación de un paquete si la firma GPG no coincide.
En la mayoría de los casos, solo una versión o un lanzamiento de un paquete puede instalarse a
la vez. Sin embargo, si un paquete se crea de modo que no haya nombres de archivo en conflicto,
pueden instalarse múltiples versiones. El ejemplo más importante de esto es el paquete kernel.
Como un kernel nuevo solo puede evaluarse mediante el inicio en ese kernel, el paquete está
específicamente diseñado para que puedan instalarse múltiples versiones simultáneamente. Si el
kernel nuevo no arranca, el kernel anterior sigue estando disponible y de arranque.
• rpm -q: detalla qué versión del paquete está instalada actualmente
RH124-RHEL8.2-es-1-20200928 507
capítulo 14 | 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
if [ $1 -eq 1 ] ; then
# Initial installation
/usr/bin/systemctl preset sshd.service sshd.socket >/dev/null 2>&1 || :
508 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
fi
preuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/usr/bin/systemctl --no-reload disable sshd.service sshd.socket > /dev/
null 2>&1 || :
/usr/bin/systemctl stop sshd.service sshd.socket > /dev/null 2>&1 || :
fi
postuninstall scriptlet (using /bin/sh):
RH124-RHEL8.2-es-1-20200928 509
capítulo 14 | Instalación y actualización de paquetes de software
Sin embargo, la siguiente sección de este capítulo tratará una herramienta más poderosa para
administrar la instalación de RPM y las actualizaciones desde la línea de comandos, yum.
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 como usuario root durante el proceso de instalación.
nota
Puede extraer archivos de un archivo de paquete RPM sin instalar el paquete. La
utilidad rpm2cpio puede pasar el contenido del RPM a una herramienta de archivo
especial llamada cpio, que puede extraer todos los archivos o archivos individuales.
Comando Tarea
510 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Comando Tarea
Referencias
Páginas del manual rpm(8), rpm2cpio(8), cpio(1) y rpmkeys(8)
RH124-RHEL8.2-es-1-20200928 511
capítulo 14 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Deberá ser capaz de instalar un paquete no proporcionado por los repositorios de software
en un servidor.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
512 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
2.3. 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.
RH124-RHEL8.2-es-1-20200928 513
capítulo 14 | Instalación y actualización de paquetes de software
opt/rhcsa-script:
total 4
-rw-r--r--. 1 student student 1056 Mar 7 14:44 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.
5. Salga de servera.
Finalizar
En workstation, ejecute el script lab software-rpm finish para terminar este ejercicio.
Este script elimina todos los paquetes instalados en servera durante el ejercicio
514 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, debería poder encontrar, instalar y actualizar paquetes de software
mediante el uso del comando yum.
Yum está diseñado para ser un mejor sistema de gestión de instalación y actualizaciones de
software basado en RPM. El comando yum le permite instalar, actualizar, eliminar y obtener
información sobre los paquetes de software y sus dependencias. Puede obtener un historial de
transacciones realizadas y trabajar con múltiples repositorios de software de Red Hat y terceros.
• yum search KEYWORD enumera paquetes por palabras clave que se encuentran en los
campos de nombre y resumen solamente.
Para buscar paquetes que contienen “servidor web” en los campos nombre, resumen y
descripción, use search all:
RH124-RHEL8.2-es-1-20200928 515
capítulo 14 | Instalación y actualización de paquetes de software
• yum info PACKAGENAME arroja información detallada sobre un paquete, que incluye el
espacio en disco necesario para la instalación.
• yum provides PATHNAME muestra paquetes que coinciden con el nombre de ruta
especificado (que a menudo, incluye caracteres comodines).
• yum install PACKAGENAME obtiene e instala un paquete de software junto con cualquier
tipo de dependencia.
516 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
================================================================================
Install 9 Packages
• yum update PACKAGENAME obtiene e instala una versión más reciente del paquete
especificado, incluidas las dependencias. Generalmente, el proceso intenta preservar los
archivos de configuración, pero en algunos casos, se les cambiará el nombre si el empaquetador
considera que el anterior no funcionará después de la actualización. Si no se especifica el
PACKAGENAME, instala todas las actualizaciones relevantes.
Como un kernel nuevo solo puede evaluarse mediante el inicio en ese kernel, el paquete está
específicamente diseñado para que puedan instalarse múltiples versiones simultáneamente.
Si el núcleo nuevo no arranca, el núcleo anterior sigue estando disponible. El uso de yum
update kernel producirá la instalación del kernel nuevo. Los archivos de configuración
contienen una lista de paquetes que siempre deben instalarse aunque el administrador solicite
una actualización.
RH124-RHEL8.2-es-1-20200928 517
capítulo 14 | Instalación y actualización de paquetes de software
nota
Use yum list kernel para detallar todos los núcleos instalados y disponibles.
Para ver el kernel en funcionamiento actualmente, use el comando uname. La
opción -r muestra solamente la versión y el lanzamiento del kernel, y la opción -a
muestra el lanzamiento e información adicional del kernel.
• yum remove PACKAGENAME elimina un paquete de software instalado junto con cualquier
paquete compatible.
Advertencia
El comando yum remove quita los paquetes enumerados y cualquier paquete que
requiere que se eliminen los paquetes (y los paquetes que requieren esos paquetes,
etc.). Esto puede dar lugar a una eliminación inesperada de paquetes, por lo que
debe verificar detenidamente la lista de paquetes que se quitarán.
• yum también representa el concepto de grupos, que son colecciones de software relacionados
e instalados en forma conjunta con un fin en particular. En Red Hat Enterprise Linux 8, hay dos
tipos de grupos. Los grupos regulares son colecciones de paquetes. Los grupos de entorno son
colecciones de grupos regulares. Los paquetes o grupos proporcionados por un grupo pueden
ser obligatorios (deben instalarse si el grupo se instala), predeterminados (normalmente
se instalan si el grupo se instala) u opcionales (no se instalan cuando se instala el grupo a
menos que se lo solicite específicamente).
Al igual que yum list, el comando yum group list muestra los nombres de grupos
instalados y disponibles.
518 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
• yum group info muestra información acerca de un grupo. Incluye una lista de nombres de
paquetes obligatorios, predeterminados u opcionales.
• yum group install instala un grupo que instala sus paquetes obligatorios y
predeterminados, y los paquetes de los que depende.
Transaction Summary
===============================================================================
Install 64 Packages
RH124-RHEL8.2-es-1-20200928 519
capítulo 14 | Instalación y actualización de paquetes de software
Importante
El comportamiento de los grupos Yum cambió a partir de Red Hat Enterprise
Linux 7. En RHEL 7 y versiones posteriores, los grupos se tratan como objetos y
son rastreados por el sistema. Si un grupo instalado se actualiza y el repositorio
Yum ha agregado paquetes nuevos obligatorios o predeterminados al grupo, dichos
paquetes nuevos se instalan en la actualización.
520 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Tarea: Comando:
Referencias
Páginas de manual yum(1) y yum.conf(5)
RH124-RHEL8.2-es-1-20200928 521
capítulo 14 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Debería poder instalar y eliminar paquetes con dependencias.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student. Los
sistemas se configuran para que usen claves SSH para la autenticación, por lo que no se
necesita una contraseña para iniciar sesión en servera.
3.2. Use el comando yum search para buscar paquetes que tienen guile como parte
de su nombre o resumen.
522 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
3.3. Use el comando yum info para obtener más información acerca del paquete guile.
Transaction Summary
===============================================================================
Install 4 Packages
5. Quite paquetes.
5.1. Use el comando yum remove para eliminar el paquete guile, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitarían?
RH124-RHEL8.2-es-1-20200928 523
capítulo 14 | Instalación y actualización de paquetes de software
Removing:
guile x86_64 5:2.0.14-7.el8 @rhel-8.2-for-x86_64-appstream-rpms 12 M
Removing unused dependencies:
gc x86_64 7.6.4-3.el8 @rhel-8.2-for-x86_64-appstream-rpms 221 k
libatomic_ops x86_64 7.6.2-3.el8 @rhel-8.2-for-x86_64-appstream-rpms 75 k
libtool-ltdl x86_64 2.4.6-25.el8 @rhel-8.2-for-x86_64-baseos-rpms 69 k
Transaction Summary
===============================================================================
Remove 4 Packages
Freed space: 12 M
Is this ok [y/N]: n
Operation aborted.
5.2. Use el comando yum remove para eliminar el paquete gc, pero responda con no
cuando se le solicite. ¿Cuántos paquetes se quitarían?
Transaction Summary
===============================================================================
Remove 4 Packages
Freed space: 12 M
Is this ok [y/N]: n
Operation aborted.
6.1. Use el comando yum group list para enumerar todos los grupos de componentes
disponibles.
6.2. Use el comando yum group info para obtener más información acerca del grupo
de componentes Herramientas de seguridad, incluida una lista de paquetes
incluidos.
524 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
6.3. Use el comando yum group install para instalar el grupo de componentes
Herramientas de seguridad.
Transaction Summary
===============================================================================
Install 6 Packages
Complete!
7.1. Use el comando yum history para mostrar el historial de yum reciente.
RH124-RHEL8.2-es-1-20200928 525
capítulo 14 | Instalación y actualización de paquetes de software
7.2. Use el comando yum history info para confirmar que la última transacción sea la
instalación del grupo. En el siguiente comando, reemplace el ID de transacción por el
que se menciona en el paso anterior.
7.3. Use el comando yum history undo para eliminar el conjunto de paquetes que
se instalaron cuando se instaló el paquete guile. En su sistema, busque el ID de
transacción correcto de la salida del comando yum history y luego, use ese ID en el
siguiente comando.
Finalizar
En workstation, ejecute el script lab software-yum finish para terminar este ejercicio.
526 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
RH124-RHEL8.2-es-1-20200928 527
capítulo 14 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, los estudiantes deberán ser capaces de habilitar y deshabilitar el uso de
repositorios Yum de Red Hat o de terceros por parte de un servidor.
El comando yum config-manager se puede usar para habilitar o deshabilitar los repositorios.
Para habilitar un repositorio, el comando establece el parámetro habilitado en 1. Por ejemplo,
el siguiente comando habilita el repositorio rhel-8-server-debug-rpms:
La fuentes que no son Red Hat proporcionan software a través de repositorios de terceros, a los
que se puede acceder mediante el comando yum desde un sitio web, servidor FTP o el sistema
de archivos local. Por ejemplo, Adobe proporciona parte de su software para Linux a través
de un repositorio Yum. En un aula Red Hat, el servidor del aula content.example.com aloja
repositorios Yum.
528 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
[dl.fedoraproject.org_pub_epel_8_Everything_x86_64_]
name=created by yum config-manager from https://dl.fedoraproject.org/pub/epel/8/
Everything/x86_64/
baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/
enabled=1
Modifique este archivo para proporcionar valores personalizados y la ubicación de una clave
GPG. Las claves se almacenan en diversas ubicaciones en el sitio del repositorio remoto, como,
http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8. Los administradores
deben descargar la clave en un archivo local en lugar de permitir que yum la recupere de una
fuente externa. Por ejemplo:
[EPEL]
name=EPEL 8
baseurl=https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
El siguiente comando instala el paquete de repositorio de Red Hat Enterprise Linux 8 EPEL.
RH124-RHEL8.2-es-1-20200928 529
capítulo 14 | Instalación y actualización de paquetes de software
[epel-debuginfo]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/
$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-
$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-
$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
gpgcheck=1
Advertencia
Antes de instalar los paquetes firmados, instale la clave GPG de RPM. Esta acción
verifica que los paquetes pertenezcan a una clave que se haya importado. De lo
contrario, el comando yum el falla porque falta una clave. La opción --nogpgcheck
puede usarse para ignorar las claves GPG faltantes, pero esto podría provocar que
se instalen paquetes adulterados o dudosos en el sistema y que, posiblemente,
comprometan la seguridad.
530 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Referencias
Páginas de manual yum(1), yum.conf(5) y yum-config-manager(1)
RH124-RHEL8.2-es-1-20200928 531
capítulo 14 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Deberá ser capaz de configurar un sistema para obtener actualizaciones de software de un
servidor de aula y actualizar el sistema para usar los paquetes más recientes.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
532 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
[rht-updates]
name=rht updates
baseurl=http://content.example.com/rhel8.2/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
3.4. Use el comando yum repolist all para enumerar todos los repositorios en el
sistema:
RH124-RHEL8.2-es-1-20200928 533
capítulo 14 | Instalación y actualización de paquetes de software
Is this ok [y/N]: y
...output omitted...
Installed:
rht-system-1.0.0-1.noarch
Complete!
4.3. Verifique que el paquete rht-system esté instalado y anote el número de versión del
paquete.
5.2. Use el comando yum update para actualizar todos los paquetes de software en
servera.
5.3. Verifique que el paquete rht-system esté actualizado y anote el número de versión
del paquete.
6. Salga de servera.
534 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Finalizar
En workstation, ejecute el script lab software-repo finish para terminar este ejercicio.
Este script elimina todos los repositorios de software y paquetes instalados en servera durante
el ejercicio.
RH124-RHEL8.2-es-1-20200928 535
capítulo 14 | Instalación y actualización de paquetes de software
Objetivos
Tras finalizar esta sección, usted deberá ser capaz de realizar lo siguiente:
El contenido de Red Hat Enterprise Linux 8 se distribuye a través de dos repositorios de software
principales: BaseOS y Flujo de aplicaciones (AppStream).
BaseOS
El repositorio de BaseOS proporciona el contenido del sistema operativo central para Red Hat
Enterprise Linux como paquetes RPM. Los componentes de BaseOS tienen un ciclo de vida
idéntico al del contenido de versiones anteriores de Red Hat Enterprise Linux.
Flujo de aplicaciones
El repositorio de Flujo de aplicaciones proporciona contenido con distintos ciclos de vida como
módulos y paquetes tradicionales. El Flujo de aplicaciones contiene las partes necesarias del
sistema, así como una amplia gama de aplicaciones previamente disponibles como parte de Red
Hat Software Collections y otros productos y programas.
Importante
Tanto BaseOS como AppStream son una parte necesaria de un sistema
Red Hat Enterprise Linux 8.
El repositorio del Flujo de aplicaciones contiene dos tipos de contenido: Módulos y paquetes RPM
tradicionales. Un módulo describe un conjunto de paquetes RPM que están relacionados. Los
536 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
módulos pueden contener varios flujos para que haya varias versiones de aplicaciones disponibles
para la instalación. Al habilitar un flujo de módulos, el sistema tiene acceso a los paquetes RPM
dentro de ese flujo de módulos.
Módulos
Un módulo es un conjunto de paquetes RPM que son un conjunto consistente que están
relacionados. Normalmente, esto se organiza en torno a una versión específica de una aplicación
de software o lenguaje de programación. Un módulo típico puede contener paquetes con una
aplicación, paquetes con las bibliotecas de dependencia específica de la aplicación, paquetes con
documentación para la aplicación y paquetes con utilidades auxiliares.
Flujos de módulos
Cada módulo puede tener uno o más flujos de módulos, que contienen diferentes versiones del
contenido. Cada uno de los flujos recibe actualizaciones de forma independiente. Piense en el
flujo de módulos como un repositorio virtual en el repositorio físico del flujo de aplicaciones.
Para cada módulo, solo una de sus secuencias puede habilitarse y proporcionar sus paquetes.
Perfiles de módulos
Cada módulo puede tener uno o más perfiles. Un perfil es una lista de ciertos paquetes que se
deben instalar juntos para un determinado caso de uso por ejemplo, para un servidor, cliente,
desarrollo, instalación mínima u otro.
Para el manejo del contenido modular, se agregó el comando yum module. De otro modo, yum
funciona con módulos como lo hace con paquetes regulares.
Listado de módulos
Para visualizar una lista de módulos disponibles, use yum module list:
RH124-RHEL8.2-es-1-20200928 537
capítulo 14 | Instalación y actualización de paquetes de software
nota
Use Sugerencia al final de la salida para poder determinar qué flujos y perfiles
están habilitados, deshabilitados, instalados, así como cuáles son los valores
predeterminados.
Para mostrar una lista de los flujos de módulos para un módulo específico y recuperar su estado:
nota
Sin especificar un flujo de módulos, la información del módulo yum muestra
una lista de paquetes instalados de por el perfil predeterminado de un módulo que
usa el flujo predeterminado. Use el formato module-name:stream para ver un flujo
de módulos específico. Agregue la opción --profile para mostrar información
sobre los paquetes instalados por cada uno de los perfiles del módulo. Por ejemplo:
538 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Importante
Solo se puede habilitar un flujo de módulos para un módulo dado. La habilitación de
un flujo de módulos adicional deshabilitará el flujo de módulos original.
nota
Los mismos resultados podrían haberse logrado ejecutando yum install@perl.
La notación @ informa a yum que el argumento es un nombre de módulo en lugar de
un nombre de paquete.
RH124-RHEL8.2-es-1-20200928 539
capítulo 14 | Instalación y actualización de paquetes de software
Advertencia
Eliminar módulos y cambiar las secuencias de módulos puede ser un poco
complicado. Cambiar el flujo habilitado para un módulo es equivalente a restablecer
el flujo actual y habilitar el nuevo flujo. No cambia automáticamente los paquetes
instalados. Tiene que hacerlo manualmente.
Después de que se elimine el módulo, el flujo de módulos aún está habilitado. Para verificar que el
flujo del módulos todavía esté habilitado:
540 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Para garantizar un interruptor limpio, debe eliminar primero los módulos proporcionados por la
secuencia del módulo. Eso eliminará todos los paquetes instalados por los perfiles del módulo, y
cualquier módulo o paquete en el que esos paquetes tengan dependencias.
Para listar los paquetes instalados desde el módulo, en el siguiente ejemplo está instalado el
módulo postgresql:9.6:
Elimine los paquetes enumerados en el comando anterior. Marque los perfiles del módulo que se
desinstalará.
Después de quitar los perfiles del módulo, reinicie la secuencia del módulo. Use el comando yum
module reset para restablecer el flujo del módulo.
RH124-RHEL8.2-es-1-20200928 541
capítulo 14 | Instalación y actualización de paquetes de software
Transaction Summary
=================================================================
Is this ok [y/N]: y
Complete!
Se habilitará el nuevo flujo de módulos y se deshabilitará el flujo actual. Puede ser necesario
actualizar o degradar los paquetes del flujo de módulos anterior que no se enumeran en el nuevo
perfil. Use yum distro-sync para realizar esta tarea si es necesario. También puede haber
paquetes que permanezcan instalados desde el flujo de módulos anterior. Elimínelos con yum
remove.
Referencias
Para obtener más información, consulte el capítulo Uso de AppStream en la Guía
Instalación, administración y eliminación de componentes de espacio de usuario de
Red Hat Enterprise Linux 8 en
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-
single/installing_managing_and_removing_user-space_components/index#using-
appstream_using-appstream
Modularidad
https://docs.fedoraproject.org/en-US/modularity/
542 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Ejercicio Guiado
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
3. Enumere los módulos disponibles, flujos y módulos instalados. Examine la información para
el módulo python36.
3.1. Use el comando yum module list para enumerar los módulos y los flujos
disponibles.
RH124-RHEL8.2-es-1-20200928 543
capítulo 14 | Instalación y actualización de paquetes de software
3.2. Use el comando yum module list --installed para enumerar los módulos y
las flujos instalados.
3.3. Use el comando yum module info para examinar los detalles del módulo
python36.
4. Instale el módulo python36 desde el flujo 3.6 y el perfil común. Verifique el estado actual
del módulo.
4.1. Use el comando yum module install para instalar el módulo python36. Use la
sintaxis name:stream/profile para instalar el módulo python36 desde el flujo 3.6
y el perfil común.
nota
Puede omitir /profile para usar el perfil predeterminado y :stream para usar el
flujo predeterminado.
544 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
5. Cambie el módulo postgresql del perfil servidor para usar el flujo 10.
5.1. Use el comando yum module list para enumerar el módulo postgresql y el flujo.
Tenga en cuenta que el flujo del módulo postgresql:9.6 está instalado actualmente.
5.2. Elimine y deshabilite el flujo del módulo postgresql junto con todos los paquetes
instalados por el perfil.
RH124-RHEL8.2-es-1-20200928 545
capítulo 14 | Instalación y actualización de paquetes de software
Transaction Summary
=================================================================
Is this ok [y/N]: y
Complete!
5.4. Use el comando yum module install para cambiar al flujo del módulo
postgresql:10.
6. Elimine y deshabilite el flujo del módulo postgresql junto con todos los paquetes instalados
por el perfil.
6.1. Use el comando yum module remove para eliminar el módulo postgresql. El
comando también elimina todos los paquetes instalados desde este módulo.
546 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
7. Salga de servera.
Finalizar
En workstation, ejecute el script lab software-module finish para terminar este
ejercicio. Este script elimina todos los módulos instalados en servera durante el ejercicio.
RH124-RHEL8.2-es-1-20200928 547
capítulo 14 | Instalación y actualización de paquetes de software
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab software-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
548 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Finalizar
En workstation, ejecute el script lab software-review finish para terminar este
ejercicio. Este script elimina el repositorio y los paquetes creados durante este ejercicio.
RH124-RHEL8.2-es-1-20200928 549
capítulo 14 | Instalación y actualización de paquetes de software
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. En workstation, use el comando ssh para iniciar sesión en serverb con el usuario
student.
550 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
[errata]
name=Red Hat Updates
baseurl=http://content.example.com/rhel8.2/x86_64/rhcsa-practice/errata
enabled=1
gpgcheck=0
2. En serverb, instale el nuevo paquete xsane-gimp y el módulo Servidor HTTP Apache del
flujo 2.4 y el perfil común.
2.1. Use el comando yum list para enumerar los paquetes disponibles para xsane-gimp.
2.2. Instale la última versión del paquete xsane-gimp paquete con el comando yum
install.
2.3. Enumere los módulos y flujos disponibles. Busque el módulo httpd. Use el comando
yum install para instalar el módulo httpd con el flujo 2.4 y el perfil común.
3. Por razones de seguridad, serverb no deberá ser capaz de enviar nada para imprimir. Logre
esto mediante la eliminación del paquete cups. Salga de la cuenta root.
3.1. Use el comando yum list para mostrar el paquete cups instalado.
RH124-RHEL8.2-es-1-20200928 551
capítulo 14 | Instalación y actualización de paquetes de software
Freed space: 11 M
Is this ok [y/N]: y
...output omitted...
Complete!
4.1. Use el comando rpm para confirmar que el paquete rhcsa-script-1.0.0-1.noarch.rpm está
disponible en serverb al ver la información del paquete.
552 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
4.2. Use el comando sudo yum localinstall para instalar el paquete rhcsa-
script-1.0.0-1.noarch.rpm. La contraseña es student.
Transaction Summary
===================================================================
Install 1 Package
Installed:
rhcsa-script-1.0.0-1.noarch
Complete!
4.3. Use el comando rpm para verificar que el paquete esté instalado.
RH124-RHEL8.2-es-1-20200928 553
capítulo 14 | Instalación y actualización de paquetes de software
Evaluación
En workstation, ejecute el script lab software-review grade para confirmar que ha
realizado correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab software-review finish para terminar este
ejercicio. Este script elimina el repositorio y los paquetes creados durante este ejercicio.
554 RH124-RHEL8.2-es-1-20200928
capítulo 14 | Instalación y actualización de paquetes de software
Resumen
En este capítulo, aprendió lo siguiente:
• La administración de suscripciones de Red Hat proporciona herramientas para que los equipos
tengan derecho a suscripciones de productos, obtengan actualizaciones de paquetes de
software y busquen información sobre contratos de soporte y suscripciones usadas por sus
sistemas.
• El comando rpm se puede usar para consultar una base de datos local para proporcionar
información sobre el contenido de los paquetes instalados e instalar archivos de paquetes
descargados.
• yum es una herramienta eficaz de la línea de comandos que puede usarse para instalar,
actualizar, eliminar y consultar los paquetes de software.
• Red Hat Enterprise Linux 8 usa flujos de aplicaciones para proporcionar un solo repositorio que
aloje varias versiones del paquete de una aplicación y sus dependencias.
RH124-RHEL8.2-es-1-20200928 555
556 RH124-RHEL8.2-es-1-20200928
capítulo 15
RH124-RHEL8.2-es-1-20200928 557
capítulo 15 | Acceso a los sistemas de archivos de Linux
Objetivos
Tras finalizar esta sección, deberá ser capaz de identificar un directorio en la jerarquía de sistemas
de archivos y en el dispositivo de almacenamiento en el que está almacenado.
En cierto sentido, la jerarquía de sistemas de archivos Linux presenta una colección de sistemas de
archivos en dispositivos de almacenamiento separados como si fuera un conjunto de archivos en
un dispositivo de almacenamiento gigante en el que puede navegar. La mayoría de las veces, no
necesita saber en qué dispositivo de almacenamiento se encuentra un archivo en particular, solo
necesita saber en qué directorio se encuentra el archivo.
Sin embargo, a veces, puede ser importante. Es posible que deba determinar qué tan lleno está
un dispositivo de almacenamiento y qué directorios en la jerarquía de sistemas de archivos son
afectados. Es posible que haya errores en los registros de un dispositivo de almacenamiento,
y necesita saber qué sistemas de archivos están en riesgo. Es posible que solo desee crear un
vínculo rígido entre dos archivos, y necesita saber si están en el mismo sistema de archivos para
determinar si es posible.
Los archivos de dispositivos de bloque se almacenan en el directorio /dev, junto con otros
archivos de dispositivo. Los archivos del dispositivo son creados automáticamente por el sistema
operativo. En Red Hat Enterprise Linux, el primer disco duro SATA/PATA, 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.
558 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
nota
Muchas máquinas virtuales utilizan el almacenamiento paravirtualizado virtio-
scsi más nuevo que tendrá la nomenclatura de estilo /dev/sd*.
Las particiones son dispositivos de bloque por derecho propio. En el almacenamiento adjunto a
SATA, la primera partición en el primer disco es /dev/sda1. La tercera partición en el segundo
disco es /dev/sdb3, y así sucesivamente. Los dispositivos de almacenamiento paravirtualizados
tienen un sistema de nomenclatura similar.
Los nombres del dispositivo SSD adjunto a NVMe nombra sus particiones de manera diferente.
En ese caso, la primera partición en el primer disco es /dev/nvme0p1. La tercera partición en el
segundo disco es /dev/nvme1p3, y así sucesivamente. Las tarjetas SD o MMC tienen un sistema
de nomenclatura similar.
Un listado extenso del archivo de dispositivo /dev/sda1 en host revela que su tipo de archivo
especial es b, que significa "dispositivo de bloque":
Volúmenes lógicos
Otra manera de organizar discos y particiones es mediante la administración de volúmenes lógicos
(LVM). Con la administración de volúmenes lógicos, uno o más dispositivos de bloque pueden
RH124-RHEL8.2-es-1-20200928 559
capítulo 15 | 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 /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, si un grupo de
volúmenes se llama myvg y el volumen lógico dentro de este se llama mylv, entonces el nombre
completo de la ruta al archivo de dispositivo de volumen lógico es /dev/myvg/mylv.
nota
La forma del nombre del dispositivo de volumen lógico mencionado anteriormente
se implementa en realidad como un enlace simbólico al archivo de dispositivo real
utilizado 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 /dev/
mapper que se utilizan a menudo, y también son enlaces simbólicos al archivo del
dispositivo real.
En el siguiente ejemplo, se muestran los sistemas de archivos y los puntos de montaje en host.
[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
Las particiones en el sistema host muestran dos sistemas de archivos físicos, que se montan en /
y /boot. Esto es frecuente en el caso de máquinas virtuales. Los dispositivos tmpfs y devtmpfs
son sistemas de archivos en la memoria del sistema. Todos los archivos escritos en tmpfs o en
devtmpfs desaparecen después de que se reinicia el sistema.
A fin de mejorar la legibilidad de los tamaños de las salidas, hay dos opciones diferentes legibles
por el ojo humano: -h o -H. La diferencia entre estas dos opciones es que -h informa en KiB
(210 ), MiB (220 ), o GiB (230 ), mientras que la opción -H informa en unidades SI: KB (103 ), MB
(106 ), GB (109 ). Los fabricantes de discos duros normalmente usan las unidades SI cuando
anuncian sus productos.
Muestre un informe sobre los sistemas de archivos en el sistema host con todas las unidades
convertidas a formato legible por el ojo humano:
560 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
[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
/dev/vda3 8.0G 1.4G 6.7G 17% /
/dev/vda1 1014M 166M 849M 17% /boot
tmpfs 183M 0 183M 0% /run/user/1000
Para obtener información más detallada sobre el espacio usado por un árbol de directorios en
particular, use el comando du. El comando du ofrece las opciones -h y -H para convertir la salida
a formato legible por el ojo humano. El comando du muestra el tamaño de todos los archivos en el
árbol de directorios actual de modo recursivo.
Muestre un informe sobre el uso del disco para el directorio /usr/share en host:
Muestre un informe sobre el uso del disco en formato legible por el ojo humano, para el directorio
/usr/share en host:
Referencias
Páginas de manual df(1) y du(1)
RH124-RHEL8.2-es-1-20200928 561
capítulo 15 | Acceso a los sistemas de archivos de Linux
Cuestionario
4. ¿Cuál es el nombre del archivo de dispositivo del tercer disco virtio-blk conectado a
una máquina virtual?
a. /dev/vda3
b. /dev/sda3
c. /dev/vdb3
d. /dev/vda3
5. ¿Qué comando brinda una descripción general sobre los puntos de montaje de
sistemas de archivos y la cantidad de espacio libre disponible en las unidades SI?
a. df
b. df -H
c. df -h
d. du -h
562 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Solución
4. ¿Cuál es el nombre del archivo de dispositivo del tercer disco virtio-blk conectado a
una máquina virtual?
a. /dev/vda3
b. /dev/sda3
c. /dev/vdb3
d. /dev/vda3
5. ¿Qué comando brinda una descripción general sobre los puntos de montaje de
sistemas de archivos y la cantidad de espacio libre disponible en las unidades SI?
a. df
b. df -H
c. df -h
d. du -h
RH124-RHEL8.2-es-1-20200928 563
capítulo 15 | Acceso a los sistemas de archivos de Linux
Objetivos
Tras finalizar esta sección, deberá ser capaz de acceder al contenido de sistemas de archivos
mediante la adición y la eliminación de sistemas de archivos de la jerarquía de sistemas de
archivos.
Hay dos formas comunes de especificar el sistema de archivos en una partición de disco para el
comando mount:
• Con el nombre del archivo del dispositivo en /dev que contiene el sistema de archivos.
• Con el UUID escrito en el sistema de archivos, un identificador universalmente único.
Use el comando lsblk para enumerar los detalles de un dispositivo de bloque especificado o
todos los dispositivos disponibles.
564 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Para montar un sistema de archivos, ya debe existir el directorio de destino. El directorio /mnt
existe de forma predeterminada y está destinado a ser utilizado como punto de montaje temporal.
Puedes usar el directorio /mnt, o mejor aún crear un subdirectorio de /mnt para usar como
punto de montaje temporal, a menos que tenga una buena razón para montarlo en una ubicación
específica en la jerarquía de sistemas de archivos.
Importante
Si el directorio que funciona como punto de montaje no está vacío, no se puede
acceder a los archivos copiados en ese directorio antes de que el sistema de
archivos se montara hasta que el sistema de archivos se desmonte nuevamente.
Este enfoque funciona bien a corto plazo. Sin embargo, el orden en que el sistema operativo
detecta discos puede cambiar si se agregan o eliminan dispositivos del sistema. Esto cambiará el
nombre del dispositivo asociado con ese dispositivo de almacenamiento. Un mejor enfoque sería
montar por alguna característica incorporada en el sistema de archivos.
El comando lsblk -fp detalla la ruta completa del dispositivo, junto con los UUID y los puntos
de montajes, así como el tipo de sistema de archivos en la partición. Si el sistema de archivos no
está montado, el punto de montaje estará en blanco.
RH124-RHEL8.2-es-1-20200928 565
capítulo 15 | Acceso a los sistemas de archivos de Linux
Advertencia
Los datos del sistema de archivos son a menudo almacenados en la memoria caché.
Por lo tanto, para evitar dañar los datos en el disco, es esencial que desmonte las
unidades extraíbles antes de desenchufarlas. El procedimiento de desmontaje
sincroniza los datos antes de liberar la unidad, lo que garantiza la integridad de los
datos.
Para desmontar un sistema de archivos, el comando umount espera el punto de montaje como
argumento.
No se puede desmontar si el sistema de archivos montado está en uso. Para que el comando
umount se ejecute correctamente, todos los procesos deben dejar de acceder a los datos en el
punto de montaje.
En el siguiente ejemplo, el umount falla porque el sistema de archivos está en uso (la shell está
usando /mnt/data como su directorio de trabajo actual), y genera un mensaje de error.
El comando lsof enumera todos los archivos abiertos y el proceso que accede a ellos en el
directorio proporcionado. Resulta útil identificar los procesos que actualmente impiden un
correcto desmontaje del sistema de archivos.
Una vez que se identifican los procesos, puede tomarse una medida, como esperar a que finalice
el proceso o enviar una señal SIGTERM o SIGKILL al proceso. En este caso, basta con cambiar el
directorio en funcionamiento actual por un directorio fuera del punto de montaje.
[root@host data]# cd
[root@host ~]# umount /mnt/data
566 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
nota
Una razón común para que los sistemas de archivos no puedan desmontarse es que
una shell Bash está usando el punto de montaje o un subdirectorio como directorio
de trabajo actual. Use el comando cd para cambiar el sistema de archivos para
resolver este problema.
Referencias
Páginas de manual lsblk(8), mount(8), umount(8) y lsof(8)
RH124-RHEL8.2-es-1-20200928 567
capítulo 15 | Acceso a los sistemas de archivos de Linux
Ejercicio Guiado
Resultados
El usuario deberá identificar y montar un nuevo sistema de archivos en un punto de montaje
especificado; luego, desmontarlo.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
2. Se ha agregado una nueva partición con un sistema de archivos al segundo disco (/dev/
vdb) en servera. Monte la partición disponible recientemente mediante UUID en el punto
de montaje creado recientemente /mnt/newspace.
2.1. Use el comando sudo -i para cambiar a root, ya que solo el usuario root puede
montar un dispositivo manualmente.
2.3. Use el comando lsblk con la opción -fp para descubrir el UUID del dispositivo, /
dev/vdb1.
568 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
2.4. Monte el sistema de archivos mediante el uso del UUID en el directorio /mnt/
newspace. Reemplace el UUID con el del disco /dev/vdb1 de la salida del comando
anterior.
[root@servera newspace]# cd
[root@servera ~]#
RH124-RHEL8.2-es-1-20200928 569
capítulo 15 | Acceso a los sistemas de archivos de Linux
5. Salga de servera.
Finalizar
En workstation, ejecute el script lab fs-mount finish para terminar este ejercicio.
570 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Objetivos
Tras finalizar esta sección, deberá poder buscar archivos en los sistemas de archivos montados
usando los comandos find y locate.
Búsqueda de archivos
Un administrador de sistemas necesita herramientas para buscar archivos que coincidan con
ciertos criterios 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 una base de datos generada 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 rastreo de la jerarquía de sistemas
de archivos.
La base de datos locate se actualiza automáticamente todos los días. Sin embargo, en cualquier
momento 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.
Busque archivos con passwd en el nombre o en la ruta en los árboles de directorios legibles por el
usuario en host.
RH124-RHEL8.2-es-1-20200928 571
capítulo 15 | Acceso a los sistemas de archivos de Linux
Los resultados se presentan incluso cuando la ruta o el nombre de archivo es solo una coincidencia
parcial con la consulta de búsqueda.
La opción -i realiza una búsqueda que distingue entre mayúsculas y minúsculas. Con esta opción,
todas las combinaciones posibles de letras en mayúsculas y minúsculas coinciden con la búsqueda.
El comando find examina los archivos en el sistema de archivos usando la cuenta de usuario que
ejecutó la búsqueda. El usuario que invoca 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 la opción -name FILENAME. Con esta opción,
find arroja la ruta a los archivos que coinciden exactamente con el NOMBRE DE ARCHIVO. Por
572 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
ejemplo, para buscar archivos con el nombre sshd_config comenzando con el directorio /,
ejecute el siguiente comando:
nota
Con el comando find, las opciones de palabra completa usan un solo guión y las
opciones siguen el argumento del nombre de la ruta, a diferencia de la mayoría de
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. Al usar comodines, es importante 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 palabra pass en cualquier parte de
sus nombres en host, 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 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, messages, en sus
nombres en el directorio / en host, ejecute el siguiente comando:
RH124-RHEL8.2-es-1-20200928 573
capítulo 15 | Acceso a los sistemas de archivos de Linux
-user y las opciones de -group se pueden usar juntas para buscar archivos donde el propietario
del archivo y el propietario del grupo son diferentes. En el siguiente ejemplo, se enumeran los
archivos que son propiedad del usuario root y afiliado al grupo mail.
574 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Se usa la opción -perm para buscar archivos con una serie de permisos particulares. Los permisos
se pueden describir como valores octales, con alguna combinación de 4, 2 y 1 para lectura,
escritura y ejecución. Los permisos deben estar precedidos por el signo / o el signo -.
Un permiso numérico precedido por / coincide con archivos que tengan al menos un bit de
usuario, grupo u otro, para esa serie de permisos. Un archivo con permisos r--r--r-- no
coincide con /222, pero uno con rw-r--r-- sí. Un signo menos - antes de un permiso significa
que las tres instancias de ese bit deben estar activadas; por lo tanto, ningún ejemplo anterior
coincidirá, pero algo como rw-rw-rw-> sí lo hará.
Para usar un ejemplo más complejo, el siguiente comando coincide con cualquier archivo para
el cual el usuario tiene permisos de lectura, escritura y ejecución, los miembros del grupo tienen
permisos de lectura y escritura, y los demás tienen acceso de solo lectura:
Para que coincidan los archivos para los cuales el usuario tiene al menos permisos de escritura
y ejecución, y el grupo tiene por lo menos permisos de lectura y los demás tienen por lo menos
acceso de lectura:
Para que coincidan los 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 acceso de lectura:
Cuando se usa con / o bien -, un valor de 0 funciona como un comodín, ya que significa un
permiso de por lo menos nada.
Para que coincida con cualquier archivo en el directorio /home/user para el cual los demás
tienen al menos acceso de lectura en el host, ejecute lo siguiente:
Encuentre todos los archivos en el directorio /home/user donde other tiene permisos de
escritura en el host.
• k, para kilobyte
• M, para megabyte
• G, para gigabyte
RH124-RHEL8.2-es-1-20200928 575
capítulo 15 | Acceso a los sistemas de archivos de Linux
Para enumerar todos los archivos con un tamaño menor que 10 kilobytes.
Importante
Los modificadores de la unidad de la opción -size redondean todo para arriba a
unidades enteras. 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 encontrar todos los archivos de los cuales se modificó su contenido hace 120 minutos en el
host, ejecute lo siguiente:
El modificador - cambia la búsqueda para buscar todos los archivos en el directorio / que han
sido modificados hace menos de n minutos. En este ejemplo, se enumeran los archivos que se
modificaron hace menos de 150 minutos.
576 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
La opción -links seguida de un número busca todos los archivos que tienen un determinado
conteo de enlaces duros. El número puede ser precedido por un modificador + para buscar
archivos con un conteo más alto que el conteo de enlaces duros dado. Si el número es precedido
por 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.
Busque todos los archivos regulares con más de un enlace físico en host:
Referencias
Páginas de manual locate(1), updatedb(8) y find(1)
RH124-RHEL8.2-es-1-20200928 577
capítulo 15 | Acceso a los sistemas de archivos de Linux
Ejercicio Guiado
Resultados
Deberá ser capaz de buscar archivos con los comandos find y locate.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como el usuario student.
578 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
3. Use el comando find a fin de realizar búsquedas en tiempo real en servera de acuerdo
con los siguientes requisitos:
• Busque todos los archivos en el directorio /var/lib que son propiedad del usuario
chrony.
• Enumere todos los archivos en el directorio /var que sean propiedad de root y el
propietario del grupo mail.
• Enumere todos los archivos en el directorio /usr/bin que tengan un tamaño superior a
50 KB.
• Busque todos los archivos en el directorio /home/student que no se hayan modificado
en los últimos 120 minutos.
• Enumere todos los archivos del dispositivo de bloque en el directorio /dev.
3.1. Use el comando find para buscar todos los archivos en el directorio /var/lib que
son propiedad del usuario chrony. Use el comando sudo dado que los archivos
dentro del directorio /var/lib son propiedad de root.
3.2. Enumere todos los archivos en el directorio /var que sean propiedad de root y que
estén afiliados al grupo mail.
3.3. Enumere todos los archivos en el directorio /usr/bin que tengan un tamaño
superior a 50 KB.
RH124-RHEL8.2-es-1-20200928 579
capítulo 15 | Acceso a los sistemas de archivos de Linux
3.5. Enumere todos los archivos del dispositivo de bloque en el directorio /dev.
4. Salga de servera.
Finalizar
En workstation, ejecute el script lab fs-locate finish para terminar este ejercicio.
580 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Evaluación
En workstation, ejecute el script lab fs-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
RH124-RHEL8.2-es-1-20200928 581
capítulo 15 | Acceso a los sistemas de archivos de Linux
Finalizar
En workstation, ejecute el script lab fs-review finish para terminar este ejercicio.
582 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1.1. Use el comando ssh para iniciar sesión en serverb como el usuario student.
[student@serverb ~]$ su -
Password: redhat
[root@serverb ~]#
1.3. Use el comando lsblk para determinar el UUID del dispositivo /dev/vdb1.
RH124-RHEL8.2-es-1-20200928 583
capítulo 15 | Acceso a los sistemas de archivos de Linux
1.5. Monte el dispositivo /dev/vdb1 mediante el uso del UUID en el directorio /mnt/
freespace.
2. Genere un informe de uso del disco del directorio /usr/share y guarde el resultado en el
archivo /mnt/freespace/results.txt.
3. Use el comando locate para buscar todos los archivos de configuración rsyslog.conf y
almacenar el resultado en el archivo /mnt/freespace/search1.txt.
3.1. Use el comando updatedb para actualizar la base de datos usada por locate.
5. Salga de serverb.
584 RH124-RHEL8.2-es-1-20200928
capítulo 15 | Acceso a los sistemas de archivos de Linux
Evaluación
En workstation, ejecute el script lab fs-review grade para confirmar que ha realizado
correctamente este trabajo de laboratorio.
Finalizar
En workstation, ejecute el script lab fs-review finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 585
capítulo 15 | Acceso a los sistemas de archivos de Linux
Resumen
En este capítulo, aprendió lo siguiente:
• 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 comando mount permite que el usuario root monte manualmente un sistema de archivos.
• Todos los procesos deben dejar de acceder al punto de montaje para desmontar correctamente
el dispositivo.
• El comando find realiza una búsqueda en tiempo real en los sistemas de archivos locales para
encontrar archivos en función de los criterios de búsqueda.
586 RH124-RHEL8.2-es-1-20200928
capítulo 16
RH124-RHEL8.2-es-1-20200928 587
capítulo 16 | Cómo analizar servidores y obtener soporte
Objetivos
Tras finalizar esta sección, deberá poder 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 navegador 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.
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:
588 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
De manera opcional, puede hacer clic en la opción Reuse my password for privileged tasks
(Volver a usar mi contraseña para tareas privilegiadas). Esto permite ejecutar comandos con
privilegios de sudo, lo que le permite realizar tareas como modificar la información del sistema o
configurar cuentas nuevas.
Si ha iniciado sesión como un usuario sin privilegios, el icono Privileged (Con privilegios) no se
muestra.
RH124-RHEL8.2-es-1-20200928 589
capítulo 16 | Cómo analizar servidores y obtener soporte
Cambio de contraseñas
Los usuarios con y sin privilegios pueden cambiar sus propias contraseñas mientras están
conectados a la consola web. Haga clic en Accounts (Cuentas) en la barra de navegación. Haga
clic en la etiqueta de su cuenta para abrir la página de detalles de la cuenta.
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 Set Password
(Configurar contraseña).
Ingrese su información en los campos Old Password (Contraseña anterior), New Password
(Contraseña nueva) y Confirm New Password (Confirmar contraseña nueva). Haga clic en Set
(Configurar) para activar la contraseña nueva.
590 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Haga clic en View graphs (Ver gráficos) en la página Overview (Descripción general) para ver
gráficos 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-RHEL8.2-es-1-20200928 591
capítulo 16 | Cómo analizar servidores y obtener soporte
Figura 16.8: Indicadores de rendimiento del sistema del usuario sin privilegios
592 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
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.
En el siguiente ejemplo, se muestran los detalles que se visualizan 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, el nombre de host del sistema que informó el
mensaje de registro, y más.
RH124-RHEL8.2-es-1-20200928 593
capítulo 16 | Cómo analizar servidores y obtener soporte
594 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Inicie sesión en la consola web como un usuario privilegiado. Haga clic en Diagnostic Reports
(Informes de diagnostico) en la barra de navegación para abrir la página que crea estos informes.
Haga clic en Create Report (Crear informe) para generar un nuevo informe de diagnóstico.
RH124-RHEL8.2-es-1-20200928 595
capítulo 16 | Cómo analizar servidores y obtener soporte
En la interfaz, se muestra Done! (Listo) cuando el informe está completo. Haga clic en Download
report (Descargar informe) para guardar el informe.
Haga clic en Save File (Guardar archivo) para guardar el archivo y completar el proceso.
596 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Seleccione la opción deseada en el menú en el extremo superior derecho para reiniciar o apagar
un sistema.
RH124-RHEL8.2-es-1-20200928 597
capítulo 16 | Cómo analizar servidores y obtener soporte
598 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Haga clic en Stop (Detener), Restart (Reiniciar) o Disallow running (mask) (No permitir
(máscara} en ejecución) según corresponda para administrar el servicio. En esta vista, el servicio
ya se está ejecutando. La información adicional relacionada con el servicio está disponible al
hacer clic en cualquiera de los enlaces seleccionados o al desplazarse a través de los registros de
servicio, que se muestran debajo de la sección de administración de servicios.
RH124-RHEL8.2-es-1-20200928 599
capítulo 16 | Cómo analizar servidores y obtener soporte
Haga clic en el nombre de la interfaz deseada 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.
600 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
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.10/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 seleccionado.
Haga clic en + en el lado derecho de la selección de lista Manual para agregar una dirección IP
adicional. Introduzca una dirección IP y una máscara de red en los campos correspondientes. Haga
clic en Apply (Aplicar) para activar la nueva configuración.
RH124-RHEL8.2-es-1-20200928 601
capítulo 16 | Cómo analizar servidores y obtener soporte
602 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
RH124-RHEL8.2-es-1-20200928 603
capítulo 16 | Cómo analizar servidores y obtener soporte
Referencias
Páginas del manual: cockpit(1), cockpit-ws(8) y cockpit.conf(5)
604 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Ejercicio Guiado
Resultados
Debe ser capaz de usar la consola web para monitorear las funciones básicas del sistema,
inspeccionar los archivos de registro, crear cuentas de usuario y acceder al terminal.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. Use el comando ssh para iniciar sesión en servera como usuario student. Los sistemas
se configuran para que usen claves SSH para la autenticación, por lo que no se necesita una
contraseña para iniciar sesión en servera.
[student@servera ~]$
2. La consola web ya está instalada en el sistema, pero no está activada. Habilite e inicie el
servicio cockpit.
RH124-RHEL8.2-es-1-20200928 605
capítulo 16 | Cómo analizar servidores y obtener soporte
4.1. Haga clic en Terminal en la barra de navegación izquierda para acceder al terminal.
Se abre una sesión de terminal con la sesión del usuario student ya iniciada. Use el
comando id para confirmar que la ejecución del comando funciona 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
4.4. En la esquina superior derecha, haga clic en Student User (Usuario student) →
Log Out (Cerrar sesión).
5.1. Vuelva a iniciar sesión en la interfaz de la consola web como el usuario student con
student como contraseña, pero esta vez seleccione la casilla Reuse my password
for privileged tasks (Volver a usar mi contraseña para tareas privilegiadas).
6. Para consultar las estadísticas del sistema, haga clic en Overview (Descripción general) en
la barra de navegación izquierda.
En esta página, se muestran varias de las estadísticas básicas 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 Logs (Registros) 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 gravedad de los registros.
606 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
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 del nombre
de interfaz de red.
En una página de detalles, se muestran las estadísticas de red en tiempo real y la
configuración actual de la interfaz de red.
8.4. En la ventana IPv4 Settings (Configuración de IPv4), haga clic en + junto a Manual.
8.6. En el cuadro de texto Prefix length or Netmask (Longitud del prefijo o máscara de
red), ingrese 24 como el valor de la máscara de red.
8.7. Haga clic en Apply (Aplicar) para guardar la nueva configuración de red.
Vale notar que la nueva configuración se aplica inmediatamente. La nueva dirección
IP es visible en la línea IPv4.
9.3. En la ventana Create New Account (Crear cuenta nueva), agregue los siguientes
detalles:
Campo Valor
Contraseña redh@t!23
RH124-RHEL8.2-es-1-20200928 607
capítulo 16 | Cómo analizar servidores y obtener soporte
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 manager1 al
grupo wheel.
10.4. Use el comando id manager1 para verificar que manager1 sea miembro del grupo
wheel.
11. Habilite e inicie el servicio Kernel process accounting (Contabilidad de procesos de kernel)
(psacct).
11.3. Haga clic en el botón Start and Enable (Iniciar y habilitar) junto al nombre del
servicio.
Finalizar
En workstation, ejecute el script lab support-cockpit finish para terminar este
ejercicio.
608 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
RH124-RHEL8.2-es-1-20200928 609
capítulo 16 | Cómo analizar servidores y obtener soporte
Objetivos
Tras finalizar esta sección, usted deberá poder describir los recursos clave disponibles en el portal
de clientes de Red Hat y usarlos para encontrar información en la documentación y la base de
conocimientos de Red Hat.
Hay algunas secciones del sitio de acceso público y otras áreas están solo disponibles para
clientes con suscripciones activas. Obtenga ayuda para acceder al portal de clientes en https://
access.redhat.com/help/.
El recorrido es una herramienta muy útil para descubrir todo lo que el portal tiene para ofrecer y la
manera de aprovechar al máximo su suscripción de Red Hat. Una vez que haya iniciado sesión en
el portal de clientes de Red Hat, haga clic en Tour the Customer Portal (Recorrido del portal de
clientes).
610 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Subscriptions (Suscripciones) abre una página nueva donde puede administrar los sistemas
registrados y el uso de suscripciones y derechos. Enumera información sobre las erratas que se
aplican y le permite crear claves de activación que puede usar al registrar sistemas para garantizar
que obtengan los derechos de las suscripciones correctas. Tenga en cuenta que si usted es parte
de una organización, el administrador de su organización puede limitar su acceso a esta página.
Downloads (Descargas) abre una página nueva que le permite acceder a las descargas de
productos y solicitar derechos de evaluación para productos para los que no tiene derechos.
Support Cases (Casos de soporte) abre una página nueva que brinda acceso para crear, rastrear
y administrar los casos de soporte a través del sistema de administración de casos, suponiendo
que su organización ha autorizado ese nivel de acceso.
Su nombre es el título de User Menu (Menú del usuario), que le permite administrar su cuenta,
las cuentas para las que es administrador de la organización, su perfil personal y las opciones de
notificaciones por correo electrónico de contenido nuevo que está disponible.
El icono de globo terráqueo abre el menú Select Your Language (Elija su idioma) para
especificar sus preferencias de idioma para el portal de clientes.
Menús de temas
Debajo de la barra de navegación superior en la página principal del portal de clientes hay menús
que puede usar para navegar a las cuatro categorías principales de recursos disponibles en el sitio.
Products & Services (Productos y servicios) proporciona acceso a Product Hubs (Centros de
productos), páginas que proporcionan acceso a evaluaciones, resúmenes, guías de inicio y otra
información de soporte específica para el producto. También puede acceder a la documentación
para productos de Red Hat, vínculos directos a la base de conocimientos de artículos de soporte, e
información sobre políticas de soporte y cómo ponerse en contacto con el soporte de Red Hat.
RH124-RHEL8.2-es-1-20200928 611
capítulo 16 | Cómo analizar servidores y obtener soporte
El menú Tools (Herramientas) proporciona vínculos a herramientas para ayudarlo a tener éxito
con los productos de Red Hat. La sección Solution Engine (Motor de soluciones) proporciona
una manera eficiente de buscar soluciones a sus problemas rápidamente, por producto, y de
abrir un ticket de soporte si no encuentra una solución satisfactoria. La sección Customer Portal
Labs (Trabajos de laboratorio del portal de clientes) 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. Por ejemplo, Product Life Cycle Checker
(Comprobador del ciclo de vida del producto) permite seleccionar un producto en particular y ver
su programa de ciclo de vida de soporte. Otra herramienta, Rescue Mode Assistant (Asistente de
modo de rescate), ayuda a restablecer la contraseña de root de un sistema, generar informes de
diagnóstico o corregir problemas de arranque con los sistemas de archivos. Pero hay muchas otras
herramientas disponibles en ese sitio.
Finalmente, la sección Community (Comunidad) permite que los expertos, clientes y partners de
Red Hat se comuniquen y colaboren. Aquí encontrará foros de debate, blogs e información sobre
los próximos eventos en su zona.
612 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
nota
Debe completar todo el recorrido en Iniciación con Red Hat [https://
access.redhat.com/start], incluidas las secciones sobre cómo personalizar su
experiencia en el portal de clientes y explorar los beneficios de su suscripción de
Red Hat, para obtener toda la información sobre el portal de clientes. Necesitará al
menos una suscripción activa en su cuenta del portal de clientes para acceder a esta
página.
RH124-RHEL8.2-es-1-20200928 613
capítulo 16 | Cómo analizar servidores y obtener soporte
Type the number of the solution to view or 'e' to return to the previous menu.
1 [ 253273:VER] How to register and subscribe a system to the Red Hat Customer
Portal using Red Hat Subscription-Manager
2 [ 265523:VER] Enabling or disabling a repository using Red Hat Subscription
Management
3 [ 100423:VER] Why does subscription-manager list return: "No Installed
Products found" ?
...output omitted...
Select a Solution: 1
Seleccione el artículo número 1 como se indica arriba y se le solicitará que seleccione la sección del
documento para leer. Finalmente, use la tecla Q para salir de la sección en la que se encuentra o
úsela repetidamente para salir del comando redhat-support-tool.
Select a Solution: 1
Type the number of the section to view or 'e' to return to the previous menu.
1 Title
2 Issue
3 Environment
4 Resolution
5 Display all sections
End of options.
Section: 1
Title
===============================================================================
How to register and subscribe a system to the Red Hat Customer Portal using Red
Hat Subscription-Manager
URL: https://access.redhat.com/solutions/253273
Created On: None
Modified On: 2017-11-29T15:33:51Z
(END) q
Section:
Section: q
Select a Solution: q
614 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Title
===============================================================================
How to register and subscribe a system to the Red Hat Customer Portal using Red
Hat Subscription-Manager
URL: https://access.redhat.com/solutions/253273
Created On: None
Modified On: 2017-11-29T15:33:51Z
Issue
===============================================================================
* How to register a new `Red Hat Enterprise Linux` system to the Customer Portal
using `Red Hat Subscription-Manager`
...output omitted...
Defina el problema. Indique el problema y los síntomas con claridad. Sea lo más específico posible.
Detalle los pasos que reproducirían el problema.
Reúna información básica. ¿Qué producto y versión se ven afectados? Esté preparado para brindar
información de diagnóstico relevante. que puede incluir la salida de sosreport, que se abordará
posteriormente en esta sección. En el caso de problemas del kernel, dicha información podría
incluir un vuelco de errores de kdump del sistema o una fotografía digital del seguimiento de kernel
mostrado en el monitor de un sistema bloqueado.
Determine el nivel de gravedad. Red Hat utiliza niveles de gravedad para clasificar problemas.
Los informes de problemas de gravedad Urgent (Urgente) y High (Alta) debe seguirse
RH124-RHEL8.2-es-1-20200928 615
capítulo 16 | Cómo analizar servidores y obtener soporte
mediante una llamada telefónica al centro de asistencia local pertinente (consulte https://
access.redhat.com/site/support/contact/technicalSupport).
Gravedad Descripción
Los detalles del caso, como producto, versión, resumen, descripción, gravedad y grupo de
caso, pueden asignarse con opciones de comandos o si se deja la solicitud de la herramienta de
información necesaria. En el siguiente ejemplo, se abre un caso nuevo. Se especifican las opciones
--product y --version.
616 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Please attach a SoS report to support case 01034421. Create a SoS report as
the root user and execute the following command to attach the SoS report
directly to the case:
redhat-support-tool addattachment -c 01034421 path to sosreport
Si no existe un informe de SoS actual, un administrador puede generar y adjuntar uno más tarde.
Use el comando redhat-support-tool addattachment para adjuntar el informe.
RH124-RHEL8.2-es-1-20200928 617
capítulo 16 | Cómo analizar servidores y obtener soporte
Type the number of the case to view or 'e' to return to the previous menu.
1 [Waiting on Red Hat] System fails to run without power
No more cases to display
Select a Case: 1
Type the number of the section to view or 'e' to return to the previous menu.
1 Case Details
2 Modify Case
3 Description
4 Recommendations
5 Get Attachment
6 Add Attachment
7 Add Comment
End of options.
Option: q
Select a Case: q
La herramienta Red Hat Support Tool cuenta con capacidades avanzadas de análisis y diagnóstico
de aplicaciones. Mediante el uso de archivos core (principales) de volcado de memoria tras fallas
del kernel, redhat-support-tool puede crear y extraer un seguimiento de pila. Un seguimiento
de pila es un informe de los marcos de pila (stack) activos en el punto de un volcado de memoria
tras falla y proporciona diagnósticos en las instalaciones. Una de las opciones de redhat-
support-tool es abrir un caso de soporte.
La herramienta también proporciona análisis de archivo de registro. Mediante el uso del comando
analyze de la herramienta, los archivos de registro de muchos tipos, como de sistema operativo,
JBoss, Python, Tomcat y oVirt, pueden analizarse para reconocer síntomas de problemas.
Los archivos de registro se pueden ver y diagnosticar individualmente. Proporcionar análisis
preprocesado, en oposición a datos sin procesar, como archivos de registro o vuelcos de errores,
permite que se abran los casos de asistencia y que se pongan a disposición de ingenieros más
rápidamente.
618 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Referencias
Página del manual: sosreport(1)
RH124-RHEL8.2-es-1-20200928 619
capítulo 16 | Cómo analizar servidores y obtener soporte
Ejercicio Guiado
Resultados
Deberá ser capaz de generar un informe de diagnóstico con la consola web que podría
enviarse al portal de clientes de Red Hat como parte de un caso de soporte.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
1. En workstation, use el comando ssh para iniciar sesión en servera con el usuario
student.
2. Use el comando systemctl para confirmar que el servicio cockpit se está ejecutando.
Introduzca student como contraseña cuando se le solicite.
620 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
4.3. Inicie sesión como el usuario root con redhat como contraseña. Ya ha iniciado
sesión como usuario privilegiado, lo cual es necesario para crear un informe de
diagnóstico.
5. Cuando el informe esté listo, haga clic en Download report (Descargar informe). Guarde
el archivo.
5.1. Haga clic en el botón Download report (Descargar informe) y, luego, en el botón
Save File (Guardar archivo).
Finalizar
En workstation, ejecute el script lab support-portal finish para terminar este ejercicio.
RH124-RHEL8.2-es-1-20200928 621
capítulo 16 | Cómo analizar servidores y obtener soporte
Objetivos
Después de completar esta sección, deberá ser capaz de usar Red Hat Insights para analizar los
servidores en busca de problemas, corregirlos o resolverlos, y confirmar que la solución funcionó.
Red Hat actualiza regularmente la base de conocimientos usada por Insights, en conformidad con
los riesgos de soporte comunes, las vulnerabilidades de seguridad, las configuraciones erróneas
conocidas y otros problemas identificados por Red Hat. Las acciones para mitigar o remediar
estos problemas son validadas y verificadas por Red Hat. Este soporte permite identificar, priorizar
y resolver proactivamente los problemas antes de que se conviertan en un problema mayor.
Para cada problema detectado, Insights proporciona estimaciones del riesgo presentado y
recomendaciones sobre cómo mitigar o remediar el problema. Estas recomendaciones pueden
proporcionar materiales, como Ansible Playbooks o instrucciones detalladas y legibles por
humanos para ayudarle a resolver el problema.
Insights adapta las recomendaciones a cada sistema registrado en el servicio. Cada sistema cliente
se instala con un agente que recopila metadatos sobre la configuración de tiempo de ejecución
del sistema. Estos datos son un subconjunto de lo que podría proporcionar a Red Hat Support con
el comando sosreport para resolver un ticket de soporte. Puede limitar u ocultar los datos que
envían sus clientes. Esto impide el funcionamiento de algunas de las reglas analíticas, en función
de lo que usted limite.
622 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Cuando la información recibe los datos, los analiza y muestra el resultado en la consola web de
Insights en https://cloud.redhat.com/insights.
Importante
El paquete insights-client reemplaza el paquete redhat-access-insights que se inicia
con Red Hat Enterprise Linux 7.5.
Si su sistema está registrado para obtener derechos de software a través del servicio de
administración de suscripciones del portal de clientes, puede activar Insights con un comando. Use
el comando insights-client --register para registrar el sistema.
RH124-RHEL8.2-es-1-20200928 623
capítulo 16 | Cómo analizar servidores y obtener soporte
nota
Este paso no es necesario en sistemas Red Hat Enterprise Linux 8.
• Confirme que el sistema esté visible en Inventory (Inventario) en la consola web de Insights en
https://cloud.redhat.com/insights.
624 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Para cada problema, Insights proporciona información adicional para ayudarlo a comprender
el problema, priorizar las tareas para resolverlo, determinar qué mitigación o corrección está
disponible y automatizar su resolución con Ansible Playbook. Insights también proporciona enlaces
a artículos de la base de conocimiento en el Portal de clientes.
RH124-RHEL8.2-es-1-20200928 625
capítulo 16 | Cómo analizar servidores y obtener soporte
Riesgo total
Indica el impacto del problema en su sistema.
Riesgo de cambio
Indica el impacto de la acción de corrección en su sistema. Por ejemplo, es posible que deba
reiniciar el sistema.
626 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Para cada CVE, Insights proporciona información adicional y enumera los sistemas expuestos.
Puede hacer clic en Remediate (Corregir) para crear una Ansible Playbook para la corrección.
RH124-RHEL8.2-es-1-20200928 627
capítulo 16 | Cómo analizar servidores y obtener soporte
628 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
En la captura de pantalla anterior, Insights compara el mismo sistema en dos momentos diferentes.
RH124-RHEL8.2-es-1-20200928 629
capítulo 16 | Cómo analizar servidores y obtener 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 de manual insights-client(8) y insights-client.conf(5)
Para obtener más información sobre la exclusión de datos recopilados por Insights,
consulte los capítulos Ocultamiento de datos de cliente de Red Hat Insights y
Redacción de datos de cliente de Red Hat Insights en la Guía de configuración de
clientes para Red Hat Insights en
https://access.redhat.com/documentation/en-us/red_hat_insights/2020-04/html-
single/client_configuration_guide_for_red_hat_insights/index
Hay información disponible sobre los datos recopilados por Red Hat Insights en
Información del sistema recopilada por Red Hat Insights
https://access.redhat.com/articles/1598863
630 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Cuestionario
1. ¿En qué orden ocurren los siguientes eventos cuando se administra un sistema de
Red Hat Enterprise Linux con Red Hat Insights?
1. Red Hat Insights analiza los metadatos del sistema para determinar qué problemas y
recomendaciones se aplican.
2. El cliente de Insights carga los metadatos del sistema al servicio de Red Hat Insights.
3. El administrador ve las acciones recomendadas en el portal de clientes de Red Hat
Insights.
4. El cliente de Insights recopila metadatos del sistema en el sistema Red Hat Enterprise
Linux.
a. 1, 2, 3, 4
b. 4, 2, 1, 3
c. 4, 2, 3, 1
d. 4, 1, 2, 3
3. ¿Desde qué página de la consola de Red Hat Insights puede generar una Ansible
Playbook para actualizar los paquetes RPM en un sistema?
a. Advisor (Asesor) → Recommendations (Recomendaciones)
b. Vulnerability (Vulnerabilidad) → Systems (Sistemas)
c. Patch (Parche) → Systems (Sistemas)
d. Remediations (Remediaciones)
RH124-RHEL8.2-es-1-20200928 631
capítulo 16 | Cómo analizar servidores y obtener soporte
Solución
1. ¿En qué orden ocurren los siguientes eventos cuando se administra un sistema de
Red Hat Enterprise Linux con Red Hat Insights?
1. Red Hat Insights analiza los metadatos del sistema para determinar qué problemas y
recomendaciones se aplican.
2. El cliente de Insights carga los metadatos del sistema al servicio de Red Hat Insights.
3. El administrador ve las acciones recomendadas en el portal de clientes de Red Hat
Insights.
4. El cliente de Insights recopila metadatos del sistema en el sistema Red Hat Enterprise
Linux.
a. 1, 2, 3, 4
b. 4, 2, 1, 3
c. 4, 2, 3, 1
d. 4, 1, 2, 3
3. ¿Desde qué página de la consola de Red Hat Insights puede generar una Ansible
Playbook para actualizar los paquetes RPM en un sistema?
a. Advisor (Asesor) → Recommendations (Recomendaciones)
b. Vulnerability (Vulnerabilidad) → Systems (Sistemas)
c. Patch (Parche) → Systems (Sistemas)
d. Remediations (Remediaciones)
632 RH124-RHEL8.2-es-1-20200928
capítulo 16 | Cómo analizar servidores y obtener soporte
Resumen
En este capítulo, aprendió lo siguiente:
• La consola web proporciona gráficos del rendimiento del sistema, herramientas gráficas para
administrar 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.
RH124-RHEL8.2-es-1-20200928 633
634 RH124-RHEL8.2-es-1-20200928
capítulo 17
Revisión completa
Meta Revisar tareas de Red Hat System Administration I .
RH124-RHEL8.2-es-1-20200928 635
capítulo 17 | Revisión completa
Revisión completa
Objetivos
Tras finalizar esta sección, los estudiantes deberán haber revisado y actualizado las habilidades y
los conocimientos aprendidos en Red Hat System Administration I.
Los estudiantes pueden consultar las secciones anteriores en el libro de textos para lecturas
complementarias.
• Definir y explicar el propósito de Linux, el código abierto, las distribuciones de Linux y Red Hat
Enterprise Linux.
• Iniciar sesión en el sistema Linux en una consola de texto local y ejecutar comandos simples
mediante la shell.
• Ahorrar tiempo al usar Autocompletado con tab, el historial de comandos y los métodos
abreviados de edición de comandos para ejecutar comandos en la shell Bash.
• Describir cómo Linux organiza los archivos y los propósitos de diversos directorios en la
jerarquía del sistema de archivos.
• Especificar la ubicación de los archivos en relación con el directorio de trabajo actual y por
ubicación absoluta, determinar y cambiar su directorio de trabajo, y hacer una lista del contenido
de los directorios.
• Hacer que varios nombres de archivo hagan referencia 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.
636 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Guardar la salida de comando 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 las tuberías.
• Usar 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.
• 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 nuevos archivos creados por los usuarios,
explicar el efecto de los permisos especiales y usar permisos especiales y permisos
predeterminados para configurar el propietario del grupo de archivos creados en un directorio
en particular.
• Obtener información sobre los programas que se ejecutan en el sistema para poder determinar
el estado, el uso de los recursos y la propiedad para poder controlarlos.
RH124-RHEL8.2-es-1-20200928 637
capítulo 17 | Revisión completa
• Usar el control de trabajo Bash para gestionar múltiples procesos iniciados desde la misma
sesión de terminal.
• Controlar y finalizar los procesos que no están asociados con su shell y forzar la finalización de
las sesiones y los procesos de los usuarios.
• Describir qué es el promedio de carga y determinar los procesos responsables del alto uso de
recursos en un servidor.
• Enumerar daemons del sistema y los servicios de red iniciados por el servicio systemd y las
unidades socket.
• Controlar los daemons del sistema y los servicios de red con systemctl.
• Configurar la autenticación basada en claves para que una cuenta de usuario inicie sesión en
sistemas remotos de forma segura y sin una contraseña.
• Restringir los inicios de sesión directos como root y deshabilitar la autenticación basada en
contraseñas para el servicio OpenSSH.
• Describir la arquitectura básica de registro que emplea Red Hat Enterprise Linux para registrar
eventos
• Interpretar eventos en archivos syslog relevantes a los fines de resolver problemas o revisar el
estado del sistema
• Buscar e interpretar entradas en el diario del sistema para resolver problemas o revisar el estado
del sistema
• Configurar el diario del sistema para resguardar el registro de eventos cuando se reinicia un
servidor
• Mantener una sincronización de hora precisa por medio de NTP y configurar la zona horaria para
garantizar marcas de tiempo correctas para los eventos registrados por el diario y los registros
del sistema
• Probar e inspeccionar la configuración de red actual con las utilidades de la línea de comando
638 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
• Configurar el nombre de host estático del servidor y su resolución de nombre, y probar los
resultados
• Archivar archivos y directorios en un archivo comprimido con tar, y extraer el contenido de una
colección de archivos tar existente.
• Transferir archivos desde o hacia un sistema remoto de forma segura con SSH.
• Sincronizar el contenido de un archivo o directorio local con una copia en un servidor remoto.
• Registrar un sistema para su cuenta de Red Hat y asignarle autorizaciones para actualizaciones
de software y servicios de soporte mediante Red Hat Suscription Management.
• Explicar cómo se proporciona el software como paquetes de RPM y revisar los paquetes
instalados en el sistema con Yum y RPM.
• Habilitar y deshabilitar el uso de repositorios Yum de terceros o de Red Hat por parte de un
servidor.
• Buscar archivos en sistemas de archivos montados con los comandos find y locate.
RH124-RHEL8.2-es-1-20200928 639
capítulo 17 | Revisión completa
• Describir los recursos clave disponibles en el portal de clientes de Red Hat y encontrar
información en la documentación y la base de conocimientos de Red Hat.
640 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Visualizar un cierto número de líneas de archivos de texto y redirigir la salida a otro archivo.
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora. Espere a que
los sistemas workstation, servera y serverb se inicien.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
RH124-RHEL8.2-es-1-20200928 641
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review1 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review1 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
642 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Visualizar un cierto número de líneas de archivos de texto y redirigir la salida a otro archivo.
Andes De Comenzar
Copie los archivos o el trabajo que desee preservar en otros sistemas antes de restablecer el
sistema. Restablezca los sistemas workstation, servera y serverb ahora. Espere a que
los sistemas workstation, servera y serverb se inicien.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
RH124-RHEL8.2-es-1-20200928 643
capítulo 17 | Revisión completa
1.1. Desde workstation, abra una sesión de SSH en serverb como student.
Cuando ejecutó el comando anterior desde el directorio de inicio del usuario student,
no especificó la ruta absoluta al directorio grading mientras lo creaba.
2.1. Use el comando touch para crear los archivos vacíos denominados grade1, grade2
y grade3 en el directorio /home/student/grading. Aplique la función de shell de
expansión de llaves para crear los tres archivos con un solo comando touch.
2.2. Use el comando ls para verificar que los archivos grade1, grade2 y grade3 existan
en el directorio /home/student/grading.
3.1. Use el comando head para ver las primeras cinco líneas del archivo /home/student/
bin/manage-files y redirija la salida al archivo /home/student/grading/
manage-files.txt.
644 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
El comando anterior usa el símbolo simple de redirección (>) para guardar la salida
del comando en /home/student/grading/manage-files.txt para que se
sobrescriba todo el contenido existente en el archivo.
Test AA
Test BB
Test CC
Test DD
Test EE
4.1. Use el comando tail para ver las primeras tres líneas del archivo /home/student/
bin/manage-files y anexe la salida a /home/student/grading/manage-
files.txt.
El comando anterior usa el símbolo doble de redirección (>>) para anexar la salida a /
home/student/grading/manage-files.txt para que se conserve el contenido
existente del archivo.
Test AA
Test BB
Test CC
Test DD
Test EE
Test HH
Test II
Test JJ
RH124-RHEL8.2-es-1-20200928 645
capítulo 17 | Revisión completa
[student@serverb grading]$ cd
[student@serverb ~]$
6.2. Desde el modo de comandos en vim, desplácese hacia abajo hasta la línea que
contenga la línea de texto Test JJ (Prueba JJ). Presione dos veces la tecla y en el
teclado 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/manage-files-copy.txt contenga el siguiente texto.
Test AA
Test BB
Test CC
Test DD
Test EE
Test HH
Test II
Test JJ
Test JJ
Tenga en cuenta que el contenido anterior incluye dos copias de la línea de texto Test
JJ (Prueba JJ).
7.2. Desde el modo de comandos en vim, desplácese hacia abajo hasta la línea que
contenga la línea de texto Test HH (Prueba 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/manage-files-
copy.txt contenga el siguiente texto.
646 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Test AA
Test BB
Test CC
Test DD
Test EE
Test II
Test JJ
Test JJ
8.2. Desde el modo de comandos en vim, desplácese hacia abajo hasta la línea que
contenga la línea de texto Test CC (Prueba CC). Presione la tecla i en el teclado para
cambiar al modo de inserción mientras mantiene el cursor al principio de la línea de
texto Test CC (Prueba CC). En el modo de inserción, presione la tecla Intro en el
teclado 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 (Una nueva linea). Presione la
tecla Esc en el teclado para volver al modo de comandos. Escriba :wq para guardar los
cambios y salir de vim. Verifique que el archivo /home/student/grading/manage-
files-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
Tenga en cuenta que el contenido anterior incluye la línea de texto A new line (Una
nueva línea).
RH124-RHEL8.2-es-1-20200928 647
capítulo 17 | Revisión completa
9.2. Use el comando ls -l para ver el conteo de enlaces del archivo /home/student/
grading/grade1.
10.2. Use el comando ls -l para ver las propiedades del enlace blando /home/student/
softlink.
11. 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.
11.1. Use el comando ls -l para ver el contenido del directorio /boot en el formato
de “listado largo” y redirija la salida al archivo /home/student/grading/
longlisting.txt.
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review1 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review1 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
648 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
RH124-RHEL8.2-es-1-20200928 649
capítulo 17 | Revisión completa
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• Cree un nuevo usuario denominado dbuser1 que use el grupo database como uno de
sus grupos secundarios. La contraseña inicial de dbuser1 debe establecerse en redhat.
Configure el usuario dbuser1 para forzar un cambio de contraseña en su primer inicio de
sesión. El usuario dbuser1 debe ser capaz de cambiar su contraseña después de 10 días
desde el día del cambio de contraseña. La contraseña de dbuser1 debe vencer a los 30
días del último día del cambio de contraseña.
• Configure el usuario dbuser1 para que use sudo para ejecutar cualquier comando como
el superusuario.
650 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review2 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review2 finish para completar la revisión
completa. Este script cierra el proceso y elimina los archivos y directorios creados durante el inicio
de la revisión completa, y garantiza que el entorno de serverb esté limpio.
RH124-RHEL8.2-es-1-20200928 651
capítulo 17 | Revisión completa
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• Cree un nuevo usuario denominado dbuser1 que use el grupo database como uno de
sus grupos secundarios. La contraseña inicial de dbuser1 debe establecerse en redhat.
Configure el usuario dbuser1 para forzar un cambio de contraseña en su primer inicio de
sesión. El usuario dbuser1 debe ser capaz de cambiar su contraseña después de 10 días
desde el día del cambio de contraseña. La contraseña de dbuser1 debe vencer a los 30
días del último día del cambio de contraseña.
• Configure el usuario dbuser1 para que use sudo para ejecutar cualquier comando como
el superusuario.
652 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
1.1. Desde workstation, abra una sesión de SSH en serverb como student.
1.2. Use el comando top para ver el estado del sistema en tiempo real.
1.3. Desde la interfaz interactiva de 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...
Observe el proceso dd con el PID 2303 en la salida anterior, que consume la mayoría
de los recursos de CPU, un 99,7 %. El PID y el porcentaje de consumo de recursos de
CPU pueden variar en su sistema.
1.4. Desde la interfaz interactiva de top, escriba k para cerrar el proceso dd con PID 2303,
según lo determinado en el paso anterior. Si el PID predeterminado que se muestra
en el prompt coincide con el del proceso que consume la mayoría de los recursos de
CPU, presione la tecla Intro en el teclado. Si 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...
1.6. Desde la interfaz interactiva, presione la tecla q en el teclado para salir de top.
2.2. Use el comando groupadd para crear un grupo nuevo denominado database con el
GID 50000.
RH124-RHEL8.2-es-1-20200928 653
capítulo 17 | Revisión completa
3. Cree un nuevo usuario denominado dbuser1 con el grupo database como uno de sus
grupos secundarios. Establezca la contraseña inicial de dbuser1 en redhat. Configure
el usuario dbuser1 para forzar un cambio de contraseña en su primer inicio de sesión. El
usuario dbuser1 debe ser capaz de cambiar su contraseña después de 10 días del último
cambio de contraseña. La contraseña de dbuser1 debe vencer a los 30 días del último día
del cambio de contraseña.
3.1. Use el comando useradd para crear un nuevo usuario denominado dbuser1 que use
el grupo database como uno de sus grupos secundarios.
3.3. Use el comando chage para forzar a dbuser1 a que cambie de contraseña en el
primer inicio de sesión.
4.1.
654 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
6.3. Use el comando chmod para aplicar el permiso especial SetGID en /home/student/
grading/review2.
6.4. Use el comando chmod para aplicar el modo de permiso 775 en /home/student/
grading/review2.
6.5. Use el comando chmod para aplicar el permiso especial stickybit en /home/student/
grading/review2.
RH124-RHEL8.2-es-1-20200928 655
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review2 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review2 finish para completar la revisión
completa. Este script cierra el proceso y elimina los archivos y directorios creados durante el inicio
de la revisión completa, y garantiza que el entorno de serverb esté limpio.
656 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Configuración y administración de un
servidor
En esta revisión, configurará, protegerá y usará el servicio SSH para acceder a la máquina
remota, configurar el servicio rsyslog, archivar archivos locales, transferir archivos locales a
una máquina remota y administrar paquetes con yum.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• Genere claves de SSH para el usuario student en serverb. No proteja la clave privada
con una frase de contraseña. Los archivos de clave privada y pública deben denominarse
/home/student/.ssh/review3_key y /home/student/.ssh/review3_key.pub,
respectivamente.
• En serverb, configure el servicio sshd para evitar que los usuarios inicien sesión como
root por SSH.
• 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.
RH124-RHEL8.2-es-1-20200928 657
capítulo 17 | Revisión completa
• Habilite el flujo de módulo predeterminado para el módulo python36 e instale todos los
paquetes provistos por ese flujo en serverb.
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review3 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review3 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
658 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Configuración y administración de un
servidor
En esta revisión, configurará, protegerá y usará el servicio SSH para acceder a la máquina
remota, configurar el servicio rsyslog, archivar archivos locales, transferir archivos locales a
una máquina remota y administrar paquetes con yum.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• Genere claves de SSH para el usuario student en serverb. No proteja la clave privada
con una frase de contraseña. Los archivos de clave privada y pública deben denominarse
/home/student/.ssh/review3_key y /home/student/.ssh/review3_key.pub,
respectivamente.
• En serverb, configure el servicio sshd para evitar que los usuarios inicien sesión como
root por SSH.
• 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.
RH124-RHEL8.2-es-1-20200928 659
capítulo 17 | Revisión completa
• Habilite el flujo de módulo predeterminado para el módulo python36 e instale todos los
paquetes provistos por ese flujo en serverb.
1. Genere claves de SSH para el usuario student en serverb. No proteja la clave privada
con una frase de contraseña. Los archivos de clave privada y pública deben denominarse
/home/student/.ssh/review3_key y /home/student/.ssh/review3_key.pub,
respectivamente.
1.1. Desde workstation, abra una sesión de SSH en serverb como student.
1.2. Use el comando ssh-keygen para generar las claves SSH para el usuario student.
660 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
2. En servera, configure el usuario student para aceptar inicios de sesión autenticados por
el par de claves SSH que creó para el usuario student en serverb. El usuario student en
serverb debe ser capaz de iniciar sesión en servera con SSH sin ingresar una contraseña.
2.2. Use el comando ssh para confirmar que puede iniciar sesión en servera desde
serverb como student con la clave privada SSH /home/student/.ssh/
review3_key sin que se le solicite la contraseña.
3. En serverb, configure el servicio sshd para evitar que los usuarios inicien sesión como
root con SSH.
4. 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 su
clave privada del par de claves SSH.
RH124-RHEL8.2-es-1-20200928 661
capítulo 17 | Revisión completa
5.1. Use el comando sudo tar para crear una colección de archivos denominada /tmp/
log.tar con el contenido de /var/log como el superusuario.
*.debug /var/log/grading-debug
6.3. Use el comando logger para generar el mensaje de registro Debug Testing
(Pruebas de depuración) con la prioridad debug.
6.4. Confirme que el mensaje de registro Debug Testing se guarde en el archivo /var/
log/grading-debug.
7. Use el comando sudo yum para instalar el paquete zsh, disponible en el repositorio de
BaseOS, en serverb.
662 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
7.1.
8. Use el comando yum para habilitar el flujo de módulo predeterminado para el módulo
python36 e instale todos los paquetes provistos por ese flujo en serverb.
8.1.
Complete!
9.1. Use el comando sudo timedatectl para establecer la zona horaria de serverb en
Asia/Kolkata.
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review3 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review3 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
RH124-RHEL8.2-es-1-20200928 663
capítulo 17 | Revisión completa
664 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Trabajo de laboratorio
Administración de redes
En esta revisión, configurará y probará la conectividad de red.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Usar nombres de host canónicos que se puedan resolver localmente para conectarse a los
sistemas.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
Advertencia
Es una práctica útil realizar cambios en la red desde la consola del servidor,
ya sea localmente o a través del hardware de acceso a la consola remota.
Cuando usa ssh para ajustar la configuración de red, un comando erróneo
puede bloquear o bloquear su sesión. Las correcciones de configuración de la
red se deben hacer a través de la consola.
• En serverb, cree un nuevo perfil de conexión llamado static para la interfaz Ethernet
disponible que establece de forma estática la configuración de red y no usa DHCP. Use la
configuración en la siguiente tabla.
RH124-RHEL8.2-es-1-20200928 665
capítulo 17 | Revisión completa
Configure la interfaz Ethernet del servidor para usar la configuración de red actualizada
que se muestra en la tabla anterior.
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review4 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review4 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
666 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Solución
Administración de redes
En esta revisión, configurará y probará la conectividad de red.
Resultados
Usted deberá ser capaz de realizar lo siguiente:
• Usar nombres de host canónicos que se puedan resolver localmente para conectarse a los
sistemas.
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
Advertencia
Es una práctica útil realizar cambios en la red desde la consola del servidor,
ya sea localmente o a través del hardware de acceso a la consola remota.
Cuando usa ssh para ajustar la configuración de red, un comando erróneo
puede bloquear o bloquear su sesión. Las correcciones de configuración de la
red se deben hacer a través de la consola.
• En serverb, cree un nuevo perfil de conexión llamado static para la interfaz Ethernet
disponible que establece de forma estática la configuración de red y no usa DHCP. Use la
configuración en la siguiente tabla.
RH124-RHEL8.2-es-1-20200928 667
capítulo 17 | Revisión completa
Configure la interfaz Ethernet del servidor para usar la configuración de red actualizada
que se muestra en la tabla anterior.
1.1. En la página web que controla su entorno de laboratorio, haga clic en el botón OPEN
CONSOLE para serverb. Se abrirá una pestaña en su navegador con la sesión de
consola para serverb. Inicie sesión como el usuario student en el prompt.
Es una práctica útil realizar cambios en la red desde la consola del servidor, ya sea
localmente o a través del hardware de acceso a la consola remota. Cuando usa ssh
para ajustar la configuración de red, un comando erróneo puede bloquear o bloquear
su sesión. Las correcciones de configuración de la red se deben hacer a través de la
consola.
2.1. En este ejemplo, enX es el nombre de la interfaz de Ethernet. El nombre del perfil de
conexión es Wired connection 1 (Conexión por cable 1). Cree el perfil de conexión
static (estático) para esta conexión.
2.2. Los nombres de la interfaz de red y del perfil de conexión inicial pueden diferir en su
serverb. Utilice el nombre que se muestra en su sistema para reemplazar el nombre
del marcador de posición enX en los pasos de esta solución.
3. En serverb, cree un nuevo perfil de conexión llamado static (estático) para la interfaz
Ethernet disponible. Establezca la configuración de red de forma estática para que no use
DHCP. Base la configuración en la siguiente tabla:
668 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
La interfaz Ethernet del servidor serverb debe usar la configuración de red actualizada,
como se menciona en la tabla anterior.
3.1. Use nmcli para crear la conexión static (estático) con la configuración de red dada.
[student@serverb ~]$ sudo nmcli connection add con-name static type ethernet \
ifname enX ipv4.addresses '172.25.250.111/24' ipv4.gateway '172.25.250.254' \
ipv4.dns '172.25.250.254' ipv4.method manual
[sudo] password for student: student
Connection 'static' (ac8620e6-b77e-499f-9931-118b8b015807) successfully added.
4. Utilice el comando hostnamectl para establecer el nombre del host serverb en server-
review4.lab4.example.com. Verifique el nuevo nombre de host.
4.1.
5.1. Edite el archivo /etc/hosts para agregar client-review4 como un nombre para la
dirección IPv4 172.25.250.10.
5.2. Use el comando ping para verificar que pueda conectarse a 172.25.250.10 con el
nombre de host canónico client-review4.
RH124-RHEL8.2-es-1-20200928 669
capítulo 17 | Revisión completa
6. Modifique el perfil de conexión static (estático) para configurar la dirección IPv4 adicional
172.25.250.211 con la máscara de red 255.255.255.0 en la misma interfaz de serverb
que tiene la configuración de red estática existente. No elimine la dirección IPv4 existente.
Verifique que serverb responde a todas las direcciones cuando el perfil de conexión
modificado está activo.
6.3. Desde workstation, use el comando ping para verificar que se puede acceder a la
dirección IPv4 172.25.250.211.
7.1. Regrese a la consola y use el comando nmcli para activar el perfil de red original.
7.2. Desde workstation, abra una sesión de SSH en serverb como student para
verificar que la configuración de red original se active con éxito.
670 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review4 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review4 finish para completar la revisión
completa. Este script elimina los archivos y directorios creados durante el inicio de la revisión
completa y garantiza que el entorno de serverb esté limpio.
RH124-RHEL8.2-es-1-20200928 671
capítulo 17 | Revisión completa
Trabajo de laboratorio
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• En serverb, hay un dispositivo de bloque que contiene el sistema de archivos XFS, pero
aún no está montado. Determine el dispositivo de bloque y móntelo en el directorio /
review5-disk. Cree el directorio /review5-disk, de ser necesario.
• En serverb, ubique todos los archivos con contractor1 y contractor como usuario
propietario y grupo, respectivamente. Los archivos también deben tener los permisos
octales de 640. Guarde la lista de estos archivos en /review5-disk/review5-
perms.txt.
• En serverb, busque todos los archivos de 100 bytes de tamaño. Guarde las rutas
absolutas de estos archivos en /review5-disk/review5-size.txt.
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review5 grade para confirmar que
ha realizado correctamente este ejercicio.
672 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
Finalizar
En workstation, ejecute lab rhcsa-rh124-review5 finish para completar la revisión
completa. Este script elimina el sistema de archivos, las cuentas de usuario y las cuentas de grupo
creados durante el inicio de la revisión completa y garantiza que el entorno de serverb esté
limpio.
RH124-RHEL8.2-es-1-20200928 673
capítulo 17 | Revisión completa
Solución
Resultados
Usted deberá ser capaz de realizar lo siguiente:
Andes De Comenzar
Inicie sesión en workstation como student con la contraseña student.
Instrucciones
Realice las siguientes tareas en serverb para completar el ejercicio.
• En serverb, hay un dispositivo de bloque que contiene el sistema de archivos XFS, pero
aún no está montado. Determine el dispositivo de bloque y móntelo en el directorio /
review5-disk. Cree el directorio /review5-disk, de ser necesario.
• En serverb, ubique todos los archivos con contractor1 y contractor como usuario
propietario y grupo, respectivamente. Los archivos también deben tener los permisos
octales de 640. Guarde la lista de estos archivos en /review5-disk/review5-
perms.txt.
• En serverb, busque todos los archivos de 100 bytes de tamaño. Guarde las rutas
absolutas de estos archivos en /review5-disk/review5-size.txt.
1.1. Desde workstation, abra una sesión de SSH en serverb como student.
674 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
1.2. Use el comando lsblk -fs para determinar el dispositivo de bloque inactivo que
contiene el sistema de archivos XFS.
1.3. Use el comando sudo mkdir para crear el directorio /review5-disk como
superusuario. Cuando el comando sudo le solicite una contraseña, use la contraseña
student.
1.4. Use el comando sudo mount para montar el dispositivo de bloque vdb1 en el
directorio /review5-disk como superusuario.
2.1. Use el comando find para ubicar el archivo denominado review5-path. Redirija
todos los errores del comando find a /dev/null. Esta redirección le permite
descartar cualquier error de la salida del comando find.
RH124-RHEL8.2-es-1-20200928 675
capítulo 17 | Revisión completa
/var/tmp/review5-path
3. En serverb, ubique todos los archivos con contractor1 y contractor como usuario
propietario y grupo, respectivamente. Los archivos también deben tener los permisos octales
de 640. Registre las rutas absolutas a todos estos archivos en el archivo de texto /review5-
disk/review5-perms.txt.
3.1. Use las opciones -user, -group, -perm con el comando find para localizar todos los
archivos que tienen el usuario propietario, el grupo propietario y los permisos octales
de contractor1, contractor y 640, respectivamente. Redirija todos los errores del
comando find a /dev/null.
/usr/share/review5-perms
4. En serverb, busque todos los archivos de 100 bytes de tamaño. Registre las rutas absolutas
a todos estos archivos en /review5-disk/review5-size.txt.
4.1. Use la opción -size con el comando find para ubicar todos los archivos que sean de
100 bytes de tamaño. Redirija todos los errores del comando find a /dev/null.
676 RH124-RHEL8.2-es-1-20200928
capítulo 17 | Revisión completa
/usr/share/doc/libuser
/usr/share/doc/python3-cryptography/docs/x509
/usr/share/doc/python3-jinja2/ext
/usr/share/doc/plymouth/AUTHORS
/usr/share/vim/vim80/macros/maze/main.aap
/usr/libexec/plymouth
/opt/review5-size
La salida anterior puede variar en su sistema según el número de archivos de 100 bytes
de tamaño en su sistema. Observe las rutas absolutas a todos los archivos de la salida
anterior.
...output omitted...
/opt/review5-size
...output omitted...
Evaluación
En workstation, ejecute el comando lab rhcsa-rh124-review5 grade para confirmar que
ha realizado correctamente este ejercicio.
Finalizar
En workstation, ejecute lab rhcsa-rh124-review5 finish para completar la revisión
completa. Este script elimina el sistema de archivos, las cuentas de usuario y las cuentas de grupo
creados durante el inicio de la revisión completa y garantiza que el entorno de serverb esté
limpio.
RH124-RHEL8.2-es-1-20200928 677
678 RH124-RHEL8.2-es-1-20200928