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) admin1Asignación de Permisos de Superusuario al Administrador
Agrega a admin1 al grupo sudo para otorgarle permisos de superusuario:
sudo usermod -aG sudo admin1Creació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 user2Configuració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/PendientesCreació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.txtModificació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.odtEscritura 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.txtConfiguració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 parauser1, excepto entrabajo2.odt, donde se aplicaráchmod 450.
chmod 450 ~/PROYECTOS/Trabajo/trabajo2.odtPermisos 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.txtBloqueo de Acceso para user2: Bloquea completamente el acceso de user2 al directorio /Pendientes.setfacl -m u:user2:--- ~/PROYECTOS/PendientesAcceso 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/PendientesEjercicio 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