Apple’s MacOS has a tidy built in remote access client and service generically known as “Screen Sharing”. Yay! This works great for headless machines, testing servers, and annoying your spouse. The paranoid and performance conscious user may not want these services continuously running. Rogue services hanging out, listening, and waiting for some punk to probe them in an Internet dark alley. This cobbled together shell script might be for you!
This shell script has four simple commands (I use sudo because I really should):
# sudo ./share-screen.sh start
# sudo ./share-screen.sh stop
# sudo ./share-screen.sh allow {username}
# sudo ./share-screen.sh deny {username}
I use this in terminal. Make sure you put a copy of this script on the target machine and make it executable. First I make sure that Remote Login is active on the target computer. It’s under Sharing in System Preferences. Then I login remotely using ssh. I fire up the script, activate Screen Sharing, do my business, shutdown Screen Sharing, log off, and go home.
Of course, no warranty, no guaranty. Good Luck!
#!/bin/bash
if [ $# == 0 ]; then
echo "Commands: start, stop, allow <username>, deny <username>"
exit
fi
case "$1" in
start)
echo 'Starting Remote Access'
# Activate Apple Remote Access with current settings
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate
;;
stop)
echo 'Stopping Remote Access'
# Deactivate Apple Remote Access
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -stop
;;
allow)
if [ -z "$2" ]; then
echo "ERROR: Provide a valid user"
exit
fi
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -specifiedUsers
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -access -on -privs -all -users ${2}
;;
deny)
if [ -z "$2" ]; then
echo "ERROR: Provide a valid user"
exit
fi
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -specifiedUsers
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -access -off -privs -none -users ${2}
;;
esac
I almost forgot. Credit where credit is due! Inspiration from these articles and resources:
http://www.macosxhints.com/article.php?story=20080318190503111
http://rentzsch.tumblr.com/post/515009165/starting-vnc-remotely-via-kickstart