I have a problem to which I already have an implemented solution, but I'm not sure whether it's the best one. In the interests of not biasing any possible responses, I won't say how I've chosen to solve it yet.
Let's say I have a website with different users.
Each of these users has a collection of server-side files.
I'd like each user to be able to run an untrusted serverside binary application. This binary application needs to work with the users' serverside files.
By untrusted I mean, let us assume it's 'bash' - completely open to exploitation. I'd like to ensure that primarily:
- Each user can only access their own files from this untrusted app
- Each user cannot affect the operation or security of the overall system from this untrusted app
- The solution can reasonably scale to many thousands of users
My question is: how would you provide this?