Ubuntu Server Mac Clients

There are actually quite a few really good resources and good walk-throughs out there. There are a few things that really none of them talk about on any real level and that is what *should* be used or in which way it should be used. First off NFS does work with OS X Leopard and using the directory utility under the utilities folder in applications can be setup to automount. But NFS seemed really a pain to deal with and doesn't offer similar level of general functionality as AFP does. Now using netatalk for AFP did seem a bit faster transferring a series of files from the mac to the server as well. However both are not simple in their initial setup. For instance NFS relies on the user on both machines to have the same UID, but ubuntu starts adding users at 1000 and OS X does at 501. Changing the UID and the group id seems relatively simple but can cause problems. The way I found that worked the best and most readily for this was to do: sudo su - on ubuntu this will sudo you into the root taking the root environment. (sudo usermod and groupmod not usually a good practice. This is really probably the most complicated thing, but the restrictions OS X puts on the nfs shares makes it really almost not worth using when trying to have a nice integrated share system.
Netatalk is highly usefull, but has to basically be built from scratch to be usable with Leopard. I found this guide to be incredibly helpful and pretty straight forward. Only thing really not talked about is adding different shares in netatalk, which is pretty easy via /etc/netatalk/AppleVolumes.system Really I couldn't see any reason not to setup netatalk for the mac computers on the network, the only issue that I can potentially see is the same set of shared folders being accessed via samba and netatalk at the same time.
There is one relatively minor issue with Macs, they like to store these .DS_Store files all over the network share. I find this a mostly undesirable effect fortunately fairly easy to disable. Fortunately network .DS_Store can be disabled via these instructions. Also if a bunch of them do end up showing up on the linux machine it is a fairly easy process to remove them with this command: find . -type f -name "*DS_Store" -exec rm -f {} \; The reason why you want *DS_Store is because sometimes the ds files might be :2eDS_Store or .DS_Store or ._.DS_Store but they are all the same and just take up space.