He usado el comando.
/usr/bin/osascript -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'
Solicita una contraseña que diga osascript que quiere hacer cambios. Lo que quiero es, ¿cómo cambio la palabra osascript ?
He usado el comando.
/usr/bin/osascript -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'
Solicita una contraseña que diga osascript que quiere hacer cambios. Lo que quiero es, ¿cómo cambio la palabra osascript ?
Encontré una forma mucho mejor de hacer esto, buscando en el documento Applescript en el sitio del desarrollador de Apple. Encontré esta nota de publicación 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, omite decir cómo puedes hacer eso. Después de algunas conjeturas, descubrí que hay una cláusula prompt
que te permite reemplazar osascript wants to make changes...
con lo que quieras cuando usas 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 que se ve así:
Espero que esto ayude a alguien.
Los métodos anteriores requieren, en primer lugar, privilegios de administrador, pero si intenta hacer esto como parte de un script de bash que desea distribuir sin requerir privilegios administrativos o configuración adicional, 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 eliminará el directorio temporal y el applet.
Suponiendo que se haya instalado El Capitán o Sierra, primero deshabilite SIP y reinicia tu sistema principal nuevamente.
Abre la Terminal e ingresa:
sudo ln /usr/bin/osascript /usr/bin/butterfly
Habilitar SIP nuevamente.
Ahora butterfly le pedirá que realice cambios después de ingresar
/usr/bin/butterfly -e 'do shell script "echo hello args 2>&1 etc" with administrator privileges'
En lugar de mariposa puedes usar casi cualquier otro nombre. El nombre no debe ser el nombre de un ejecutable que ya existe en tu Mac (especialmente no debe ser uno ya existente en tu RUTA).
Entonces ls o diskutil es un gran NoNo pero necyria_bellona está bien.
Esto no funciona para volúmenes APFS (High Sierra y posteriores), porque no existen enlaces duros en este sistema de archivos.
Lea otras preguntas en las etiquetas terminal applescript