Is there a way to get a separate desktop/Gnome terminal for each user logged in through VNC? I want to be able to have several people working simultanously on the same machine in Ubuntu.
You need xinetd and vnc4server, which allows a very elegant solution. I have installed this on a large server at my college and use it as a virtual hardware lab.
The server has a number of vnc ports open, each with a resolution configured. If a user connects to the port, a new vnc sesssion is created and the graphical login screeen is shown. I have added the configuration for xinetd as well in the post below.
Find all details here: http://blog.epr.ch/2012/10/elegant-solution-for-remotely-accessible-vnc-desktops/
You can start a new X11 session on your desktop by first switching to a new virtual console with Ctrl+Alt+Fn and then starting X-server with
startx -- :n where n is display number starting from 1. Then start
/usr/lib/vino/vino-server. Then remote users can connect to your other X11-session with
vinagre host:n, you can change to your display with Ctrl+Alt+F[n] then.