| 
					
				 | 
			
			
				@@ -12,7 +12,8 @@ fi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function mostrarBienvenida { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-printf "$(basename $0) 0.1 Beta\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#Version y ayuda. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "$(basename $0) $VERSION\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 printf "Escribir \"ayuda\" o \"help\" para obtener ayuda de los comandos\n\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21,8 +22,61 @@ function leerComando { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	printf "$(basename $0)>\t" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	read Comando 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	#printf "\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	#parser: Comando = Opcion + Opciones + Argumentos 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Opcion=$Comando 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	#Parseamos la linea de comando con todas las opciones posibles. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	printf "$Comando\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Temp=$(getopt -q -o d:g:G:mp:s:fre: -l --home-dir:,--gid:,--groups:,--create-home,--pasword:,--shell:,--force,--remove,--expiredate: -- $Comando) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	eval set -- "$Temp" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	printf "$Temp\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	while true; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		case "$1" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-d|--home-dir) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				homeDir=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-g|--gid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				gid=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-G|--groups) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				otherGroups=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-m|--create-home) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				createHome=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-p|--password) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				password=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-s|--shell) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shell=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-f|--force) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				force=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-r|--remove) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				remove=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			-e|--expiredate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				expireDate=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			--) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				shift	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				printf "ERROR: Error Interno (parser).\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				exit 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Opcion=$1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	User=$2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	printf "Opcion: $Opcion\tUsuario: $User\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	unset Comando Temp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #function altaUsuario {	 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -30,17 +84,44 @@ function leerComando { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 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" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#Muestra la ayuda dependiendo del caso en el que estemos. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+printf "ayuda $1\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+case "$1" in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	alta) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "alta: Dar de ALTA un nuevo usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	cambiar) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "cambiar: CAMBIAR contraseña de un usuario:\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	baja) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "baja: Dar de BAJA un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	bloquear) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "bloquear: BLOQUEAR un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	desbloquear) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "desbloquear: DESBLOQUEAR un usuario\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	""|ayuda|help) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		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" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		printf "Error: el comando $1 no existe.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		#printf "Escriba \"ayuda\" o \"help\" ver los posibles comandos.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ayuda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+VERSION="0.1 Beta" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 comprobarPrivilegios 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 mostrarBienvenida 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 cont=true 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -64,7 +145,7 @@ while [ $cont = true ]; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		ayuda|help) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Ayuda de comandos 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			ayuda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ayuda $User 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		salir|s|S|quit|q|Q|exit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Salida 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,11 +155,9 @@ while [ $cont = true ]; do 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			#Opcion Incorrecta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			printf "Error de Sintaxis: Comando no valido.\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			#error=true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			#continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			;; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	esac 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	#error=false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	unset Opcion User homeDir gid otherGroups createHome password shell force remove expireDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 done 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+unset VERSION cont 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 exit 
			 |