Advertisement
sergio_educacionit

if-then-else-v2.sh

Sep 28th, 2022
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.10 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3.  
  4. # buscar un usuario y determinar su 'UID' si esta es menor que '1000' debe cambiarse a una ID que se mayor o igual que 1000.
  5. # Guardo la linea que haga match con el usuario
  6.  
  7. # si el usuario que ejecuta no es root se sale
  8. if [ $UID -ne 0 ]; then
  9.     echo "Ejecute este script como usuario 'root'."
  10.     exit 1
  11. fi
  12.  
  13. user="$1"
  14.  
  15. # primero evaluar si el argumento pasado es valido
  16. # con el signo '!' invertimos la comparacion
  17. # si grep arroja 'exit status 1' se lo considera 'true'
  18. # si grep arroja 'exit status 0' se lo considera 'false'
  19.  
  20. if ! grep ^$user /etc/passwd;then
  21.  
  22.     echo "No se encontro el usuario '$user'. Se sale."
  23.     exit 1
  24.  
  25. fi
  26.  
  27. # si la comparacin anterior devolvio 'false' el programa continua normalmente
  28.  
  29.  
  30. uid=$(cat /etc/passwd | grep ^$user | cut -d ":" -f 3)
  31.  
  32.  
  33. if [ $uid -lt 1000 ]; then
  34.  
  35.     echo "El usuario '$user' tiene la 'id' $uid"
  36.  
  37.  
  38.     # listar las ID disponibles
  39.  
  40.     cat /etc/passwd | cut -d ":" -f 3 | sort -n
  41.  
  42.     read -p "Ingrese un valor mayor que 1000: " uid
  43.  
  44.     usermod -u $uid $user
  45.  
  46. else
  47.     echo "El usuario '$user' tiene una ID correcta: $uid"
  48.     exit 0
  49.  
  50. fi
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement