Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ENUNCIADO
- # ----------
- # Realiza un script que te permita actualizar de forma completa el sistema, borrando paquetes innecesarios si los hubiera.
- # El script deberá:
- # *) Pedirte la contraseña de super usuario por consola. La contraseña no debe ser visible.
- # *) Intenta loguearte como root con esa contraseña.
- # *) Comprueba el resultado del comando anterior y:
- # +) Si no te logueas correctamente, indícale al usuario que la contraseña es incorrecta.
- # +) Si te logueas correctamente, actualiza el sistema de forma completa, borrando paquetes innecesarios si los hubiera.
- # *) Si te logueas correctamente, realiza la actualización y comprueba:
- # +) Si no ha habido error en el resultado comando de actualización, se avisará al usuario de que se ha actualizado el sistema correctamente.
- # +) Si hubo error en el resultado comando anterior, se avisará al usuario con un mensaje de error de que no se pudo actualizar el sistema correctamente.
- #
- # SOLUCIÓN
- # ---------
- #!/bin/bash
- # Solicitar la contraseña de superusuario de forma segura.
- read -r -s -p "Introduce la contraseña de superusuario: " password
- # -r: Hace que el comando read interprete la entrada de forma literal,
- # desactivando la interpretación de los caracteres de escape como '\'.
- # -s: Hace que el comando read actúe en modo silencioso (silent), lo que
- # significa que la entrada del usuario no se mostrará en la pantalla
- # mientras se escribe, útil para contraseñas u otras entradas sensibles.
- # -p "Introduce la contraseña de superusuario: ": Muestra el mensaje
- # "Introduce la contraseña de superusuario: " como un prompt (mensaje)
- # antes de que el usuario introduzca la contraseña.
- # Intentar autenticarse como superusuario.
- echo "$password" | sudo -Sv
- # echo "$password": Imprime la contraseña en la entrada estándar.
- # |: Tubería, conecta la salida de echo a la entrada de sudo.
- # sudo -Sv: Ejecuta el comando sudo en modo silencioso (-S) para leer la
- # contraseña de la tubería, luego ejecuta el comando "sudo -v" para
- # validar las credenciales del usuario sin realizar ninguna acción.
- # Comprobar el resultado de la autenticación.
- if [ $? -eq 0 ]; then
- # Si la autenticación fue exitosa, actualizar el sistema.
- # -y: Confirmar automáticamente cualquier pregunta que pueda surgir durante
- # el proceso de actualización.
- # update: Actualiza la lista de paquetes disponibles.
- # upgrade: Actualiza los paquetes instalados a las versiones más recientes.
- # autoremove: Elimina automáticamente los paquetes que ya no son necesarios.
- # &&: Operador lógico "y" que se utiliza para encadenar comandos, asegurando
- # que el siguiente comando solo se ejecute si el anterior tiene éxito.
- sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
- # Comprobar el resultado de la actualización.
- if [ $? -eq 0 ]; then
- echo "Actualización completada correctamente."
- else
- echo "Error: Hubo un problema durante la actualización del sistema."
- fi
- else
- # Si la autenticación falló, indicar al usuario que la contraseña es incorrecta.
- echo "Contraseña de superusuario incorrecta. Inténtalo de nuevo."
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement