牛骨文教育服务平台(让学习变的简单)

Mac OS X: 共享iPhoto图片

这个问题有两种层面的共享: 一种是多台Mac电脑之间共享;一种是在同一台Mac电脑上的不同用户之间共享iPhoto。

多电脑不同用户之间共享:

其实这个功能是iLife内置提供的功能,谁希望共享自己的iPhoto图片库的内容,就可以到iPhoto菜单的Preferecens中,设置共享,并提供一个密码,这样当别人打开iPhotot后就可以找到网络上共享的iPhoto库, 当然这个共享只有在相同网段内的计算机才能看到。

 

一台Mac电脑上的不同用户之间共享:

这里有一些简单方便的方法,比如在忽略非启动盘的用户权限的情况下,可以存放在外置硬盘,U盘, 或者内置硬盘的其它分区都可以很简单地实现共享, 或者是制作一个磁盘映像文件,甚至是网络共享磁盘等,具体参考One iPhoto, many users

我这里介绍的方法复杂些,主要是用于只有一个磁盘分区也不想用上面的方法的情况。
介绍这个方法也是基于以前的有关ACLs介绍的blog (Unix File Permissions and ACLs in OS X Unix File Permissions & ACLs in OS X(part 2)的知识, 这里是一个具体应用实例. 同样也是尽可能使用bash脚本实现,这样便于管理员操作.

基本思路是:将需要共享的用户的iPhoto Library移动到一个共享目录中,或者省略,然后设置所有人能读写,最后所有人的iPhoto的配置都指向这个共享目录。

首先要关闭iPhoto应用程序,并在/Users/Shared目录中建立一个新的目录,就叫它FamilyPhotos吧.

如果我们希望把当前用户已经存在的iPhotoLibrary库共享,那么在Finder中找到当前用户的Home目录(可以按组合键Shirt+Command+H直接打开),将该用户位于~/Pictures/目录中的iPhoto Library移动到/Users/Shared/FamilyPhotos/目录中。

然后在Terminal中运行下面的命令, 假设当前用户是tonyliu, 并且具有管理员权限.

sudo -s

#1. 重置所有用户的iPhoto配置文件指向这个iPhoto库.
for eachuser in `ls -l /Users/`
    if [ -d /Users/$EachUser/Library/Preferences ]; then

            defaults write /Users/$EachUser/Library/Preferences/com.apple.iPhoto RootDirectory "/Users/Shared/FamilyPhotos/iPhoto Library"
    fi
done

#2. 用户帐户模版的设置
cp /Users/tonyliu/Library/Preferences/com.apple.iPhoto.plist /System/Library/User/ Templte/English.lporj/Library/Preferences/
cp /Users/tonyliu/Library/Preferences/com.apple.iPhoto.plist /System/Library/User/ Templte/Chinese.lporj/Library/Preferences/

#3. 生成一个新用户组
dscl . -create /groups Family

dscl . -create /groups/Family PrimaryGroupID 500

dscl . -create /Groups/Family RealName Family

dscl . -create /groups/Family GroupMembers toliu

dscl . -append /users/toliu GroupID Family

#4. 设置适合的ACLs
sudo chmod -R +a "group:Family allow /
delete,readattr,writeattr,readextattr,writeextattr,list,search,append,/
add_file,add_subdirectory,delete_child,file_inherit,directory_inherit"  /Users/Shared/FamilyPhotos

系统可能需要输入管理员密码.

说明:
1/2的步骤可以省略,每个用户在启动运行iPhoto的时候按住Option键,iPhoto就可以提示用户定位iPhoto库的位置.

3/4是关键,所有属于Family组的用户都有操作该iPhoto库的权限了。
对于Mac OS X 10.4的系统默认的情况下ACLs是关闭的,需要事先打开,详细参见上面提到的我的另外两个blogs的内容.

Tony Liu
June 2009, Calgary