Mostra finestra di dialogo all'accesso (script bash)

2

L'idea è che quando qualcuno accede al mio Mac, viene visualizzato un popup e la data / ora vengono scritte su un registro.

Eseguo lo script bash da un cron job:

 @reboot ~/Develop/login.sh 

(Conosco launchd ma scelgo di usare cron, molto più facilmente)

lo script login.sh:

#!/bin/bash
osascript <<EOD
  tell application "System Events"
  activate
  display dialog "Unauthorized Login" buttons {"OK"} default button 1 with icon caution with title "WARNING!"
  end tell
EOD

echo "$(date) LogIn Alert" >> ~/Develop/login.log

Posso eseguire lo script con ./login.sh. Tutto funziona bene, viene visualizzata la finestra di dialogo e il tempo di accesso viene scritto nel registro.

Ma quando riavvia il mio Mac, la data / ora di accesso viene scritta sul file (quindi il lavoro cron funziona), ma la finestra di dialogo non sta spuntando.

(Ho dato un'occhiata alla domanda Esegui AppleScript dallo script di bash )

Quindi la mia domanda è come mostrare questa finestra di dialogo quando si riavvia il mio Mac? (macOS 10.12.3)

    
posta Mick dK 15.02.2017 - 07:00
fonte

2 risposte

0

Dovresti eseguire il tuo script sopra non come un cron job ma come descritto in questo post (*):

link

Assicurati di non confondere le cose in esecuzione nella schermata di accesso e di eseguire le operazioni di accesso come nella seguente domanda:

link

Tuttavia, non è necessario registrare gli accessi degli utenti quando vengono registrati automaticamente. Vedi "man last" e "cat /var/log/authd.log".

(*) Parte pertinente del post collegato sopra - o usa launchd, come descritto nel link

start Automator.app
Select "Application"
click "Show library" in the toolbar (if hidden)
Add "Run shell script" (from the Actions/Utilities)
Copy&paste your script into the window
Test it
Save somewhere, for example you can make an "Applications" folder in your HOME (you will get an your_name.app)
Go to System Preferences -> Accounts -> Login items
Add this app
    
risposta data 15.02.2017 - 13:45
fonte
2

Non dovresti aver bisogno di Eventi di sistema solo per visualizzare una finestra di dialogo, né puoi strettamente "attivarlo" ...
prova solo

#!/bin/bash
osascript <<EOD
  tell me to display dialog "Unauthorized Login" buttons {"OK"} default button 1 with icon caution with title "WARNING!"
EOD

echo "$(date) LogIn Alert" >> ~/Develop/login.log

Non riesco davvero a testarlo dato che sono totalmente all'oscuro su cron / bash / osascript stesso, ma sarebbe tutto ciò di cui avresti bisogno per un normale Applescript per visualizzare una finestra di dialogo.

Se ciò non funziona, il passo successivo sarebbe configurarlo in Automator, come applicazione, quindi impostato per l'avvio all'accesso.

    
risposta data 15.02.2017 - 07:20
fonte

Leggi altre domande sui tag