This is a how-to for Terminal-savvy folk interested in having a
single iTunes music library and/or a single iPhoto library shared by
multiple users (e.g. for a family Mac).
When I went looking for a way to set up shared iTunes/iPhoto, a
solution wasn't easy to find. There is an OS X shareware app that
does it (and manages libraries). But I thought I would share my
solution to the problem in case its useful to others - it requires
more OS X knowledge up front, but is simpler overall. No doubt there
is an easier way still, but for now this is what I have. Hopefully
Apple will make this an out-of-the-box option one day. I'm using it
with 10.4.6 and have used with 10.4.4 and 10.4.5, but it should work
for any version of Tiger, as ACL's were introduced in 10.4 Tiger.
Part 1: Overview of the solution
To have multiple users share iTunes or iPhoto, you need to move your
iTunes or iPhoto Library directory into a shared directory that every
user can access. Then you set access control list (ACL) permissions
so the users can all act on the shared directory (standard Unix
permissions have umask issues). Once this is done, you create a link
for each user who needs to access the shared directory. Sounds a
bit tricky, but its not really.
You will end up with one main directory:
/Shared/Music/iTunes (this is the directory where your music
collection lives)
And then for each user you have a link:
/Users/Mary/Music/iTunes --> /Shared/Music/iTunes
After that, iTunes and iPhoto work as normal for all users, you won't
notice the difference. Note it means anyone can upload photos/music,
and anyone can delete. Security note: you will be putting music
and photos into directories accessible to all users on your Mac, so
if your photos/music need to be kept secure from other users, don't
do this.
Part 2: Step by step instructions for sharing iTunes
Disclaimer: you need to use Terminal and a some shell commands to set
this up. While its not really hard or dangerous, this information is
presented 'as is', and you should only follow the instructions if you
know your way around Terminal and the command line and are happy to
sort out any problems that may arise. I can't guarantee it will work
for you, and am not offering tech support if it doesn't. Backup
first if you are worried. But I've used this approach and it works
very well for me.
Note: the $ sign is a symbol for commands to be issued in Terminal
(ie. to your OS X shell). Your prompt will usually have text before
the $
You should be logged in as the Admin user that created the iTunes
library you want to share.
1. Make sure you have your iTunes songs backed up (this isn't a
particularly risky process, but backing up is such a good idea anyway!).
2. Start Terminal (from Finder, Applications)
3. Turn on ACL commands
$ sudo fsaclctl -p / -e
(Note: for your first sudo command, you will be prompted for your
Administrator password).
4. Check ACL commands are on
$ sudo fsaclctl -p /
5. Create a shared directory. I use /Shared in this example, but you
could use /Users/Shared or another name.
$ mkdir /Shared
$ mkdir /Shared/Music
6. Set open permissions on the new directories
$ chmod 777 /Shared/Music
7. Move your iTunes library across to /Shared/Music. Change
directory, check iTunes is there, and then do the move. Note the
files don't actually go anywhere, you are just tell OS X to move
pointers to the files from one directory to another, so don't worry
if the command seems very fast.
$ cd ~/Music
(note: the tilde stands for your home directory)
$ ls -l (this is where you check that iTunes is in the directory)
$ mv iTunes /Shared/Music
8. Create a symbolic link for the iTunes directory (think of this as
being like an Alias)
$ ln -s /Shared/Music/iTunes iTunes
$ ls -l (this is just so you can see what the link is doing -
pointing to the other directory)
9. Now set ACL permissions for any other users that need to access
the iTunes directory. The example is for a user called Mary, you
need to do this for each user (ie repeat the command but replace Mary
with each user name). This is quite a long command, check your
spelling and make sure you leave spaces where they are needed!
$ sudo chmod -R +a "Mary allow
read,write,append,delete,list,search,add_subdirectory,delete_child,file_
inherit,directory_inherit" /Shared/Music/iTunes
Note: start iTunes to check .. it should work normally. If iTunes
can find the music directory, find it manually and point to your
Music directory
10. Your now need to switch into Mary's account, and create a
symbolic link for her. So login as Mary.
11. Start Terminal (make sure you are now logged in as Mary)
12. If Mary already has an iTunes directory, move it somewhere safe
(you can delete it after checking it for files you need to keep).
cd ~/Music
ls -l (this is where you check for an iTunes directory - if its not
there, you can skip this next mv)
$ mv iTunes Old_iTunes
13. Create a symbolic link for Mary
ln -s /Shared/Music/iTunes iTunes
14. Start iTunes for Mary.
iTunes may say it can't find the Music library. If it does, just
choose to find it manually, and select your Music, iTunes directory.
Part 3: Sharing iPhoto
The approach is the same except:
ACL commands are already switched on, so you don't need to repeat
You are working with ~/Pictures and /Shared/Pictures instead of ~/
Music and /Shared/Music
You are sharing ~/Pictures/iPhoto Library instead of ~/Music/iTunes
You have to use double quotes around file names with spaces e.g.
"iPhoto Library"
e.g. $ mv "iPhoto Library" "/Shared/Pictures/iPhoto Library" or $
ln -s "/Shared/Pictures/iPhoto Library" "iPhoto Library"
Part 4: if you want to restore things to the way they were ...
1. Remove symbolic links using the rm command
$ cd ~/Music
$ ls -l (to list your files and check the link exists)
$ rm iTunes
2. Move your music file back to where it was
$ mv /Shared/Music/iTunes ~/Music
3. Delete all files in Shared/Music and then the Music directory.
Caution: rm -R * deletes everything in and below the specified
directory!
$ cd /Shared
$ rm -R /Shared/Music/*
$ rmdir Music
Happy sharing, and thanks to Ad Hominen where I first found this ACL
based approach documented. http://ad.hominem.org/log/2005/07/
acl.php Its not clear why but this approach didn't work for the
iPhoto for the original author, but I haven't had any trouble with it.
If you want to find out more about ACL's, try http://maczealots.com/
articles/acl/