Examen Práctico de Administración de Sistemas Linux: Usuarios, Grupos, LVM, Cuotas y Módulos del Kernel
1. Configuración de usuarios y grupos
a) Configuración de la información de finger en el inicio de sesión
Modificaremos el fichero /etc/skel/.bash_profile, de forma que se muestre la información de finger para el usuario en cada inicio de sesión:
[root@localhost ~]# cat /etc/skel/.bash_profileb) Creación de grupos
Creamos los grupos iso y aec tal y como se nos pide:
[root@localhost ~]# groupadd iso
[root@localhost ~]# groupadd aecc) Creación de cuentas de usuario
Creamos primero las cuentas de usuario con las características indicadas. Después, usamos la orden groups para comprobar los grupos:
[root@localhost ~]# useradd -c "José González" -g iso -G alumno pepito
[root@localhost ~]# useradd -c "Juan Martínez" -g aec -G alumno juanito
[root@localhost home]# groups pepito juanitod) Parámetros de envejecimiento de las cuentas
Usaremos la orden chage para cambiar los parámetros de envejecimiento de las cuentas:
[root@localhost ~]# chage -M 90 -W 10 -I 2 -E 2019-07-31 pepito
[root@localhost ~]# chage -M 90 -W 10 -I 2 -E 2019-07-31 juanito
[root@localhost ~]# chage -l pepitoe) Establecimiento de contraseña mediante tubería
Empleamos la opción --stdin de la orden passwd para recibir la contraseña a través de la tubería:
[root@localhost ~]# echo "examen" | passwd --stdin pepitof) Directorio de datos compartidos
[root@localhost ~]# mkdir /home/datoscompartidos
[root@localhost ~]# chown alumno:alumno /home/datoscompartidos/
[root@localhost ~]# chmod 770 /home/datoscompartidos
[root@localhost ~]# chmod g+s /home/datoscompartidos
[root@localhost ~]# ls -ld /home/datoscompartidos/2. Gestión de volúmenes con LVM
b) Creación del grupo de volúmenes
El grupo de volúmenes quedaría con 409 extensiones físicas:
[root@localhost ~]# vgcreate examenISO /dev/sdb1 /dev/sdb2 /dev/sdc2
[root@localhost ~]# vgdisplay examenISOc) Volumen lógico reflejado (RAID 1)
Para poder tolerar la caída de uno de los discos crearemos un volumen lógico reflejado:
[root@localhost ~]# lvcreate -m 1 -L 500M -n tolerafallos examenISO
[root@localhost ~]# lvdisplay --maps /dev/examenISO/tolerafallos
[root@localhost ~]# vgdisplay --verbose examenISOe) Extensión del volumen lógico
[root@localhost ~]# lvextend -l +100%FREE /dev/examenISO/tolerafallos3. Sistemas de ficheros, montaje y cuotas
a) Creación del sistema de ficheros
Creamos el sistema de ficheros haciendo uso de mkfs.ext4:
[root@localhost ~]# mkfs.ext4 /dev/sddb) Montaje del sistema de ficheros
Montamos el sistema de ficheros en /home/datoscompartidos y establecemos los permisos del directorio raíz de dicho sistema de ficheros de acuerdo a lo definido en el ejercicio:
[root@localhost ~]# mount /dev/sdd /home/datoscompartidos/
[root@localhost ~]# ls -ld /home/datoscompartidos/c) Montaje automático
Para que se monte automáticamente, añadimos en /etc/fstab la línea correspondiente.
d) Ocupación del sistema de ficheros
El espacio total ocupado por el subdirectorio binarios es 6,6 MiB, y el porcentaje de ocupación del sistema de ficheros es del 2 %:
[pepito@localhost root]$ df -h /home/datoscompartidose) Configuración de cuotas de disco
[root@localhost ~]# mount -o remount /dev/sdd
[root@localhost ~]# mount | grep /dev/sdd
/dev/sdd on /home/datoscompartidos type ext4 (rw,relatime,seclabel,quota,usrquota)
[root@localhost ~]# quotacheck -nm /dev/sdd
[root@localhost ~]# quotaon /dev/sdd
[root@localhost ~]# setquota -u pepito 0 300M 0 0 /dev/sdd
[root@localhost ~]# setquota -u juanito 0 200M 0 0 /dev/sdd
[root@localhost home]# repquota /dev/sddf) Copia de seguridad completa con cpio
[root@localhost datoscompartidos]# find . | cpio -o -F /root/copia_datoscompartidos.cpiog) Copia de seguridad incremental con cpio
[root@localhost datoscompartidos]# find . -newer /root/copia_datoscompartidos.cpio | cpio -o -F /root/copia_datoscompartidos_incremental.cpio4. Procesos del sistema
a) Selección y ordenación de procesos
Utilizamos la orden ps con las opciones axo para seleccionar los campos pedidos, ordenamos su salida y nos quedamos con las tres primeras filas:
[root@localhost ~]# ps axo vsz,pid,user,command | sort -nr | head -n 35. Gestión de módulos del kernel
a) Comprobación del módulo bluetooth
Para comprobar si el módulo está cargado o no podemos usar la orden lsmod:
[root@localhost ~]# lsmod | grep bluetoothPara comprobar a continuación los módulos de los que depende, buscaremos el nombre del módulo en el fichero modules.dep que aparece bajo el directorio correspondiente a la versión del núcleo con la que arrancamos (podemos obtenerlo ejecutando uname -r). A la derecha del nombre del módulo, tras los dos puntos, aparece la lista de módulos de los que depende:
[root@localhost ~]# uname -r
4.17.18-200.fc28.x86_64
[root@localhost ~]# cat /lib/modules/4.17.18-200.fc28.x86_64/modules.dep | grep -w "bluetooth.ko.xz:"
kernel/net/bluetooth/bluetooth.ko.xz: kernel/crypto/ecdh_generic.ko.xz kernel/net/rfkill/rfkill.ko.xzVemos que el módulo bluetooth requiere los módulos ecdh_generic y rfkill para su puesta en marcha. Esta misma información podríamos haberla obtenido mediante la ejecución de modprobe --show-depends bluetooth:
[root@localhost ~]# modprobe --show-depends bluetooth
insmod /lib/modules/4.17.18-200.fc28.x86_64/kernel/net/rfkill/rfkill.ko.xz
insmod /lib/modules/4.17.18-200.fc28.x86_64/kernel/crypto/ecdh_generic.ko.xz
insmod /lib/modules/4.17.18-200.fc28.x86_64/kernel/net/bluetooth/bluetooth.ko.xzPara encontrar dos módulos que dependan de bluetooth, buscaremos el nombre de este módulo en la parte derecha (tras los dos puntos) del fichero modules.dep:
[root@localhost ~]# cat /lib/modules/4.17.18-200.fc28.x86_64/modules.dep | grep -w "bluetooth.ko.xz" | head -n 2b) Alias de módulo
Creamos dentro del directorio /lib/modprobe.d/ el fichero DienteAzul.conf con el siguiente contenido: alias DienteAzul bluetooth
[root@localhost ~]# cd /lib/modprobe.d/
[root@localhost ~]# echo "alias DienteAzul bluetooth" > DienteAzul.confc) Dispositivos Ethernet, contraseña de GRUB y modo gráfico
[root@localhost modprobe.d]# lspci | grep Ethernet
[root@localhost ~]# grub2-setpassword
[root@localhost ~]# systemctl isolate graphical.target