Administración de Usuarios y Directorios en Linux con Bash Scripting

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,02 KB

Ejercicio 1: Configuración de Usuarios y Directorios en Linux

Este ejercicio detalla los pasos para configurar usuarios, grupos y directorios, así como la gestión de permisos en un entorno Linux, utilizando comandos fundamentales del sistema.

Creación de Usuarios y Grupos

Ejecuta los siguientes comandos para crear tres usuarios (user1, user2, user3) y un usuario administrador (admin1), todos con la contraseña password123:

sudo useradd -m -p $(openssl passwd -1 password123) user1
sudo useradd -m -p $(openssl passwd -1 password123) user2
sudo useradd -m -p $(openssl passwd -1 password123) user3
sudo useradd -m -p $(openssl passwd -1 password123) admin1

Asignación de Permisos de Superusuario al Administrador

Agrega a admin1 al grupo sudo para otorgarle permisos de superusuario:

sudo usermod -aG sudo admin1

Creación del Grupo alfa y Adición de Usuarios

Crea el grupo alfa y añade a user1 y user2 a este grupo:

sudo groupadd alfa
sudo usermod -aG alfa user1
sudo usermod -aG alfa user2

Configuración de Directorios y Archivos

Acceso como user1 y Configuración de Directorios Personales

Cambia al usuario user1 y crea el directorio PROYECTOS, junto con los subdirectorios Trabajo y Pendientes, dentro de su carpeta personal:

sudo su - user1
mkdir -p ~/PROYECTOS/Trabajo ~/PROYECTOS/Pendientes

Creación de Archivos en /Trabajo

Crea los siguientes archivos dentro del directorio ~/PROYECTOS/Trabajo:

touch ~/PROYECTOS/Trabajo/trabajo1.txt ~/PROYECTOS/Trabajo/trabajo2.odt ~/PROYECTOS/Trabajo/pendientes1.txt

Modificación de Fechas de Archivos

Cambia las fechas de modificación de los archivos trabajo1.txt y trabajo2.odt a las especificadas:

touch -m -t 202409252000 ~/PROYECTOS/Trabajo/trabajo1.txt
touch -m -t 202410262359 ~/PROYECTOS/Trabajo/trabajo2.odt

Escritura de Contenido en trabajo1.txt

Abre el archivo trabajo1.txt en un editor de texto y escribe el párrafo solicitado. Por ejemplo:

echo "Linux es un sistema operativo de código abierto, conocido por su estabilidad y seguridad. Es ampliamente utilizado en servidores, supercomputadoras y dispositivos móviles. Su flexibilidad permite una personalización profunda y una gran variedad de distribuciones para diferentes propósitos. [Tu Nombre]" > ~/PROYECTOS/Trabajo/trabajo1.txt

Configuración de Permisos de Archivos y Directorios

Aplica los siguientes permisos específicos a los archivos y directorios utilizando chmod y setfacl:

  • Permisos para user1: Asigna permisos completos para user1, excepto en trabajo2.odt, donde se aplicará chmod 450.
chmod 450 ~/PROYECTOS/Trabajo/trabajo2.odt
Permisos para user2: Otorga a user2 permisos de lectura, escritura y ejecución (rwx) en trabajo1.txt, y solo lectura (r) en pendientes1.txt.
setfacl -m u:user2:rwx ~/PROYECTOS/Trabajo/trabajo1.txt
setfacl -m u:user2:r ~/PROYECTOS/Trabajo/pendientes1.txt
Bloqueo de Acceso para user2: Bloquea completamente el acceso de user2 al directorio /Pendientes.
setfacl -m u:user2:--- ~/PROYECTOS/Pendientes
Acceso y Propiedad para user3: Concede acceso total (rwx) a user3 sobre el directorio /Pendientes y cambia la propiedad de este directorio a user3.
setfacl -m u:user3:rwx ~/PROYECTOS/Pendientes
sudo chown user3 ~/PROYECTOS/Pendientes

Ejercicio 2: Script en Bash para Verificación y Copia de Archivos

Este script automatiza la verificación de la existencia y contenido del archivo trabajo1.txt, busca la palabra "Linux" en él y, si la encuentra, copia el archivo a un nuevo directorio. Guárdalo como script.sh y ejecútalo:

#!/bin/bash

# Verificar si el archivo existe y contiene texto
if [ -s /home/user1/PROYECTOS/Trabajo/trabajo1.txt ]; then
    # Buscar la palabra "Linux"
    if grep -q "Linux" /home/user1/PROYECTOS/Trabajo/trabajo1.txt; then
        # Crear el directorio en /home si no existe y copiar el archivo
        mkdir -p /home/user1/copias
        cp /home/user1/PROYECTOS/Trabajo/trabajo1.txt /home/user1/copias/
        echo "Archivo copiado exitosamente."
    else
        echo "La palabra 'Linux' no se encuentra en el archivo."
    fi
else
    echo "El archivo trabajo1.txt no existe o está vacío."
fi

Entradas relacionadas: