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.