Macos – Mac OS X – User home directories shared via NFS

macosnfsuser-accounts

I've run into some problems with how I've got user home directories set up on our system here.

Our server is an XServe, using Open Directory to manage the user accounts.

The majority of our workstations are OS X, but there are a few running Linux (Centos 5.3), and, as time goes on, we expect the proportion of Linux workstations to increase (at some point, we expect to move the server side over to Linux too, but for now we're running with what we've already got)

To ensure that the Linux and OS X workstations both see user's home directories in the same place, I shared the home directories using NFS.

On the server end, the home directories are stored in:

/Volumes/data/company_users

This is mounted on the workstations to:

/mount/company_users

This work fine on the Linux workstations, but there is some weirdness under OS X.

For the user who is logged in through the GUI, it all works just fine. However, if a user tries to SSH into a machine that they are not the primary user on, they often have no access to their own home directory.

It looks as though OS X is trying to do something else to the user home directories mount point when you log in through the GUI….

For example, on this machine (nv001), I (hugh) am logged into the GUI.

Last login: Mon Mar  8 18:17:52 on ttys011
[nv001:~] hugh% ls -al /mount/company_users
total 40
drwxrwxrwx   26 hugh    wheel         840 27 Jan 19:09 .
drwxr-xr-x    6 admin   admin         204 19 Dec 18:36 ..
drwx------+ 128 hugh    staff        4308 27 Feb 23:36 hugh
drwx------+  26 matt    staff         840  4 Dec 14:14 matt
[nv001:~] hugh% 

So Matt's home directory is accessible to him. However, if I try to switch to him:

[nv001:~] hugh% su - matt
Password:
su: no directory
[nv001:~] hugh% 

Or:

[nv001:~] hugh% su matt
Password:
tcsh: Permission denied
tcsh: Trying to start from "/mount/company_users/matt"
tcsh: Trying to start from "/"
[nv001:/] matt% 

Does anyone have any idea why it might be doing this? It's causing me all sorts of problems at the moment… The only machine that I can successfully switch users at the moment is the server that the user directories are stored on, where /mount/company_users is actually just a symlink to /Volumes/data/company_users

Best Answer

I think this one is figured out, with the help of a few other people...

The problem was that the home directories in /mount/company_users was being mounted as NFS, but OSX's Workgroup Manager was defining the home directory location in terms of an AFP link alongside a local mount point - so the AFP mounting and the NFS mounting were clashing somewhere along the line.

I fixed it by switching each user to having their home directory just defined by a full path rather than a full path and afp:// url.

Related Question