How to do central home directories and user accounts on Ubuntu?
Solution 1:
I've run something like this in the past. LDAP is your best bet for centralized accounts. This is reasonably standard, and should be easy to set up. The client is merely a matter of installing a few packages (ldap-utils, libnss-ldap, and libpam-ldap), and editing /etc/pam.d/common-(everything). You'll need to add a line like
<type of file goes here> sufficient pam_ldap.so
As well as this, you'll have to edit /etc/nsswitch.conf, to add ldap at the end of shadow, group, and passwd.
The server is somewhat more complicated. This seems to include a relatively up to date example of how to set it up. The OpenLDAP docs are also well worth reading.
For homedirs, you'll want to use NFS. Depending on whether you need them unmounted when users are not logged in, you may want to use the automounter (autofs). I've never used this, so I can't tell you where you're going to run into trouble there, but working without it should be perfectly doable, and will give you much the same effect, with a far less complicated setup.
Solution 2:
Apparently you can use LDAP for centralized user accounts. I'm told it's not easy to set up. We never did because we didn't have very many users. However, the centralized directories were implemented. This was done by doing an NFS mount of the home directory of the central server on the other server. It works very well.
Solution 3:
Going further, you may want to take a look at freeIPA, an open-source directory controller for Linux.
It ties together 389 Directory Server for LDAP, MIT krb5 for Kerberos, ISC NTPd for NTP, BIND for DNS, Dogtag for certificate management, ... really, it integrates everything you need in a domain controller, and gives them a unified a web interface and command-line client.