1 votos

Instalación sin solicitud y con contraseña para Homebrew

Estoy intentando crear un script para desplegar MacOS y la última pieza que no está automatizada es la instalación de Homebrew. Debido al escenario único donde Homebrew no debe ser instalado con sudo y requiere tanto la return y los usuarios password se ha convertido en una cosa difícil de entender. He pasado unas cuantas horas en esto y he encontrado otras preguntas sin respuesta en StackExchange sin suerte en conseguirlo completamente automatizado.

Mi código:

echo "Password: "
read -s PASSWORD
echo $PASSWORD | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

El eco se salta la petición de golpear return pero no pasa la contraseña porque me falta el -S porque no debería incluir sudo al instalar Homebrew. En última instancia, necesito una configuración que golpea comando Y pasa en la contraseña sin usar sudo. El resto de mi script se ejecuta usando echo $PASSWORD | sudo -S my-command-here... por lo que me gustaría no desviarme demasiado de ese esquema si es posible.

0 votos

Algunos detalles más podrían ayudar. ¿Cuál es exactamente el problema que está tratando de resolver aquí (su pregunta muestra principalmente sus intentos de resolverlo, pero no realmente cuál es el problema en primer lugar). ¿Se está ejecutando este script como usuario administrador? ¿Puedes cambiarlo de forma que asegures que todo el script se ejecute como un usuario administrador? ¿Puedes crear y chmod /usr/local antes de instalar Homebrew?

0 votos

Anoche añadí una edición que espero proporcione algunos detalles adicionales. Parece que aún no ha sido aprobado. El comando sale si intentas ejecutarlo como sudo. Supongo que podríamos crear y chmod la carpeta - sólo si es imposible tener el script pulsar return y pasar la contraseña en un solo comando sin embargo. Mantente al tanto para que esa edición llegue y ayude a añadir información.

0 votos

Lo has añadido a la respuesta en lugar de a la pregunta. Por favor, edita la pregunta en su lugar.

1voto

Manrico Corazzi Puntos 6458

El -s a mí me funciona, así que no sé por qué a ti no te funciona.

¿Ha intentado añadir #!/bin/sh (o #!/bin/bash ) en la parte superior de su script?

Si utiliza el -n opción en echo obtendrá la entrada en la misma línea que la etiqueta.

Así que lo siguiente es tener la entrada: Password: <waiting for input> y en la siguiente línea sólo imprime la contraseña introducida - el awk es sólo para comprobar que la tubería funciona. Y luego he añadido un bucle para que siempre haya que introducir algo.

#!/bin/sh

readPassword
echo $PASSWORD | awk '{print $1}'

readPassword() {
   echo -n "Password: "
   read -s PASSWORD
   echo ""
   if [[ -z "$PASSWORD" ]]; then
      printf '%s\n' "A password is required..."
      readPassword
   fi
}

0 votos

Sí, esta es una pequeña porción de mi script (la única pieza que no funciona sin la interacción del usuario) y he incluido el #!/bin/bash en la parte superior del verdadero script. El -n ¡la bandera es una buena adición gracias! Sin embargo, esto no soluciona realmente el problema de instalación de Homebrew en mi pregunta inicial. Tengo otros comandos como echo $PASSWORD | sudo -S systemsetup -setremotelogin on para trabajar con el -S pero tengo que incluir sudo para que funcionen. Homebrew no debería instalarse a través de sudo así que esta configuración no funciona a menos que me esté perdiendo algo.

0 votos

Quizás no entiendo tu verdadero problema. No necesitas una contraseña para instalar Homebrew (tu ejemplo en la pregunta), así que ¿por qué quieres añadir una contraseña? Si un comando no usa parámetros que se le pasan, entonces no necesitas pasarle nada al comando - como aquí con una contraseña, que el comando no usa.

0 votos

Mi pregunta es similar a la que se hace aquí: stackoverflow.com/questions/24426424/ . Sin embargo, las respuestas a esta pregunta no funcionan, ya que el script sigue pidiendo la contraseña. Mi script completo: github.com/Justintime50/mac-scripting/blob/master/deploy/nozani/ se ejecuta sin que tenga que escribir la contraseña una sola vez al principio, excepto en el caso de Homebrew, en el que tengo que pulsar el script. return para mí y escriba la contraseña en el indicador. La instalación de Homebrew sí pide una contraseña.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X