elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / copias de seguridad para todos los usuarios del sistema con determinado uid en: 19 Junio 2017, 05:01 am
Hola muy buenas, estoy intentando hacer un script de copias de seguridad para todos los usuarios del sistema con determinado uid pero en el bucle for se repite siempre la misma copia de seguridad de un usuario no pasa al siguiente en el array a ver si me podeis ayudar



Código
  1. #! /bin/bash
  2.  
  3. if [ $# -ne 2 ] || [ $1 != "-r" ] && [ $1 != "-c" ] || [ `expr index $2 \/` -ne 1 ] ; then
  4.  
  5.        echo "Los parametros admitidos son los siguientes: ";
  6.        echo "Primer parametro debe ser -c (crea copia de seguridad) o -r (restaura copia de seguridad)";
  7.        echo "Segundo parametro debe ser direccionamiento absoluto al lugar donde realizar la accion";  
  8.        exit;
  9.  
  10. fi
  11.  
  12. if [ $1 == "-c" ]; then
  13.  
  14. cont=0;
  15. echo "busco los que son mayores de uid=1000";
  16. for i in $(cut -d: -f 1 /etc/passwd); do
  17.        if [ `id -u $i` -gt 999 ] ; then
  18.                usuario[$cont]=$i;
  19.                cont=$((cont+1));
  20.        fi
  21. done
  22.  
  23. rm /tmp/copiac
  24.  
  25. conta=0;
  26. echo "busco los usuarios en el fichero shadow";
  27. while [ $conta -lt ${#usuario[@]} ] ; do
  28.        grep ${usuario[$conta]} /etc/shadow >> /tmp/copiac;
  29.        conta=$((conta+1));
  30. done
  31.  
  32. cont=0;
  33. unset usuario;
  34. echo "elimino los que no tienen contraseña";
  35. for i in $(sed -e '/:\*:/d' /tmp/copiac | cut -d : -f 1); do
  36.        usuario[$cont]=$i;
  37.        cont=$((cont+1));
  38. done
  39.  
  40. echo ${usuario[@]};
  41.  
  42. for i in ${usuario[@]}; do
  43. echo $i
  44.        if [ -d $(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6) ] ; then
  45.                ruta=$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6);
  46.                echo $ruta ;
  47.                cd $ruta ;
  48.                pwd ;
  49.                tar -czvf $2/${usuario[$i]}.tgz ./;
  50.        fi
  51. done
  52.  
  53.  
  54. echo "creando el fichero usuarios";
  55.  
  56. for i in ${usuario[@]} ; do
  57.        echo ${usuario[$i]}:$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 5):$(grep ${usuario[$i]} /etc/shadow | cut -d : -f 2):$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 6):$(grep ${usuario[$i]} /etc/passwd | cut -d : -f 7) >> $2/usuarios ;
  58.        echo " creado " ;
  59. done
  60.  
  61.  
  62.  
  63. fi
  64.  
  65. if [ $1 == "-r" ]; then
  66.        ./copiar $2;
  67. fi
  68.  


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines