Host Linux and use ssh:// for your transport (the other option is HTTP). With that set up you need to run no full-time server at all and need to do no installation or configuration past that of the mercurial software itself. Each "user" will need its own account on that linux box in in question, and all access controls are provided by the underlying operating system's file permissions.
Other options, including hg-ssh and hgweb are available and descried on the Publishing Repositories wiki page, but for the basic setup you're describing you can just use ssh and there's nothing more to do:
Creating a repository remotely:
$ hg init ssh://user@yourhost//path/to/repo
Cloning:
$ hg clone ssh://user@yourhost//path/to/repo
Pushing:
$ hg push ssh://user@yourhost//path/to/repo
Pulling:
$ hg pull ssh://user@yourhost//path/to/repo
Where `//path/to/repo (notice there are two sets of double slashes) is any path on the "server" system where the user can read and write.