Come rinominare osascript nella finestra di dialogo dei privilegi di amministratore?

4

Ho usato il comando.

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

Richiede una password che dice che osascript vuole apportare modifiche. Quello che voglio è, come cambio la parola osascript ?

    
posta user237376 11.05.2017 - 18:34
fonte

3 risposte

5

Ho trovato un modo molto migliore per farlo, scavando attraverso il documento Applescript sul sito dello sviluppatore Apple. Ho trovato questa nota di rilascio per Applescript in MacOS 10.10

Dice:

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

Tuttavia, trascura di dire come puoi farlo. Dopo alcune congetture, ho scoperto che esiste una clausola prompt che ti consente di sostituire osascript wants to make changes... con quello che vuoi quando usi do shell script...with administrator privileges in uno script invocato da osascript . Ad esempio:

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

genera una finestra di dialogo che assomiglia a:

Spero che questo aiuti qualcuno.

    
risposta data 24.10.2017 - 20:02
fonte
2

I metodi di cui sopra richiedono tutti i privilegi di amministratore, ma se si sta provando a farlo come parte di uno script di bash che si desidera distribuire senza richiedere privilegi di amministratore o di configurazione extra, si potrebbe fare qualcosa di simile al seguente:

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"

Questo creerà una directory temporanea, compilerà lo script come un'applet, la eseguirà e quindi cancellerà la directory temporanea e l'applet.

    
risposta data 08.08.2017 - 18:27
fonte
0

Supponendo che El Capitan o Sierra siano installati, prima disabilita SIP e avvia nuovamente il sistema principale.

Apri il terminale e inserisci:

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

Abilita nuovamente SIP.

Ora butterfly chiederà di apportare modifiche dopo aver inserito

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

Invece di farfalla puoi usare quasi tutti gli altri nomi. Il nome non dovrebbe essere il nome di un eseguibile già esistente sul tuo Mac (soprattutto non deve essere già esistente nel tuo PERCORSO).

Quindi ls o diskutil è un grande NoNo ma necyria_bellona è OK.

Questo non funziona per i volumi APFS (High Sierra e successivi), perché i collegamenti rigidi non esistono in questo file system.

    
risposta data 11.05.2017 - 19:38
fonte

Leggi altre domande sui tag