Se indica en imagen
4- Presiona las teclas "ctrl + x" para guardar los cambios, el sistema iniciara en modo de emergencia, como podemos ver en la siguiente imagen
mount -o remount,rw /sysroot
6- Iniciamos un enorno controlado para realizar el cambio de contraseña, utilizamos el siguiente comando
chroot /sysroot
passwd
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#
nmcli
nmcli device status
nmcli connection show
nmcli connection show --active
man nmcli
man nmcli-examples
nmcli connection add con-name iturbe type ethernet ifname enp7s0
nmcli connection modify con-name iturbe type ethernet ifname enp7s0
nmcli connection delete iturbe
nmcli connection add con-name iturbe type ethernet ifname enp7s0 ip4 192.168.33.30/24 gw4 192.168.33.1
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
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
nmcli connection modify iturbe ipv4.dns 8.8.8.8
nmcli connection modify iturbe +ipv4.dns 9.9.9.9
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
cd /etc/sysconfig/network-scripts
hostname
yum install -y httpd
systemctl start http ; systemctl enable --now httpd
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
/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
dnf install yum-utils
Esto agrega el repo y por defecto lo deja disable
yum-config-manager --add-repo=http://rhel9master.labrhel.com/repos/base.repo
yum-config-manager --enable base
systemctl list-units-files
systemctl list-units -t service
systemctl list-unit-files -t socket
systemctl list-unit-files -t socket --all
systemctl list-dependencies httpd
systemctl get-default
systemctl isolate multi-user.target
systemctl isolate graphical.target
systemctl get-default <presionar TAB 2 veces>
Sirve para ver el nombre del host
cat /etc/hostname
No se debe editar manualmente
hostnamectl set-hostname <name>
Sirve para ver el nombre del host
bash
getent hosts <name>
ping -c2 <name>
systemctl mask sshd.service
systemctl unmask sshd.service
lsblk
lsblk -fp
lsblk -fs
cat /proc/partitions
parted /dev/sda print
parted /dev/sda unit MB print free
parted /dev/sdb mklabel gpt
parted /dev/sdb mklabel msdos
parted /dev/sdc mkpart primary ext4 200MB 400MB
udevadm settle
Es casi lo mismo que "udevadm settle" y a veces es mas efectivo
partprobe -s
parted /dev/vdb set 2 lvm on
lvextend -L 768M /dev/serverb_01_vg/serverb_01_lv
Usamos -r al final para que haga el rezize automaticamente
lvextend -L 768M /dev/serverb_01_vg/serverb_01_lv -r
Funciona al igual que la opcion -r
xfs_growfs /storage/data1
Tener en cuenta que si la particion tiene Disklabel msdos se utiliza el comando "fdisk" si es Disklabel gpt se utiliza otro comando
fdisk /dev/sdc
gdisk /dev/sdc
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
mount -a
xfs_admin -L <xfs.nombre> /dev/sdb1
pvcreate /dev/sdb1
vgcreate carlos1 /dev/sdb1 /dev/sdb2
vgcreate -s 8m vg_data /dev/sdb1 /dev/sdb2
lvcreate carlos1 -n datos_carlos -L 700M
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
gdisk
udevadm settle
vgextend rhel /dev/sdb1 /dev/sdb2
Se utiliza -v para visializar la salida del comando
swapoff -v /dev/rhel/swap
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
stratis pool create pool1 /dev/sdb
stratis pool add-data pool1 /dev/sdc
stratis filesystem create pool1 file_system1
stratis filesystem snapshot pool1 file_system1 snapshot1_file_system1
lsblk --output=UUID /dev/stratis/pool1/file_system1
echo "UUID=2f7a87d8-769c-4e2b-ae44-96d9832b4085 /dir_stratis xfs defaults,x-systemd.requires=stratisd.service 0 0" >> /etc/fstab
dd if=/dev/urandom of=/dir_stratis/archivo2.txt bs=1M count=2048
Programación de un trabajo de usuario diferido
logger -p user.debug "Debug Message Test"
tar -czf /tmp/etc.tar.gz /etc
tar -cjf /tmp/etc.tar.gz /etc
tar -cJf /tmp/etc.tar.gz /etc
Use el sufijo del archivo para determinar el algoritmo que se usará.
tar -caf /tmp/etc.tar.gz /etc
tar -tzf /tmp/etc.tar.gz
tar -xzf /tmp/etc.tar.gz
Se utiliza "get" para obtener y "put" para enviar los archivos
rsync -av root@servera:/etc /configsync
#Ajuste del rendimiento del sistema
dnf install tuned
tuned-adm list
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>
getenforce
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(/.*)?'
ls -dZ /custom
restorecon -R /custom
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
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
Buscar /sealert
less /var/log/messages
sealert -l 35c9e452-2552-4ca3-8217-493b72ba6d0b
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
dnf install autofs
su - cmcf
sudo -i
useradd cmcf
passwd cmcf <press enter>
usermod -aG wheel cmcf
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
usermod -L cmcf
usermod -U cmcf
El comando de abajo establece una vigencia maxima de 30 dias a la contraseña del usuario cmcf
chage -M 30 cmcf
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
chage -E 2022-09-06 operator1
chage -l cmcf
timedatectl
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
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
dnf install containet-tools
podman ps
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
podman pull registry.access.redhat.com/ubi8/python-38
podman images
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
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
podman exec python38 ps -ax
podman cp /tmp/hello.sh python38:/tmp/hello.sh
podman exec python38 bash /tmp/hello.sh
podman stop python38
podman rm python38
Tener en cuenta que no debe estar corriendo ningun contenedor con esa imagen.
podman rmi registry.access.redhat.com/ubi8/python-38
podman container logs db01
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
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
podman info --format {{.Host.NetworkBackend}}
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
podman exec -it db01 dnf install -y iputils iproute
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
podman network create backend
podman network ls
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
podman inspect db01
podman network connect backend db01
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
mkdir -p ~/.config/systemd/user/
mv container-webserver1.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user start container-webserver1.service
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
loginctl show-user appdev-adm