Skip to content

carloscubilla/RHCSA-COMANDOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 

Repository files navigation

RHCSA-COMANDOS

Iniciar el sistema operativo en modo seguro rescate o emergencia y cambiar contraseña de root

1- Reiniciar el sistema operativo y presionar f10
2- Precionar la tecla "e" para editar el grub de inicio

imageninicio

3- Agregamos "rd.break" al final de la siguiente linea

Se indica en imagen

imagen2

4- Presiona las teclas "ctrl + x" para guardar los cambios, el sistema iniciara en modo de emergencia, como podemos ver en la siguiente imagen

imagen3

5- Realizamos un remontaje del sysroot en modo lectura y escritura, utilizamos el siguiente comando
mount -o remount,rw /sysroot
6- Iniciamos un enorno controlado para realizar el cambio de contraseña, utilizamos el siguiente comando
chroot /sysroot
7- Luego insertamos el comando para cambiar contraseña
passwd

imagen3

8- Cambiamos la contraseña y nos quedaria un ultimo paso que es un reetiquetado del sistema al momento del siguiente reinicio

touch /.autorelabel

9- Por ultimo salimos del entorno controlado con el comando "exit# y reiniciamos el sistema con el comando "reboot#

imagen5

NMCLI - REDES

Comando para editar archivo de red
nmcli
Comando para ver el estado de los puertos
nmcli device status
Comando para ver conexiones
nmcli connection show
Comando para ver conexiones activas
nmcli connection show --active
Comando para ver manual de NMCLI
man nmcli
Comando para ver ejemplos de NMCLI
man nmcli-examples 
Comando para agregar una interfaz de red y que se asigne de forma automatica la ip
nmcli connection add con-name iturbe type ethernet ifname enp7s0
Comando para modificar una interfaz de red
nmcli connection modify con-name iturbe type ethernet ifname enp7s0
Comando para eliminar una interfaz de red
nmcli connection delete iturbe
Comando para agregar una interfaz de red y asignar ip que queremos
nmcli connection add con-name iturbe type ethernet ifname enp7s0 ip4 192.168.33.30/24 gw4 192.168.33.1
Comando para agregar una interfaz de red y asignar ip que queremos con DNS
nmcli connection add con-name iturbe type ethernet ifname enp7s0 ip4 192.168.33.50/24 gw4 192.168.33.1 ipv4.dns 192.168.33.30
Comando para agregar una interfaz de red y asignar ip que queremos 2 DNS
nmcli connection add con-name iturbe type ethernet ifname enp7s0 ip4 192.168.33.50/24 gw4 192.168.33.1 ipv4.dns 192.168.33.30 +ipv4.dns 192.168.33.31
Comando para agregar solo 1 DNS mas a nuestra connection-name
nmcli connection modify iturbe ipv4.dns 8.8.8.8
Comando para agregar otra DNS cuando ya tenemos una DNS asignada a connection-name
nmcli connection modify iturbe +ipv4.dns 9.9.9.9
Verificar el autoconect
nmcli connection modify iturbe connettion.autoconnect no

Esto desactiva el autoconnect (Lo recomendable es tenerlo desconectado)

nmcli connection modify iturbe connettion.autoconnect yes

Esto activa el autoconnect

Path en donde se encuentra el archivo de configuracion de red
cd /etc/sysconfig/network-scripts
Configuracion de nombres de host y resolucion de nombres
hostname

Comandos para agregar repositorios

Como agregar un repositorio local en un apache httpd
1. Instalar apache
yum install -y httpd
2. Iniciar apache y hacer que inicie con el sistema.
systemctl start http ; systemctl enable --now httpd
3. Agregar regla al firewall para publicar nuestra web
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
4. Descargar repositorio appstream y baseos
/usr/bin/reposync --repoid=appstream -p /var/www/html/repos/ --downloadcomps --download-metadata
/usr/bin/reposync --repoid=baseos -p /var/www/html/repos/ --downloadcomps --download-metadata
Comando para instalar yum-utils
dnf install yum-utils
Comando para agregar un repositorio

Esto agrega el repo y por defecto lo deja disable

yum-config-manager --add-repo=http://rhel9master.labrhel.com/repos/base.repo
Comando para activar el repositorio
yum-config-manager --enable base

LISTAR SERVICIOS Y VERIFICARLOS CON "SYSTEMCTL"

Comando para listar los socket y servicios con todos sus estados
systemctl list-units-files
Comando para listar los servicios con todos sus estados
systemctl list-units -t service
Comando para listar socket con estados activos
systemctl list-unit-files -t socket
Comando para listar socket con todos sus estados
systemctl list-unit-files -t socket --all
Comando para listar dependencias de un servicio
systemctl list-dependencies httpd
Comando para ver cual es el target por defecto.
systemctl get-default
Comando para desabilitar la interfaz grafica si es que instalamos como server with GUI
systemctl isolate multi-user.target
Comando para habilitar la interfaz grafica.
systemctl isolate graphical.target
Comando para cambiar el target por defecto
systemctl get-default <presionar TAB 2 veces>

Sirve para ver el nombre del host

Path en donde se ubica el nombre del host
cat /etc/hostname

No se debe editar manualmente

Comando para cambiar el nombre del host
hostnamectl set-hostname <name>

Sirve para ver el nombre del host

Comando para que se visualice el cambio de host
bash
Comando para buscar resolucion de nombre y comprobar que esté bien
getent hosts <name>
Comando para ver ip del server
ping -c2 <name>

Enmascaramiento de servicio

Comando para enmascarar un servicio
systemctl mask sshd.service
Comando para enmascarar un servicio
systemctl unmask sshd.service

CREACION DE PARTICIONES CON "parted" (Es mas dificil)

Comando para listar discos (nos dice como esta particionado y el tamaño)
lsblk
Comando para ver mas opciones del sistema de archivos
lsblk -fp
lsblk -fs
Comando para ver las particiones y los tipos de particiones
cat /proc/partitions
Comando para ver los tamaños de cualquier particion que seleccionemos
parted /dev/sda print
Comando para ver las particiones y los tipos de particiones en MB
parted /dev/sda unit MB print free
Comando para asignar el tipo de particionamiento para el disco, en este caso gpt
parted /dev/sdb mklabel gpt
Comando para asignar el tipo de particionamiento para el disco, en este caso msdos
parted /dev/sdb mklabel msdos
Comando para crear una particion en el disco sdc
parted /dev/sdc mkpart primary ext4 200MB 400MB
Comando para guardar los ambios y que se visualicen
udevadm settle
Comando para guardar los ambios y que se visualicen

Es casi lo mismo que "udevadm settle" y a veces es mas efectivo

partprobe -s
Comando para establecer el tipo de partición lvm.
parted /dev/vdb set 2 lvm on
Comando para para cambiar el tamaño del LV.
lvextend -L 768M /dev/serverb_01_vg/serverb_01_lv
Comando para para cambiar el tamaño del LV.

Usamos -r al final para que haga el rezize automaticamente

lvextend -L 768M /dev/serverb_01_vg/serverb_01_lv -r
Comando para para cambiar el tamaño del LV.

Funciona al igual que la opcion -r

xfs_growfs /storage/data1

CREACION DE PARTICIONES CON "fdisk"

Tener en cuenta que si la particion tiene Disklabel msdos se utiliza el comando "fdisk" si es Disklabel gpt se utiliza otro comando

Comando para editar o hacer particiones msdos
fdisk /dev/sdc
Comando para editar o hacer particiones gpt
gdisk /dev/sdc
Comando para editar fstab
 vim /etc/fstab

Una vez que editamos y agregamos todo a nuestro sistema de archivos utilizamos el siguiente comando para cargar la configuracion

systemctl daemon-reload
Montamos el sistema de archivos y verificamos que no haya errores
mount -a
Comando para darle un label a la particion nueva
xfs_admin -L <xfs.nombre> /dev/sdb1
Comando para crear un volumen fisico (phisical Volume)
pvcreate /dev/sdb1
Comando para crear un grupo de vulumenes (Volume group)
vgcreate carlos1 /dev/sdb1 /dev/sdb2
Comando para crear un volumen de grupo con phisical extend diferente a 4M
vgcreate -s 8m vg_data /dev/sdb1 /dev/sdb2
Comando para crear un volumen logico (logical volume)
lvcreate carlos1 -n datos_carlos -L 700M
Comando para extender un volumen logico (logical volume)

Primero hay que tener en cuenta que debemos asignar volumenes fisicos al grupo de volumen La opcion -t hace un test nos dice si esta todo correcto o hemos cometido un error

lvextend /dev/vg_data/vg_data1 -L +10 -r -t

COMO EXTERDER MEMORIS SWAP

Comando para CREAR volumenes GPT para la memoria swap
gdisk
Comando para guardar los ambios y que se visualice lo creado
udevadm settle
Comando para extender el grupo de volumenes
vgextend rhel /dev/sdb1 /dev/sdb2
Comando para dejar en cero o apagar la memoria swap

Se utiliza -v para visializar la salida del comando

swapoff -v /dev/rhel/swap
Comando para extender un volumen logico (logical volume)

Primero hay que tener en cuenta que debemos asignar volumenes fisicos al grupo de volumen La opcion -t hace un test nos dice si esta todo correcto o hemos cometido un error no realiza los cambios

lvextend /dev/rhel/swap -l +100%free -r -t

Tambien se pueden utilizar las opciones para agregar por ejemplo mas 500M a la memoria

lvextend /dev/rhel/swap -l +500M -r -t

O setear la memoria a 500M

lvextend /dev/rhel/swap -l 500M -r -t

CREAR VOLUMENES CON STRATIS

Comando para un volumen por defecto xfs con stratis
stratis pool create pool1 /dev/sdb
Comando extender un volumen xfs stratis
stratis pool add-data  pool1 /dev/sdc
Comando para crear un filesystem para un volumen xfs con stratis
stratis filesystem create pool1 file_system1
Comando para crear un snapshot del filesystem para un volumen xfs con stratis
stratis filesystem snapshot pool1 file_system1 snapshot1_file_system1
Comando listar el UUID del volumen xfs con stratis
lsblk --output=UUID /dev/stratis/pool1/file_system1
Comando para montar el volumen creado con stratis en /dir_stratis
echo "UUID=2f7a87d8-769c-4e2b-ae44-96d9832b4085 /dir_stratis xfs defaults,x-systemd.requires=stratisd.service 0 0" >> /etc/fstab
Comando para crear archivos de 2 GB
dd if=/dev/urandom of=/dir_stratis/archivo2.txt bs=1M count=2048

Programación de un trabajo de usuario diferido

REVISION DE ARCHIVOS SYSLOG

Comando para crear una linea de log del tipo user.debug
logger -p user.debug "Debug Message Test"

GESTION DE ARCHIVOS

Gestión de archivos tar comprimidas

Comando para comprimir un archivo gz
tar -czf /tmp/etc.tar.gz /etc
Comando para comprimir un archivo bz2
tar -cjf /tmp/etc.tar.gz /etc
Comando para comprimir un archivo xz
tar -cJf /tmp/etc.tar.gz /etc
Comando para comprimir un archivo con cualquier extension.

Use el sufijo del archivo para determinar el algoritmo que se usará.

tar -caf /tmp/etc.tar.gz /etc
Comando para un test para descomprimir un archivo
tar -tzf /tmp/etc.tar.gz
Comando para descomprimir un archivo
tar -xzf /tmp/etc.tar.gz
Comando para sincronizar archivos o directorios

Se utiliza "get" para obtener y "put" para enviar los archivos

rsync -av root@servera:/etc /configsync

#Ajuste del rendimiento del sistema

Comando para instalar tuned
dnf install tuned
Comando para enumerar todos los perfiles de ajuste disponibles
tuned-adm list
Comando tuned-adm profile_info para obtener información sobre un perfil determinado.
tuned-adm profile_info network-latency
Comando tuned-adm profile profilename para cambiar a un perfil diferente que se adapte mejor a los requisitos de ajuste actuales del sistema.
tuned-adm profile throughput-performance
Comando tuned-adm recommend puede recomendar un perfil de ajuste para el sistema. El sistema usa este mecanismo para determinar el perfil predeterminado después de la instalación.
tuned-adm recommend
Comando para revertir los cambios de configuración que aplica el perfil actual, cambie a otro perfil o desactive el daemon ajustado. Desactive la actividad de ajuste de la aplicación tuned con el comando tuned-adm off.
tuned-adm off
tuned-adm active
Comando para ajustar el nivel de nice de cada proceso en 10. Use los valores de PID correctos para sus procesos de la salida del comando anterior.
sudo renice -n 10 <pid> <pid>

CONTROL DE CONTEXTOS DE ARCHIVO DE SELinux

Comando para ver en que estado se encuentra SElinux
getenforce
Comando para cambiar el estado de SElinux

usage: setenforce [ Enforcing | Permissive | 1 | 0 ]

setenforce 0
Comando para DEFINIR una regla de contextos de archivos de SELinux que defina el tipo de contexto en httpd_sys_content_t para el directorio /custom y todos los archivos en él.
semanage fcontext -a -t httpd_sys_content_t '/custom(/.*)?'
Comando para ver el contexto de SELinux para los directorios
ls -dZ /custom
Comando para CORREGIR los contextos de archivos en el directorio /custom.
restorecon -R /custom

***

Comando para ajustar la política de SELinux con booleanos
setsebool httpd_enable_homedirs on
Comando para para ver si algún booleano restringe el acceso a los directorios para el servicio httpd.
getsebool -a | grep home
Comando para verifica el ajuste de la política de SELinux con booleanos
semanage boolean -l | grep httpd_enable_homedirs
Comando para verifica el ajuste de la política de SELinux con booleanos (Resultao igual al anterior comando pero sin usar grep)
semanage boolean -l -C
Comando para buscar mensaje de errores de que arroja SElinux

Buscar /sealert

less /var/log/messages
Comando para ejecutar lo sugerido por SElinux
sealert -l 35c9e452-2552-4ca3-8217-493b72ba6d0b
Comando leer lo que hay en /var/log/audit/audit.log

La opción -m busca en el tipo de mensaje. La opción ts busca en función del tiempo. La siguiente entrada identifica el proceso relevante y el archivo que causa la alerta

ausearch -m AVC -ts recent

ACCESO AL ALMACENAMIENTO CONECTADO A LA RED.

Comando para instalar autofs
dnf install autofs

GESTION DE USUARIOS LOCALES

Comando para cambiar de usuario
su - cmcf
Comando para elevar privilegios a root
sudo -i
Comando para agregar usuarios
useradd cmcf
Comando poner contraseña a un usuario
passwd cmcf <press enter>
Comando para agregar usuarios al grupo wheel
usermod -aG wheel cmcf
Comando para crear archivo en el directorio /etc/sudoers.d/

En este directorio almacenamos los archivos en donde se indican permisos para usuarios o grupo de usuarios, en este ejemplo es para el grupo "sysadmin"

echo "%sysadmin ALL=(ALL) ALL" >> /etc/sudoers.d/sysadmin
Comando para bloquear un usuario
usermod -L cmcf
Comando para desbloquear un usuario
usermod -U cmcf
Comando para establecer la vigencia máxima de la contraseña del usuario

El comando de abajo establece una vigencia maxima de 30 dias a la contraseña del usuario cmcf

chage -M 30 cmcf
Comando para un cambio de contraseña en el primer inicio de sesión en la cuenta

El comando de abajo fuerza el cambio de contraseña en el primer inicio de sesion del usuario cmcf

chage -d 0 cmcf
Comando para determinar la fecha de vencimiento en 180 dias a partir de la fecha del sistema operativo

El comando imprime la fecha actual + los dias que queremos de vigencia

date -d "+180 days" +%F
Comando para que caduque en la fecha que se muestra en el paso anterior.
chage -E 2022-09-06 operator1
Comando para verificar que la fecha de vencimiento de la cuenta se haya establecido correctamente
chage -l cmcf
Comando para verificar la zona horaria
timedatectl
Comando para actualizae la zona horaria a America/Port-au-Prince.
sudo timedatectl set-timezone America/Port-au-Prince
Comando para sincronizar la hora del sistema con el servidor classroom.example.com como la fuente de hora de NTP.

Se agrega "server classroom.example.com iburst" (iburst para acelerar la sincronización de tiempo inicial)

vim /etc/chrony.conf
Comando para habilitar la sincronización de tiempo en la máquina servera.

El comando activa el servidor NTP con la configuración modificada en el archivo de configuración /etc/chrony.conf. El comando puede activar el servicio chronyd o el servicio ntpd según lo que esté instalado actualmente en el sistema.

sudo timedatectl set-ntp true
Comando para verificar que la máquina servera esté sincronizando actualmente sus ajustes de hora con la fuente de hora de classroom.example.com.

En el resultado se muestra un asterisco (*) en el campo de estado de la fuente (S) para la fuente de hora de NTP classroom.example.com. El asterisco indica que la hora del sistema local está sincronizada de forma correcta con la fuente de hora de NTP.

chronyc sources -v

MANEJO DE CONTENEDORES PODMAN

Comando para instalar el metapaquete de contenedores
dnf install containet-tools
Comando para listar contenedores que se estan ejecutando
podman ps
Comando para listar contenedores que se estan ejecutando y tambien que no se estan ejecutando
podman ps -a
Comando muestra la información de configuración de la utilidad podman, incluidos sus registros configurados.
podman info
Comando para mostrar una lista de imágenes en los registros configurados que contienen el paquete python-38.
podman search python-38
Comando para examinar diferentes formatos de imagen de contenedor desde un directorio local o un registro remoto sin descargar la imagen.
skopeo inspect docker://registry.access.redhat.com/ubi8/python-38
Comando para descargar la imagen seleccionada en la máquina local.
podman pull registry.access.redhat.com/ubi8/python-38
Comando para mostrar las imágenes locales.
podman images
Comando para compilar la imagen. La sintaxis para el comando podman build es la siguiente:
podman build -t NAME:TAG DIR
Comando para ver la información de bajo nivel de la imagen de contenedor y verificar que su contenido coincida con los requisitos del contenedor.
podman inspect localhost/python36:1.0
Comando para inciar el contenedor.
podman start <container_name>
Comando para crear y ejecutar el contenedor más tarde. El comando podman run ejecuta un proceso dentro de un contenedor y este proceso inicia el nuevo contenedor.
podman run -d --name python38 \
registry.access.redhat.com/ubi8/python-38 \
sleep infinity
Comando para ejecutar un comando en un contenedor en ejecución.
podman exec python38 ps -ax
Comando para copiar archivos y carpetas entre los sistemas de archivos del host y del contenedor.
podman cp /tmp/hello.sh python38:/tmp/hello.sh
Comando para ejecutar desde el contenedor.
podman exec python38 bash /tmp/hello.sh
Comando para detener un contenedor.
podman stop python38
Comando para eliminar el contenedor.
podman rm python38
Comando para eliminar contenedores e imágenes.

Tener en cuenta que no debe estar corriendo ningun contenedor con esa imagen.

podman rmi registry.access.redhat.com/ubi8/python-38
Comando para investigar el motivo del estado del contenedor.
podman container logs db01
Se utiliza "-e" para pasar la variable de entorno al contenedor
podman run -d --name db01 \
-e MYSQL_USER=student \
-e MYSQL_PASSWORD=student \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=redhat \
registry.lab.example.com/rhel8/mariadb-105
Comando para ejecutar un comando dentro del espacio de nombres del usuario. Para obtener la asignación de UID para su espacio de nombres de usuario, use el comando podman unshare cat.
podman unshare cat /proc/self/uid_map
Comando para ver el UID y el GID del usuario mysql dentro del contenedor que se está ejecutando con almacenamiento efímero.
podman exec -it db01 grep mysql /etc/passwd
Comando para establecer el contexto de SELinux para el directorio /home/user/db_data cuando lo monte como almacenamiento persistente para el directorio /var/lib/mysql.

podman run -v /home/user/db_data:/var/lib/mysql:Z para establecer el contexto de SELinux para el directorio /home/user/db_data

podman run -d --name db01 \
-e MYSQL_USER=student \
-e MYSQL_PASSWORD=student \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=redhat \
-v /home/user/db_data:/var/lib/mysql:Z \
registry.lab.example.com/rhel8/mariadb-105

Asignar una asignación de puertos a contenedores.

Comando -p del comando podman run sirve para definir una asignación de puertos desde el puerto 13306 desde el host del contenedor al puerto 3306 en el contenedor db01.
podman run -d --name db01 \
-e MYSQL_USER=student \
-e MYSQL_PASSWORD=student \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=redhat \
-v /home/user/db_data:/var/lib/mysql:Z \
-p 13306:3306 \
registry.lab.example.com/rhel8/mariadb-105
Comando -a del comando podman port para mostrar todas las asignaciones de puertos de contenedores en uso.
podman port -a
También puede usar el comando podman port db01 para mostrar los puertos asignados para el contenedor db01.
podman port db01
Comando para verificar qué backend de red se usa, ejecute el siguiente comando podman info.
podman info --format {{.Host.NetworkBackend}}
Comando para crear una red habilitada para DNS.

El comando podman network create para crear la red denominada db_net y especifique la subred como 10.87.0.0/16 y la puerta de enlace como 10.87.0.1. Si no especifica las opciones --gateway o --subnet, se crean con los valores predeterminados.

podman network create --gateway 10.87.0.1 \
--subnet 10.87.0.0/16 db_net
Comando para mostrar información acerca de una red específica. Use el comando podman network inspect para verificar que la puerta de enlace y la subred se hayan configurado correctamente y que la nueva red db_net esté habilitada para DNS.
podman network inspect db_net
Comando para agregar la red habilitada para DNS db_net a un nuevo contenedor con la opción --network del comando podman run.
podman run -d --name db01 \
-e MYSQL_USER=student \
-e MYSQL_PASSWORD=student \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=redhat \
-v /home/user/db_data:/var/lib/mysql:Z \
-p 13306:3306 \
--network db_net \
registry.lab.example.com/rhel8/mariadb-105
Comando para instalar estas utilidades en el contenedor con el comando podman exec.
podman exec -it db01 dnf install -y iputils iproute
Comando para probar ping.
podman exec -it db01 ping -c3 client01
Comando para verificar que las direcciones IP en cada contenedor coincidan con la resolución de DNS con el comando podman exec.
podman exec -it db01 ip a | grep 10.8
Comando para crear la red backend.
podman network create backend
Comando para ver todas las redes de Podman.
podman network ls
Comando para obtener la información IP de la red backend.

La subred y la puerta de enlace no se especificaron con las opciones --gateway y --subnet del comando podman network create.

podman network inspect backend
Comando para obtener la información IP de la red backend.
podman inspect db01
Comando para conectar redes adicionales a un contenedor cuando se está ejecutando.
podman network connect backend db01

Gestión de contenedores como servicios del sistema

Comando para GENERAR EL ARCHIVO DE SERVICIO DEL CONTENEDOR.

Verifique la salida del comando podman generate systemd y ejecute el comando anterior con la opción --files para crear el archivo de usuario systemd en el directorio actual. Debido a que el contenedor webserver1 usa el almacenamiento persistente, usted opta por usar el comando podman generate systemd con la opción --new. A continuación, cree el directorio ~/.config/systemd/user/ y mueva el archivo a esta ubicación.

podman generate systemd --name webserver1 --new --files
Debemos de crear el directorio " ~/.config/systemd/user/ " y movel alli el archivo generado.
mkdir -p ~/.config/systemd/user/
mv container-webserver1.service ~/.config/systemd/user/
Comando para gestionar el contenedor.
systemctl --user daemon-reload
Comando para iniciar el contenedor.
systemctl --user start container-webserver1.service
Comando para ver el estado del contenedor.
systemctl --user status container-webserver1.service
Comando para configurar el servicio de usuario systemd para que persista después de que se cierre la última sesión de usuario del servicio configurado.
loginctl enable-linger
Comando para verificar el status de la configuracion
loginctl show-user appdev-adm

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published