Scripts - Prueba práctica

#nombre:contraseña:UID:GID:comentarios:dir_propio:shell
jperez:x:1130:103:Juan Pérez:/home/jperez:/bin/bash
#grupo:x:GID:lista_usuarios
docentes:x:103:victor,german,fernando

1. Escribe un script que lea de teclado un nombre de usuario y me diga si dicho usuario existe en el sistema

#!/bin/bash
 
#Leemos el nombre del usuario de teclado
echo -n "Usuario: "
read USUARIO
 
#comprobamos si exsite
EXISTE_USUARIO=$(grep $USUARIO /etc/passwd)
if [ $EXISTE_USUARIO ]; then
    echo "El usuario existe"
else
    echo "El usuario no existe"
fi

2. Modifica el script anterior de forma que si el usuario existe en el sistema me diga el nombre de su grupo principal.

#!/bin/bash
 
#Leemos el nombre del usuario de teclado
echo -n "Usuario: "
read USUARIO
 
#comprobamos si existe
EXISTE_USUARIO=$(grep $USUARIO /etc/passwd)
if [ $EXISTE_USUARIO ]; then
 
    # Averiguamos su número de grupo
    GID=$(grep $USUARIO /etc/passwd | cut -d: -f4)
 
    #Averiguamos el nombre del grupo para ese GID en /etc/group
    GRUPO=$(grep $GID /etc/group | cut -d: -f1)
    echo "El usuario existe, su nombre de grupos es $GRUPO"
else
    echo "El usuario no existe"
fi

3. Escribe un script que lea de teclado el nombre de un fichero y si el fichero existe y el usuario tiene permiso de escritura para el mismo le de permiso de ejecución

#!/bin/bash
 
#Leemos el nombre del archivo
echo -n "Archivo: "
read ARCHIVO
 
#comprobamos si existe y tenemos permiso de escritura
if [ -w $ARCHIVO ]; then
 
    # Averiguamos le damos permiso de escritura
    chmod +x $ARCHIVO
else
    echo "El archivo no existe o no tenemos permiso de escritura en el mismo"
fi

4. Cada vez que un usuario se valida en el sistema (introduce su contraseña) se guardan los datos de la validación en una línea del fichero /var/log/auth.log.

Escribe un script en el que se lea el nombre de un usuario y nos muestre cuantas veces se ha validado y que nos muestre en que fechas y horas se ha validado últimamente.

#!/bin/bash
 
#Leemos el nombre del usuario de teclado
echo -n "Usuario: "
read USUARIO
 
#Buscamos las veces en que se ha validado, número de líneas en las que aparece
N_VALIDACIONES=$(grep $USUARIO /var/log/auth.log | wc -l)
 
# Mostramos el número de veces que se ha validado
echo "$USUARIO se ha validado $N_VALIDACIONES"
 
# Mostramos las fechas en las que se ha validad
echo "En las siguientes fechas"
cat /var/log/auth.log | grep $USUARIO | cut -d" " -f1,2,3