BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Script que pida contraseña antes de arrancar un programa.

BocaDePez
BocaDePez

Hola.

No es que me haga falta, sino que lo estoy probando por curiosidad.

Encontré este script en Internet para aceptar contraseña:

****************************************************
#!/bin/bash
# script accept password using read commnad
PASS="abc123"
read -s -p "Password: " mypassword
echo ""
[ "$mypassword" == "$PASS" ] && echo "Password accepted" || echo "Access denied"
#El comando kwrite lo añadí yo para hacer una prueba.
kwrite
*****************************************************

Al ejecutarlo sale la consola pidiendo la contraseña, pero luego no sé usarlo.

Por ejemplo, para que arranque el kwrite, puse el comando kwrite debajo del script porque pensaba que el bash pondría en marcha el comando que encontraría a continuación de confirmada la contraseña, pero no me funciona.

¿Se puede dejarlo de manera que primero pida contraseña y luego abra el kwrite? Bueno, ya lo creo que se puede, pero yo no tengo idea.

Saludos.

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
alejandrosantos

Usa un while para que hasta que no termine de introducir la clave, se quede ahi clavado. Si no, un if para que te cargue el kwrite según sea aceptada o denegada. Si conoces C te andarás bien con bash. Yo lo uso bastante, más de lo que creía para cosas sencillas es muy potente.

es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog…ro-COMO.html

🗨️ 6
BocaDePez
BocaDePez

Gracias rxv.

Sí. Ya haré pruebas con eso. Desde hace días tengo algunos manuales que conseguí aquí :

(link roto)

Me los leí de una sentada, pero luego se me olvidaron muchas cosas. Ya iré poco a poco practicando y haciendo pruebas. Me gusta el tema de los scripts, pero soy muy torpe.

Sé programar...... la lavadora y el micro-ondas. Me bajé manuales del Python, pero apenas he empezado con el tema. El C es mucho para mí porque sólo controlo el html.

Saludos.

🗨️ 5
SuperGasMan

Hola de nuevo. Ya estoy registrado.

No entiendo casi nada de bash así que de momento no pude ponerlo en marcha con el while y el if.

Conseguí hacerlo funcionar, pero siempre cierra la consola, tanto si la contraseña es correcta como falsa. Me gustaría que cierre la consola sólo si la contraseña es correcta, pero así creo que también puede ser útil.

*************************************************
#!/bin/bash
PASS="123"
read -s -p "Password: " mypassword
echo ""
[ "$mypassword" == "$PASS" ] && echo "Password accepted"| kstart kwrite ; killall konsole || echo "Access denied"

exit
*************************************************
Si no acepta la contraseña se cierra de inmediato la consola (creo que así es más difícil que le metan un login automático tipo fuerza bruta, jejeje), si acepta la contraseña abre el Kwrite y a continuación cierra la consola quedando sólo el Kwrite.

No entiendo el bash. A ver si más adelante, cuando aprenda más cosas lo puedo ir mejorando. No me parece muy útil ese script, pero algo es algo.

Saludos y gracias.

🗨️ 4
BocaDePez
BocaDePez

Bueno, pues while o if te valen para hacer condiciones. while significa, mientras que no se cumpla esto, no dejes de preguntar la contraseña. Un if te diría, si es A, haz A y si es B, haz B que parece ser lo que necesitas, algo así,

*************************************************
#!/bin/bash
PASS="123"
read -s -p "Password: " mypassword
echo ""

if [ "$mypassword" == "$PASS" ] then killall konsole echo "Access Denied" else echo "Password accepted"| kstart kwrite fi

exit
*************************************************

Es lo mismo que tienes por ahí. Bash es una pasada y puedes hacer lo mismo de mil maneras.

🗨️ 3
SuperGasMan
🗨️ 2
SuperGasMan
🗨️ 1