Linux - Set-up a client-server network from scratch [closed]

I have been looking for this, but haven't been able to find anything "complete" out there, probably because it's such a standard setup that people think it's included in the human genome by now. I know they are a lot of things in one question, but they are all related.

Here's what I would like to do:

  • Have one (in a more involved scenario more than one) Linux server, where information about users is stored.
  • Have several clients (7-800, with a mix on Linux and Windows) from which users can work.
  • Users have different roles (e.g. students, teachers and staff). Depending on the role, they have different permissions and different programs they need to use (students don't need to use the accounting software).
  • Users can login on any computer in the network and always see their desktop the way they left it when they last logged out. All the programs they need will be there, with the possibility for the administrator to add, update or remove programs for any users group.
  • All users of a certain category (say teachers) should each have his/her own folder and a shared folder where they put things they are working on together.
  • Ideally, users (at least some of them) should be able to login from home over the internet and still see their desktop with their programs, just as if they were in the office.

Bonus features:

  • When a new user needs to be created (new students come at the beginning of the new year) their information (Name, Address, Birth date, etc.) can be imported from a csv file and the system will automatically give them an initial random password (which they will have to change on first access) and create a mail account for them (like [email protected])
  • When the organization decides to change the 7-800 computers or to buy 2000 new ones, it should be possible to configure one of them and then "clone" the configuration on all others (if not at one time, at least in batches of some tens of them)

So the question is not necessarily how to do this. It would suffice to point to detailed information online. What I could find is not complete and very scattered around the net, so I can't put it back together to save my life.


It sounds like you are wanting a thin-client solution. That's what it was called in the old days anyway. Nowdays this is VDI (Virtual Desktop Infrastructure). The client devices have no physical storage and very little memory and CPU. Most of that is done on a server somewhere out of the way in a closet. Several vendors play in this space. Microsoft, Citrix, HP, IBM and Dell. I think Oracle got out and all their VDI stuff is now EOL? You can roll this type of solution on your own however you will spend hours upon hours making it all work properly and then more hours teaching people to use it. To say nothing of the hours spent supporting it after the fact. If you want a stable solution that just works, look at the turnkey solutions from vendors I mentioned previously. Do some homework, perhaps do a lab to demo the solution before picking a deployment. Just google "VDI for education". You can also look at "thin client for education" solutions offered by most of the big name IT vendors. I'm sure they would bend over backwards to help you if you talk to them.