6 votos

¿Cómo cambiar el nombre de osascript en el diálogo de privilegios de administrador?

He utilizado el comando.

/usr/bin/osascript -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'

Me pide la contraseña diciendo que osascript quiere hacer cambios. Lo que quiero es, cómo puedo cambiar la palabra osascript ?

11voto

belwood Puntos 797

Encontré una forma mucho mejor de hacerlo, indagando en el documento de Applescript en el sitio de desarrolladores de Apple. Encontré esta nota de lanzamiento para Applescript en MacOS 10.10

Dice:

do shell script can now specify a custom prompt to use in the password dialog. [15194980]

Sin embargo, se olvida de decir cómo puedes hacerlo. Después de algunas conjeturas, me di cuenta de que hay un prompt que permite sustituir la cláusula osascript wants to make changes... con lo que quieras al usar do shell script...with administrator privileges en un script invocado por osascript . Por ejemplo:

osascript -e 'do shell script "ls -l" with prompt "The Great And Powerful OZ " with administrator privileges'

genera un cuadro de diálogo parecido: enter image description here

Espero que esto ayude a alguien.

2voto

user3294264 Puntos 21

Todos los métodos anteriores requieren privilegios de administrador en primer lugar, pero si usted está tratando de hacer esto como parte de un bash script que desea distribuir sin requerir privilegios administrativos o configuración extra, usted podría hacer algo como lo siguiente:

TMP=$(mktemp -d)
pushd "$TMP" > /dev/null 2>&1
/usr/bin/osacompile -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges' -o 'My Cool Name.app'
'My Cool Name.app/Contents/MacOS/applet'
popd
rm -rf "$TMP"

Esto creará un directorio temporal, compilará el script como un applet, lo ejecutará y luego borrará el directorio temporal y el applet.

0voto

klanomath Puntos 19587

Suponiendo que El Capitan o Sierra esté instalado, primero desactive SIP y arrancar de nuevo el sistema principal.

Abre el Terminal y entra:

sudo ln /usr/bin/osascript /usr/bin/butterfly

Vuelva a activar el SIP.

Ahora mariposa pedirá que se realicen cambios después de introducir

/usr/bin/butterfly -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'

En lugar de mariposa puede utilizar casi cualquier otro nombre. El nombre no debe ser el de un ejecutable ya existente en su Mac (especialmente si no debe sea uno ya existente en su PATH).

Así que ls o diskutil es un gran No, pero _necyria_bellona_ está bien.


Esto no funciona para los volúmenes APFS (High Sierra y posteriores), porque los enlaces duros no existen en este sistema de archivos.

0 votos

También puedes simplemente hacer el enlace duro a una ubicación que no necesite el uso de sudo o desactivar el SIP. A continuación, utilice el nombre de la ruta de los enlaces duros.

0 votos

Lo he intentado antes de leer tu comentario (tanto enlazando como copiando), y no ha funcionado. Estoy usando High Sierra, por lo que esto puede haber sido desactivado en las versiones más recientes, pero esto no es una opción fiable o válida. La respuesta aceptada me ha servido.

0 votos

@klanomath hmm, parece que tienes razón en que no se ha aceptado ninguna respuesta. ¡Extraño! Supongo que sólo miré la respuesta más votada y mi cerebro pensó que había sido aceptada por alguna razón. Ese es el método que estoy utilizando para lograr esto. Pero sí, requiriendo un reinicio y haciendo que un usuario desactive el SIP desde la recuperación o el usuario único sería una venta difícil en esto. Lol. Además, ¿podría aclarar en su respuesta por qué se requiere la desactivación de SIP? Pensé que sólo protegía los archivos en /System. Obviamente puedo estar equivocado. Yo suelo desactivar el SIP por varias razones.

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