Yes - you need to run multiple user-mode servers with Fast User Switching turned on.
By default, VNC Server runs in Service mode and all connections are made to the console. Users will be competing for control of the mouse and keyboard.
Under Mac OS X, providing Fast User Switching is turned on, more than one host computer user can log on at a time. Each currently logged on host computer user can start VNC Server in User Mode, and all instances, for all users, run concurrently. Later versions of Mac OS (10.13 / High Sierra and later) have enforced a maximum of 5 concurrent "switched" users.
Note that all instances, in either mode, must listen on different ports and you will require a license for each instance of VNC Server in User Mode on the machine in question.
The steps for each user who requires a User Mode server are as follows:
- Log in to the User's session/account on the Mac (This can be done while connected using Service Mode VNC Server, if you do not have physical access to the Mac)
- Open a Terminal window and type:
/Library/vnc/vncserver-root -newinstance &
N.B. you must not close this Terminal window, otherwise the User Mode server will terminate
- This will start a User Mode VNC Server running on the user session that you are logged in with.
- Open VNC Server Options by right clicking the VNC Server icon (User Mode) in the top right, and then:
- Change Expert tab > StopUserModeOnSwitchOut to False
- Change Connections tab > Allow VNC connections over TCP to 5901 N.B. a different port is required for each User Mode server
- In VNC Viewer, enter IP:Port where IP is the IP address of the server, and Port is the port that you set for the User Mode server.
- You may need to add in the other user(s) to the VNC Server > Options > Users & Permissions tab. By default VNC Server will only accept the user that started the user mode VNC Server.
- Users must make sure that they do not Log Out, as this will terminate their user mode server
Perform steps 1 - 6 for each user session you want to create on the Mac. Please ensure that Terminal is enabled in System Preferences, Privacy and Security, Accessibility section.
The User Mode server can be automatically run on login to the Mac User Account. To do this:
- Open the Automator application from Launchpad/Finder
- Select "Application"
- Click "Show library" in the toolbar (if hidden)
- Add "Run shell script" (from the Actions/Utilities)
- Enter your script into the window, from Step 2 at the beginning of this article
- Test, by clicking the Run button in Automator
- Save the app using File -> Save
- Go to System Preferences -> Accounts -> Login items
- Add the app created by Automator
- Log out and back in to test the Login Item
There is one known bug in Mac OS X: if a user is connected to a switched-out session, and the user on the console presses the SHIFT key, then the connected user's typing (in the other session) will be affected too.