Perhaps I’m not looking in the right place, but there seems to be very little information on the web about how to setup a linux client to use Apple’s Open Directory. There is a lot of information for the reverse process (setting up an Apple client to use an OpenLDAP server), which seems to suggest that few people are using Apple’s Open Directory as their main directory server in a mixed-platform environment. This blog post has links to a 3-part article series that covers some of the relevant information, but is not exactly what we needed. Getting a linux client to authenticate to an Open Directory is fairly trivial, but getting home directories to work correctly is not.
Lots of people like the idea of sharing one home directory for both Apple and Linux logins, but I think that results in some confusing overlaps and ugliness on the Desktop. Windows Samba home directories are almost always treated as a separate folder/share, so why should linux home directories be any different? Since Apple Open Directory is basically just OpenLDAP, the two systems overlap nicely, making combined home directories possible, but I still don’t think it makes much sense (the Desktop icons for a Linux system would show up on your Apple system and vice versa, making it confusing for the user).
The end result is that there is no magical way for users to have one shared home directory that integrates perfectly into whatever OS you log into. Thus, a separate network share that is independent of all the normal home directory crap (Desktop/Documents/Movies/etc) is necessary. It turns out that this is possible using Open Directory, but that it is easier to have Linux and Apple home directories shared. Within an Open Directory (or OpenLDAP), there are fields for your Apple Home Directory, NFS Home Directory, and Windows (Samba) Home Directory. However, Workgroup Manager in OS X Server automatically populates both the Apple Home Directory and the NFS Home directory based on your selection in the Home tab, so you have to manually edit the NFS Home Directory entry if you want something different. The problem with manually editing is that it isn’t as automated (though there is probably a way to make it more automated through the use of presets?). Additionally, it is more easily messed up–so it is best to have a combined Apple/Linux home directory as it is originally setup. Thus, in order to properly mount a user’s home directory in Linux, setup the ridiculous mount point on your linux box by creating the directory structure: /Network/Servers/<servername>/Volumes/<volumename>/home and mounting via NFS the network share in that location.
See future posts for details about our particular setup and on how to make Linux/Apple/Windows play nicely together.