2 votos

Applescript Invoke Specific User and Password

Tengo un do shell script que necesito ejecutar en Applescript, pero necesita ejecutarse como un usuario diferente. Debe ser desplegado en la unidad de red de los estudiantes como una aplicación independiente que los estudiantes pueden ejecutar cuando sea necesario.

El código de ejemplo que aparece a continuación es sólo para ilustrar. Este código funciona cuando estoy conectado, porque está recogiendo mi nombre de usuario (cuenta de administrador local) en el equipo 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" al código y no funciona, arroja un error.

¿Existe una forma de pedir a AppleScript que ejecute un comando con un usuario y una contraseña específicos proporcionados en el código como el anterior?

4voto

Malik hassan Puntos 16

Respuesta actualizada:

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

(No lo he probado)

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

Del documento :

¿Cómo puedo obtener privilegios de administrador para un comando?

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

do shell script "comando" nombre de usuario "yo" contraseña "micontraseña" con privilegios de administrador el nombre de usuario y la contraseña son opcionales; si omite 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 se autentifica correctamente, no pedirá autenticación durante cinco minutos. A partir de Mac OS X 10.4, esta gracia período de gracia no se extiende a ningún otro o al resto del sistema; llamar manualmente a sudo -k es innecesario.

Por razones de seguridad, no puede decirle a otra aplicación que haga shell script con privilegios de administrador. Ponga el comando fuera de cualquier bloque bloque tell, o póngalo dentro de un bloque tell me.

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, así que tenga cuidado. Mejor aún, no uses los privilegios de administrador a menos que sea absolutamente necesario. A menos que estés haciendo desarrollo a nivel de sistema desarrollo a nivel de sistema, nunca debería necesitar cambiar nada en /System - cambiar /Library debería ser suficiente.

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


ACTUALIZACIÓN IMPORTANTE 2

*Puedes guardar la aplicación como "sólo ejecución" (Guarda primero una copia editable para ti)

( Si sólo lo guardas como Run Only incluso no podrás abrirlo y editarlo más tarde una vez que hayas cerrado la ventana de script).

A continuación, utilice el Archivo->Exportar que le dará la opción, en el diálogo de guardar, de guardar como "Run Only".

enter image description here

Intento de abrir el archivo main.scpt en el paquete de aplicaciones:

enter image description here

Un Run only impedirá que alguien abra el script incrustado en la Aplicación haciendo doble clic en él para abrirlo en el Editor de script y descubrir su contraseña. Pero hay una forma de encontrar el nombre de usuario y la contraseña desde un Run Only y no es tan difícil de averiguar incluso para un usuario casual.

YO ME LO PENSARÍA DOS VECES ANTES DE PONER TU NOMBRE DE USUARIO Y CONTRASEÑA EN LA APLICACIÓN.


ACTUALIZACIÓN 3

Una pequeña idea para ayudar si debes hacer esto es romper el texto de la contraseña creando nombres de variables sin sentido para mantenerla y mezclarlos.

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

Por ejemplo.

si la contraseña es 88>0TpFpax

Voy a 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

Obsérvese que no sólo las variables no significan nada ni muestran ningún sentido de orden, sino que los bits de la contraseña están desordenados dentro de ellas.

Todo hasta que el código se ejecute.

Así que incluso si se tropieza con la forma de hacer lo que estoy hablando de la contraseña no se reunió en cualquier orden que sólo puede ser utilizado.

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