Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm setting up a production server on Ubuntu 10.04 using this technology stack:

  • Nodejs
  • Nginx to serve static contents
  • Mongo
  • Redis
  • Upstart for running applications as services
  • Monit for monitoring node application and nginx server

The server will host only 5 applications of this type. Nothing else.

How would you setup Ubuntu Users? It's a good idea to create a User per Application? Would you install software (node, mongo...) as root or as user(s)?

Thanks in advance

share|improve this question

Firstly don't ever run anything as root!

Now that I've got that out of the way for application supporting services such as mongo and redis each of those should be running under their own username (The Ubuntu packages will handle this for you)

As for application specific such as nodejs it depends how paranoid you want to get. If you have a number of distinct applications which need to be isolated from one another then I suggest having one user per application as you mention. If you have multiple nodejs instances running that are all part of the same application then you could consider running those as the same application specific username.

One final point just to be clear, if you have multiple applications all sharing supporting services such as mongodb then you can either run distinct mongodb instances per application or run a single mongodb and instead use it's internal authentication system to do access control. I suggest the latter the management overhead will be greatly reduced.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.