Spero che qualcuno possa ora come ottenere l'input dell'utente nella finestra di accesso. Sto provando ad aumentare una finestra di input nella finestra di login come parte di un primo script di avvio. Inizialmente avevo provato ad usare, CocoaDialog (ma ho anche provato AppleScript). Ecco il mio script iniziale, funziona se un utente ha effettuato l'accesso, ma non se il sistema si trova nella finestra di accesso.
#!/bin/bash
# Script to promtp user for new hostname, and then set it
# Script needs to be packaed with CocoaDialog, which needs to be deployed to /Library/PrivilegedHelperTools/
CD="/Library/PrivilegedHelperTools/CocoaDialog.app/Contents/MacOS/CocoaDialog"
while [ "$proceed" != 1 ]; do
userInput=$($CD inputbox --title "Set Hostname" --text "new_hostname" --button1 " OK " --button2 "Don't Set" --float)
buttonClicked=$(echo "$userInput" | awk 'NR==1{print}')
if [ "$buttonClicked" == 1 ] ; then
newHostname=$(echo "$userInput" | awk 'NR>1{print}')
else
cancel=$($CD msgbox --title "Set Hostname" --text "Would you like to skip setting the hostname?" --button1 " NO " --button2 "YES" --float)
if [ "$cancel" == 2 ] ; then
echo "Hostname not set"
exit 1
fi
fi
proceed=$($CD ok-msgbox --title "Set Hostname" --text "Set new hostname to: '${newHostname}'?" --float)
done
/usr/sbin/scutil --set ComputerName "$newHostname"
/usr/sbin/scutil --set HostName "$newHostname"
/usr/sbin/scutil --set LocalHostName "$newHostname"
echo Hostname set: $newHostname
exit 0
Questo è l'errore che ottengo quando provo a ssh in ed eseguo lo script come root mentre nella finestra di login:
_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
Potrebbe non esserci modo di farlo, perché penso che abbia a che fare con il sandboxing, ma se qualcuno ha qualche idea, sarebbe molto apprezzato.
Sono aperto ad usare AppleScript o Javascript al posto di CocoaDialog se qualcuno sa come farlo funzionare