| 
					
				 | 
			
			
				@@ -2,64 +2,83 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #Guzmán Castanedo (guzman@castanedo.es) Octubre 2017 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #Licencia: GPL3 (http://www.gnu.org/licenses/gpl-3.0.html) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function escalarPrivilegios { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#Comprobar si somos root e intentar conseguir los privilegios 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function comprobarPrivilegios { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#Comprobar si somos root. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if [ $(id -u) -ne 0 ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 #No somos root 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 printf "\tERROR: No es posible obtener permisos de root.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 exit 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-function menu { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#Muestra menu y captura respuesta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if [ $error = false ]; then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		clear 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "/---------------------------------------\\ \n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "|\tADMINISTRACION DE USUARIOS:\t|\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\\---------------------------------------/\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\t1.\tDar de ALTA Usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\t2.\tCambio de Clave\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\t3.\tDat de BAJA Usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\t4.\tBLOQUEAR Usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\t5.\tDESBLOQUEAR Usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\ts.\tDar de ALTA Usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\tOPCION:\t>" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	read Opcion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	printf "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function mostrarBienvenida { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "$(basename $0) 0.1 Beta\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "Escribir \"ayuda\" o \"help\" para obtener ayuda de los comandos\n\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-escalarPrivilegios 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function leerComando { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#Muestrar linea de comando y capturar comando. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	printf "$(basename $0)>\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	read Comando 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#printf "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#parser: Comando = Opcion + Opciones + Argumentos 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Opcion=$Comando 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#function altaUsuario {	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function ayuda { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "Comandos:\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> alta\t\tDar de ALTA un nuevo usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> cambiar\tCAMBIAR contraseña de un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> baja\t\tDar de BAJA un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> bloquear\tBLOQUEAR un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> desbloquear\tDESBLOQUEAR un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> ayuda\t\tMuestra esta ayuda\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "\t\tPara mas ayuda escribir \"ayuda [comando]\"\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "> salir\t\tFinaliza programa\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+comprobarPrivilegios 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+mostrarBienvenida 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 cont=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-error=false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 while [ $cont = true ]; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	menu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	leerComando 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case $Opcion in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		alta) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Alta usuario 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		cambiar) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Cambiar passwd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		baja) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Baja usuario 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		bloquear) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Bloquear usuario 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		desbloquear) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Desbloquear usuario 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		s|S|q|Q) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ayuda|help) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			#Ayuda de comandos 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ayuda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		salir|s|S|quit|q|Q|exit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Salida 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Podreamos hacer break, pero los bucles infinitos son feos. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			cont=false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Opcion Incorrecta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			clear 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			printf "\tOPCION INCORRECTA.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			error=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			printf "Error de Sintaxis: Comando no valido.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			#error=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			#continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	error=false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#error=false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exit 
			 |