problemas con un script

Imagen de djpons
0 puntos

Estoy intentando hacer un mini script que analize shadow, necesito ver los usuarios con mas de dos meses de antiguedad desde que cambiaron la contraseña.

he hecho esto pero al no conocer todas las comandos me pierdo.

#conversor fecha
declare -i ano
ano=$(date +%s)
#declare -i fechahoy
fechahoy=$((ano / 86400))
antiguedad=60
Dates es la fecha en dias - la fecha de antiguedad
datas=$((fechahoy-antiguedad))

echo hoy es dia $fechahoy
echo la antiguedad es $antiguedad
echo a restar $datas

y aqui viene el tema

cat /etc/shadow |grep >$datas |cut -d: -f3

visualizo el fichero shadows, busco lineas en las que sean mayores de xxx dias

pero se que con grep no puedo hacer operacions. podeis darme alguna pista de por donde seguir...

Gracias.

Imagen de joseluis
+1
0
-1

Tal como utilizas el grep lo que estás haciendo no es comprobar si lo que encuentra es mayor que algo sino redirigir su salida a lo que va a la derecha del mayor.

No se si te servirá pero aquí tienes un sencillo script que saca los usuarios cuya password no se cambia desde hace más de x días (60 en el ejemplo):

#!/bin/bash

antiguedad=60
fechalimite=$(((`date +%s`/86400)-$antiguedad))
shadow=`cat /etc/shadow`
for i in $shadow ; do
  cambiopasswd=`echo $i | cut -d":" -f 3`
  if [ $cambiopasswd -lt $fechalimite ]; then
     login=`echo $i | cut -d":" -f 1`
     echo $login lleva más de $antiguedad dias sin cambiar la password     
  fi
done

Tal vez habría que filtrar las cuentas especiales como cupsys, syslog y otras muchas para que no salieran en el resultado. Una forma posible podría ser sustituir la línea shadow=`cat /etc/shadow` por shadow=`grep -v ":[\*\!]:" /etc/shadow` ya que esas cuentas especiales tienen en la password un * o una !

Posiblemente con awk se pueda hacer mucho mejor y más efectivo, pero awk me suele levantar dolores de cabeza ;)

-----
Lectura obligada:

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de djpons
+1
0
-1

muchisimas gracias, me ha funcionado y ya he aprendido algo nuevo pq me taba volviendo locooooooo

+1
0
-1