martes, 5 de julio de 2011

Ejercicio BASH

Estais aprendiendo Bash pues aquí va un estupendo ejercicio para que aprendais un poco más de nuestro sistema operativo preferido:

Ejercicio:

Diseñar un pequeño script que reciba como parámetro un nombre de directorio, de forma que se cree ese directorio en el interior del directorio de inicio de sesión de unos determinados usuarios. Debe cumplir los siguientes requisitos:

  • El nombre del directorio se pasa como parámetro

  • Si no hay parámetros se toma como nombre del directorio “defecto” y si el número de parámetros es mayor a uno, se toma el último parámetro.

  • El directorio se creará para todos los usuarios cuyo uid sea mayor o igual a 500

  • Si el directorio ya existe añadirá un mensaje con el usuario y la fecha y hora actual al fichero errores.txt

  • El directorio tendrá permisos de lectura,escritura y acceso solamente para el propietario

  • El directorio pertenecerá al usuario correspondiente.

SOLUCION (no seais tramposos):

#! /bin/bash
clear
if [ $# -eq 0 ];then
directorio= "defecto"
else
if [ $# -gt 2 ];then
while [$# -gt 1 ];do
shift
directorio= $1
done
else
directorio=$1
fi
fi
#echo "$directorio"
cat /etc/passwd |cut -d : -f 3| while read usuario
do
if [ $usuario -gt 500 ] && [ $usuario -ne 65534 ]; then
#echo $usuario
home1=`cat /etc/passwd| grep $usuario | cut -d : -f 6`

#echo "$home1/$directorio"
if [ -d $home1 ];then
if [ -d $home1/$directorio ];then
echo "$home1/$directorio erroneo ya existe" >> error.txt
else
mkdir $home1/$directorio
chown $usuario $home1/$directorio
chmod 7 $home1/$directorio
fi
fi
fi
done

No hay comentarios:

Publicar un comentario