9

I am looking for advice on the best way to share an iPhoto library between two users on the same Mac.

I currently use this approach and it works fine most of the time. One issue I have is that I will get a permission error when syncing my iPod. This seems to happen if the other user has used iPhoto and I have not opened iPhoto before syncing the iPod. If I open iPhoto then sync the iPod again there is no error.

How do others solve this problem?

7

Apple suggests you do it like this:

http://support.apple.com/kb/HT1198

Answer is too long to copy/paste here, so it's best to check it out at their site.

0

Apple's method demands that you share across a mounted drive image. There is another way. The key problem here, for sharing amongst users, is that the default file permissions created by iPhoto do not allow multiple users on the same computer to share a library.

You can use the launchd mechanism to create a user agent that watches where your iPhoto library is stored and makes the appropriate changes to the file permissions. Do the following:

  • Determine an appropriate shared directory. I use /Users/Shared/Pictures/iPhotoLib.
  • Store your iPhoto library there.
  • Create a text file called local.user.makePhotosReadable.plist in /Library/LaunchAgents/.
  • Fill the file with the following data. Some of these keys may be obsolete. You can check with the latest documentation for your system by using man launchd.plist to see what these commands mean:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Disabled</key>
  <false/>
  <key>Label</key>
  <string>local.user.makePhotosReadable</string>
  <key>ProgramArguments</key>
  <array>
      <string>/Library/Scripts/local.user/makePhotosReadable.sh</string>
  </array>
  <key>WatchPaths</key>
  <array>
      <string>/Users/Shared/Pictures/iPhotoLib</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>onDemand</key>
  <true/>
</dict>
</plist>
  • Create a file called makePhotosReadable.sh in the directory /Library/Scripts/local.user/.
  • Fill it with the following contents:
#!/bin/bash

chmod -R ug+rw /Users/Shared/Pictures/iPhotoLib
exit 0

All of the files created should be created by root and the makePhotosReadable.sh file should be executable by root and group.

These instructions aren't for a novice; they are for users familiar with Terminal and command-line interaction. I've tried to make them as clear as possible but your mileage may vary.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.