Applescript Richiama utente e password specifici

1

Ho un do shell script che devo eseguire in Applescript, ma deve essere eseguito come utente diverso. Deve essere implementato nell'unità di rete dello studente come applicazione autonoma che gli studenti possono eseguire quando richiesto.

Il seguente codice di esempio è solo per illustrazione. Questo codice funziona quando sono connesso, perché sta raccogliendo il mio nome utente (account di amministratore locale) sul computer e usa la password fornita (non la password effettiva inclusa).

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

Ho provato a specificare un nome utente con user "sdadmin" nel codice e non funzionerà, genera un errore.

C'è un modo per chiedere a AppleScript di eseguire un comando con un utente e una password specifici forniti nel codice come sopra?

    
posta Danijel-James W 03.09.2014 - 05:38
fonte

1 risposta

3

Risposta aggiornata:

C'è un Apple doc che mostra il modo corretto di farlo. Eri vicino.

(Non l'ho provato da solo)

fai script di shell "rm -rf / $ HOME / Downloads / *" nome utente "USERNAME" password "THEPASSWORD" con privilegi di amministratore

Dal doc :

How do I get administrator privileges for a command?

Use the administrator privileges, user name and password parameters like this:

do shell script "command" user name "me" password "mypassword" with administrator privileges user name and password are optional; if you omit the user name, do shell script assumes it to be the current user; if you omit the password, it will ask for a password when it runs. Once a script is correctly authenticated, it will not ask for authentication again for five minutes. As of Mac OS X 10.4, this grace period does not extend to any other scripts or to the rest of the system; manually calling sudo -k is unnecessary.

For security reasons, you may not tell another application to do shell script with administrator privileges. Put the command outside of any tell block, or put it inside a tell me block.

Bear in mind that administrator privileges allow you to change any file anywhere in the system. You can render your system unbootable or even erase the entire disk with a few well-placed commands, so exercise caution. Better yet, don’t use administrator privileges unless you absolutely have to. Unless you are doing system-level development, you should never need to change anything in /System — changing /Library should suffice.

Note: Using sudo(8) with with administrator privileges is generally unnecessary and creates security holes; simply remove the "sudo".

AGGIORNAMENTO IMPORTANTE 2

* Puoi salvare l'app come "esegui solo" (salva prima una copia modificabile per te stesso)

(Se lo salvi solo come Run Only anche se non sarai in grado di aprirlo e modificarlo più tardi una volta chiusa la finestra dello script.)

Quindi utilizza il menu File- > Esporta che ti darà l'opzione nella finestra di dialogo Salva per salvare come "Solo esecuzione"

Tentativodiaprireilfilemain.scptnelpacchettodell'applicazione:

A Run only impedirà a qualcuno di aprire lo script incorporato nell'applicazione facendo doppio clic su di esso per aprirlo in Script Editor e scoprire la tua password. Ma c'è un modo per trovare il nome utente e la password da un Run Only e non è così difficile da capire anche per un utente occasionale.

MI PENSERA 'DUE VOLTE PER REALIZZARE IL NOME E LA PASSWORD DELL'UTENTE NELL'APP.

UPDATE 3

Una piccola idea per aiutarti se devi fare questo è rompere il testo della password creando un nome di variabile senza senso per tenerlo e mischiarlo.

Quando il codice viene eseguito, verrà riassemblato nell'ordine corretto.

Ad esempio.

se la password è 88 > 0TpFpax

Userò:

    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

Si noti che non solo la variabile non significa nulla o mostra alcun senso dell'ordine, ma anche i bit della password sono confusi all'interno di essi.

Tutto finché il codice non viene eseguito.

Quindi, anche se incappano in come fare ciò di cui sto parlando, la password non verrà assemblata in alcun ordine che possa essere semplicemente utilizzata.

    
risposta data 03.09.2014 - 07:43
fonte

Leggi altre domande sui tag