One thing that might help is having a broader background in the field and its concepts. If an interview question can feature a bunch of concepts you've never heard of, you might have missing bits of background you could learn more about to fill in gaps. You could go from "I have no idea what a hadoop is or what it's for" to "I know people like to use Hadoop for X and it works basically like Y but I've never used it myself" pretty quickly.
Anyone useful as a computer-related employee is still going to encounter problems they don't immediately understand on a daily basis, though. You need to be able to happily and confidently say "I have no idea what X is, what is that?". An interviewer will be happier to get a clear idea of what you don't know than to see you struggle to pretend to know things, because someone who pretends to know what they don't is a danger in a real workplace. And maybe they'll actually teach you enough to let you solve the problem, or, failing that, to be able to answer the next interviewer who asks you about that thing.
You could definitely build something like this. You definitely want either human review before execution or a fair amount of sandboxing for whatever your students submit.
Do you want students trying to brute force or exfiltrate whatever test data lives in the server? If not, either they should just have the test cases already, or they can get back how many/which of the secret test cases they passed along with their grade, so showing them the results live might not be so important. Unless you want something like "you have 3 tries to pass the secret tests so you can get a hint that your own tests missed a case and go back and try to guess what it was".
You also might want to invest time first in test harnesses for the students to run themselves, because you want them to learn good practices like coding against a test suite. If nothing else it makes it easier to make the auto-grader later if the students' code is all already hooked up to the same test framework.
Teaching students how to use fully use a multi-user Unix system can for some topics put unnecessary faffing about between the students and what they are trying to learn (are you teaching front-end web dev or something?), but in a lot of cases your students might actually be better served by something that makes them touch the deep magic than by a slick web UI that handles everything for them, as long as you turn it into a learning experience and not a protracted period of bafflement.
Does your school not already have some kind of shared CD department server/Unix environment for the students that could get you out of account management?
Also, the Right Way to get the code to the server is probably going to be Git and not a tarball. The students could/should be set up with a Git forge and indoctrinated in never leaving their code on their laptop to be sat upon and lost.