Applescript Invoke User and Password específico

1

Tengo un do shell script que necesito para ejecutar en Applescript, pero debe ejecutarse como un usuario diferente. Debe implementarse en la unidad de red del alumno como una aplicación independiente que los alumnos pueden ejecutar cuando sea necesario.

El código de ejemplo a continuación es solo para ilustración. Este código funciona cuando estoy conectado, porque está recogiendo mi nombre de usuario (cuenta de administrador local) en la computadora y utiliza la contraseña proporcionada (no la contraseña real incluida).

do shell script "rm -rf /$HOME/Downloads/*" password "Password01" with administrator privileges

He intentado especificar un nombre de usuario con user "sdadmin" en el código y no funciona, produce un error.

¿Hay alguna manera de pedirle a AppleScript que ejecute un comando con un usuario específico y una contraseña en el código que se muestra arriba?

    
pregunta Danijel-James W 03.09.2014 - 05:38

1 respuesta

3

Respuesta actualizada:

Hay un Apple doc que muestra la forma correcta de hacerlo. Estuviste cerca.

(No lo he probado yo mismo)

do shell script "rm -rf / $ HOME / Downloads / *" nombre de usuario "USERNAME" contraseña "THEPASSWORD" con privilegios de administrador

Desde el documento :

  

¿Cómo obtengo privilegios de administrador para un comando?

     

Utilice los privilegios de administrador, nombre de usuario y parámetros de contraseña   de esta manera:

     

do shell script "comando" nombre de usuario "me" contraseña "mypassword" con   los privilegios de administrador nombre de usuario y contraseña son opcionales; si tu   omita el nombre de usuario, do shell script asume que es el usuario actual;   Si omite la contraseña, le pedirá una contraseña cuando se ejecute.   Una vez que un script esté correctamente autenticado, no solicitará   Autenticación de nuevo durante cinco minutos. A partir de Mac OS X 10.4, esta gracia.   período no se extiende a ningún otro script o al resto de la   sistema; llamar manualmente sudo -k no es necesario.

     

Por razones de seguridad, es posible que no le digas a otra aplicación que haga shell.   Script con privilegios de administrador. Ponga el comando fuera de cualquier   Dígale al bloque, o colóquelo dentro de un bloque de Dime.

     

Tenga en cuenta que los privilegios de administrador le permiten cambiar cualquier   Archivo en cualquier parte del sistema. Puedes hacer que tu sistema no arranque o   incluso borrar todo el disco con unos pocos comandos bien colocados, por lo que   ejercer precaución. Mejor aún, no uses privilegios de administrador   a menos que sea absolutamente necesario. A menos que estés haciendo a nivel de sistema   desarrollo, nunca debería necesitar cambiar nada en / Sistema -   Cambiar / Biblioteca debería ser suficiente.

     

Nota: el uso de sudo (8) con privilegios de administrador es generalmente   innecesario y crea agujeros de seguridad; simplemente quite el "sudo".

ACTUALIZACIÓN IMPORTANTE 2

* Puedes guardar la aplicación como "ejecutar solo" (Guarda una copia editable para ti primero)

(Si solo lo guarda como Ejecutar solamente, no podrá abrirlo y editarlo más tarde una vez que haya cerrado la ventana del script).

Luego use el menú Archivo- > Exportar que le dará la opción en el diálogo de guardar para guardar como "Ejecutar solamente"

Intenteabrirelarchivomain.scptenelpaquetedelaaplicación:

Solo una ejecución evitará que alguien abra el script incrustado en la aplicación haciendo doble clic en él para abrirlo en el editor de secuencias de comandos y descubrir su contraseña. Pero hay una forma de encontrar el nombre de usuario y la contraseña en Run Only y no es tan difícil de averiguar incluso para un usuario ocasional.

PIENSARÍA DOS VECES EN PONER SU NOMBRE DE USUARIO Y CONTRASEÑA EN LA APLICACIÓN.

ACTUALIZACIÓN 3

Una pequeña idea para ayudarte si debes hacer esto es dividir el texto de la contraseña creando un nombre de variable sin sentido para mantenerlo y mezclarlo.

Cuando el código se ejecute, los volverá a ensamblar en el orden correcto.

Por ejemplo.

si la contraseña es 88>0TpFpax

Usaré:

    set T to "Tp"
    set Po to "88"
    set TC to "Fpax"
    set TEH to ">0"
do shell script "say blahbla" user name "markhunte" password (Po & TEH & T & TC as string) with administrator privileges

Tenga en cuenta que no solo la variable no significa nada ni muestra ningún sentido de orden, sino que los bits de contraseña también se mezclan dentro de ellos.

Todo hasta que se ejecute el código.

Por lo tanto, incluso si se tropiezan con la forma de hacer lo que estoy hablando acerca de la contraseña, no se reunirán en ningún orden en el que se pueda usar.

    
respondido por el markhunte 03.09.2014 - 07:43

Lea otras preguntas en las etiquetas