Slashdot Mirror


Shared Address Books for Mac OS X?

sg3000 writes "A friend asked me a question about setting up shared address books with Mac OS X, but I have no idea how to solve this. He wants to set up an address book that can be accessed by different user accounts on the same Mac or by different Macs in the same household. This would be useful for having a single place to put contact info for family and friends. His first thought was to move the Entourage user folder to the Shared folder in Mac OS X and just move aliases of that folder to each of the users' folders. This way when they open Entourage they would see the same address book and both can make changes to it. The downside? Well, you're stuck with Entourage, it will work only on a single machine, everything is shared between the users (all contacts not just a subset, calendar, email, to-do list, etc) and it won't work with other mail clients. I know with the new Mac OS X 10.2, you can share calendars between people using iCal. Is there some way to do this with the new address book for Jaguar too? Since 10.2 is basically shipping now, you can throw NDAs and caution to the winds!"

"My solution was to set up a FileMaker Pro database and put the file in the Shared folder. The downside is you couldn't do a simple lookup from the email compose window like you can with the integrated address book.

So finally I thought, what if you set up an LDAP server running on one Mac in the house, and then just set up your email clients to access those. Easy, except other than what I just described I know nothing about LDAP.

LDAP looks like it's a lot more than the shared email list that you see in a mail client. And I couldn't find an LDAP server for Mac OS X. It looks like OS X Server has something but that's overkill; we're talking about sharing addresses among five people, tops. Mac OS X has something called Directory Setup that looked kind of right, but Google returned no info on how to do this."

12 of 38 comments (clear)

  1. Re:LDAP for OS X by diverman · · Score: 2, Informative
    I guess I should have made that a link, huh?

    -Alex

  2. Re:LDAP by diverman · · Score: 3, Informative

    What?? You do NOT need to go and pay for a server OS to run a server process on a machine... ESPECIALLY for home use.

    YES! OS X Server would be SERIOUS overkill!

    The standard release of OS X is MORE than enough to run a basic LDAP server, Apache (um, which ships with it), Named (also ships), MySQL and Postgresql.... ALL at the same time. Hell, I can probably run a ton of other stuff and not notice.

    The higher end servers are needed for performance and ease of maintenance. And they're needed because their server processes would theoretically be under a high load. And even the XServes aren't really meant for the REAL high end server market.

    Anyway... just couldn't let such an innacurate statement go by without comment, considering this person was referring to "home use".

    Cheers,
    -Alex

  3. A few options... by dr00g911 · · Score: 2, Interesting

    You could try OpenLDAP, but I haven't had very good luck with it in the past -- it's also overkill IMO. Oh yeah, and Entourage gets all sorts of flakey with non-MS LDAP servers.

    Another option is to load up something like a PHP groupware solution... moregroupware is a really nice option, although German is the developers' first language ;)This'll give you webmail, shared (and private) calendars and address books.

    What I'd do personally is just set up a quick mySQL database and PHP or Perl front-end that gives you clickable mailto: links for people's records. There's a million packages like this on Zend. I wrote one similar to record incoming callerID info and join to a vcard-like mysql table. Took an hour or two.

    On the other hand, if you want to use Apple's address book, you could try to find where on the disk the data files are saved and do a root cron job to copy those files either between accounts or machines.

    With Apple pushing Rendzevous and iCal as much as they are, I'm sure an Apple solution will pop up pretty quickly.

    Best of luck.

  4. A Solution that Works... Mostly by greenhide · · Score: 2, Informative

    Okay, You said you didn't want to use Entourage. How about Eudora (yeah, commercialware, ads, etc)? In Eudora, you can create something called a Nickname "book". You could place *that* in the shared folder, and create aliases to it. I haven't tested it out across shared mailboxes, but it does work if you have an alias pointing to it. Here are the steps to make an address book: 1) Go to Windows > Address Book 2) Click on the Icon that looks vaguely like a purple book with a star (may be marked "Book") 3) Enter all the addresses you want. Now quit Eudora, copy that Nickname to the shared folder (will be located in Eudora Folder/Nicknames/) to the shared folder. As e-mail clients go, you can't go too wrong with Eudora. And it solves your problem, too.

    --
    Karma: Chevy Kavalierma.
    1. Re:A Solution that Works... Mostly by constantnormal · · Score: 2, Informative

      None of the solutions based on providing multiple user access to an address book by replicating aliases to it will work if the address book is subject to updating by multiple users.

      That's what a database is for.

      IF (and ONLY IF) you are going to limit your address book updates to a single user, then replication of aliases/links can work. Otherwise, you eventually run into the problem where two users are going to update it at the same time (or within a small enough window that both read the same data but write different data), and one clobbers the other's update, or worse, clobbers some critical data structure and nukes the address book. The LDAP solution is the best way to handle this.

  5. Using Address Book by harveyswik · · Score: 2, Informative

    Yes, you can do this with Address Book in 10.2 Just drag it's Pref folder in Library to the Public folder as you did with Entourage. I'm not sure how well this setup works if two people make a change to the address book within a few seconds of each other. Data loss MB?

  6. Re:FileMaker by rjrjr · · Score: 2, Informative

    There is no need to pony for FileMaker Server. Any FileMaker Pro instance can, uhm, serve as a server. You will, though, have to buy a separate FMP license for each box. Me, I'd use something Free.

  7. Re:LDAP by diverman · · Score: 2

    I wanted to reply to the XML comment too, but am not sure enough about my understanding of LDAP to question it. I thought LDAP was a spec, and not specific about the storage implementation detail (such as XML or relational DB, etc).

    I guess it's just another piece of info that was inaccurate. :)

    -Alex

  8. Re:LDAP by prinzip · · Score: 2, Informative

    LDAP is a kind of database where you can store anything, but you need to have schema that describe what the data are (like a type). But behind ldap you have a real database, because you have to store your ldap in a this db (default ldbm, but it can be mysql, postgres, netinfo (in osx), etc...

    --
    Bombing for peace is like fucking for virginity!
  9. Use OpenLDAP by GOD_ALMIGHTY · · Score: 3, Informative

    Check out the mailing list archives at http://www.openldap.org.
    This is what LDAP was meant for, among other things.
    After a couple of minutes searching the openldap-software list I saw people trying to do 3 things with OpenLDAP on OSX.

    1) run it. Used to have problems with replication (slurpd) and multithreading.But that was a few months ago.

    2) Use it for user management like NIS. Essentially using nsswitch_ldap on OSX. Some success it looks like.

    3) Use it for shared address book stuff. Working fine.

    LDAP is awesome, think about a relational database where the table layout for common data is already specified for you. i.e. storing a user in a database where the table schema is the same, no matter which database you use.

    This is why all the major mail clients support any LDAP server as an address book. The schema for an entry in the address book is specified, but can be expanded. Essentially you have entries in the server that are of the inetPerson object type, an entry can have multiple object types and object types can inherit from other object types. Think of an object type as a table definition in a database. You can search by object types or by attribute values (Objects are made up of defined attributes: inetPerson is an object type, email is an attribute of inetPerson).

    Essentially if you write an app that knows how to deal with data stored in an inetPerson structure, it will be able to integrate with any other app that can do the same.

    LDAP will not replace a generic relational database, nor is it meant to. It's optimized for reads and has a hierchical layout. You can have a SQL backend if you want, but I wouldn't do this unless I needed a gateway to a legacy database.

    People should be moving data out of the database and into LDAP servers where appropriate. LDAP is the basis for Directory Services like Active Directory and Novell's Directory Services (LDAP is a gateway for Novell actually, complicated relationship).

    So, essentially, use LDAP, it's a good idea. The OpenLDAP tools aren't the best and it can be a bit of a pain to set up, check out Directory Administrator and GQ (both GTK apps) to manage OpenLDAP.

    Have fun....

    --
    Arrogance is Confidence which lacks integrity. -- me
  10. LDAP & Jaguar by babbage · · Score: 3, Informative
    Uhh, isn't one of the big deals about Jaguar that it builds LDAP right into the system, as a replacement for both the user level AddressBook application and the system level NetInfo database?

    I mean yeah, you can use Marc Liyanage's site to download OpenLDAP package, or [my preference] you can just install Fink and let it do the work for you with a simple (if slow) fink install openldap-ssl, but really -- if it's built into the system then why go to all that trouble? Development of the Fink package more or less stalled once it was announced that LDAP would be built into the client version of Jaguar, and that's not unreasonable. Why reinvent the wheel, ya know? Just upgrade your OS....

  11. Directory Access app by aelvin · · Score: 2, Informative

    The Directory Setup app (called Directory Access in 10.2) in the Utilities folder is not the server, it's the configuration app for Open Directory access (NetInfo, LDAP, BSD config files, etc.). In other words, it's how you tell OS X about directories for services, authentication, and contacts. 10.2 docs for all this stuff are here

    I agree with a lot of the other posts: the best way to do this is to set up OpenLDAP on one of the machines, point Directory Access to it, and you're golden. It'll work in 10.1, but it rocks in 10.2.