Está en la página 1de 2

EJERCICIOPRCTICODESHELLSCRIPTDELINUX

1. Realizaunscriptparagestionarlosusuariosygruposnecesariosparaalumnosdeuncentro,
obteniendolosdatosdeunficheroqueselepasacomoargumentoyquetendrinformacin
dealumnos(Nombre,Apellidos,Nif,Clase,Especialidad,NExpediente).Porejemplo:
Alvaro,ClementeDelaVega,48620783W,ASI1A,ASI,1887
JoseAlberto,AlmarchaMadrid,48539982T,DAI2D,DAI,1921
Ruben,PonceLopez,48577133Y,DAI2D,DAI,1963
MarinaVictoria,CamposMartinez,21687358Z,DAI2D,DAI,1964
Felipe,RodriguezGimenez,53239499L,DAI2D,DAI,1968
Victor,GarciaSimon,48628785T,ASI1A,ASI,1972
JoseLuis,MolinaSanchez,21505978N,ASI1A,ASI,1974
Jorge,AligaRuiz,53242059A,ASI1A,ASI,2351
......................................................................................................
Sinoselepasaunficherooelqueselepasanoexiste,devolverunmensajedeerror.
SecrearcadagrupocuyonombreseobtendrdelcampoClase,conundirectoriode
trabajo del mismo nombre, dentro del cual se encontrarn sus usuarios
correspondientes.
SecrearcadausuariocuyonombreseobtendrdelcampoNExpediente,suclavese
corresponderconelcampoNif,ytendrundirectoriodetrabajoconelmismonombre
deusuariodentrodelgrupocorrespondiente,quesersugrupoprincipal.
ParacadausuariotambinsealmacenarsuNombreyApellidos,ademsdeincluirseen
elgruposecundarioUsers.

#!/bin/sh
# Comprobamos si se ha pasado un nombre de archivo y si adems existe
if [ $# -gt 0 -a -e $1 ]
then
# Guardamos el nombre de los grupos del cuarto campo del fichero
clases=`sort -t, -k4 $1 | cut -d, -f4 | uniq`
# Procesamos las acciones para cada grupo
for grupo in $clases
do
# Creamos el grupo
groupadd $grupo
echo "Grupo $grupo creado"
# Creamos la carpeta para las home de usuarios del grupo
mkdir /home/$grupo
# Asignamos permisos al grupo que se ha creado
chgrp $grupo /home/$grupo
# Procesamos las lineas del archivo correspondientes al grupo
cat $1 | grep ",$grupo," | while read linea
do
# Obtenemos el usuario del sexto campo del fichero
usuario=`echo $linea | cut -d, -f6`
# Obtenemos el nombre completo del primero y segundo campo del fichero
nombre=`echo $linea | cut -d, -f1`
nombre="$nombre `echo $linea | cut -d, -f2`"
# Obtenemos el nif del tercer campo del fichero
nif=`echo $linea | cut -d, -f3`
# Ciframos la password porque el comando useradd la necesita cifrada
clave=`mkpasswd $nif`
# Creamos un usuario por cada linea
useradd -m -d /home/$grupo/$usuario -p $clave -c "$nombre" -g $grupo
-G users $usuario
# El usuario tiene como grupo principal el grupo que se acaba de crear
# Adems, el usuario pertenece al grupo users
echo "\tUsuario $usuario creado"
done
done
else
echo "Error: Falta fichero o el indicado no existe"
fi
# Finalizamos la ejecucion del script
exit 0

También podría gustarte