IMHO, A Linux VM for every user sounds like overkill. A separate *NIX user account should be sufficient for teaching things like "Navigating the Filesystem", "Configuring the Environment" etc.
Securing multiuser linux is not an easy thing.
Even if you set process limits, restrict permissions, etc. you can still be very easily hit with a priv escalation bug in a utility you allow users to run or even in bash itself.