Ejecutando en macOS Sierra: tengo un programa Ruby - setup.rb
- para configurar un entorno de desarrollo en una nueva Mac.
Necesito iniciar el programa usando sudo ruby setup.rb
porque realiza algunas tareas que requieren sudo
.
El programa comienza con tareas que llevan bastante tiempo (alrededor de 2 minutos), que es lo suficientemente largo para que un programador perezoso quiera hacer otra cosa, tal vez una taza de café.
Aquí está mi enigma: después de la tarea de 2 minutos, necesito usar el comando security
que interactúa con el llavero. Este comando me pedirá la contraseña para el llavero, por lo tanto detendrá el programa ruby ya que está esperando la entrada.
Sé que puedo pasar la contraseña del llavero al comando security
usando la marca -p <PASSWORD>
.
Dado que la mayoría de los llaveros (¿todos?) están configurados para usar la misma contraseña que el inicio de sesión de macOS (al menos mi máquina comparte ...), deseo enviar la contraseña que el usuario ingresó para iniciar setup.rb
a El comando security
. ¿Es esto posible?
Una solución que es a la vez fea y insegura es solicitar al usuario la contraseña sudo nuevamente, pero usando mi Propio, almacenando la contraseña en una variable y luego pasándola al comando security
usando el indicador -p
. Aparte de no ser seguro, significa que el usuario tiene el tipo de contraseña dos veces. Pero esto hará el trabajo, ya que el usuario ahora puede dejar la computadora por una taza de café, mientras que setup.rb
puede hacer todo su trabajo sin solicitar ninguna entrada.
Seguro que podemos hacerlo mejor?