多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Mac OS X: 共享iPhoto图片 这个问题有两种层面的共享: 一种是多台Mac电脑之间共享;一种是在同一台Mac电脑上的不同用户之间共享iPhoto。 ### 多电脑不同用户之间共享: 其实这个功能是iLife内置提供的功能,谁希望共享自己的iPhoto图片库的内容,就可以到iPhoto菜单的Preferecens中,设置共享,并提供一个密码,这样当别人打开iPhotot后就可以找到网络上共享的iPhoto库, 当然这个共享只有在相同网段内的计算机才能看到。 [![](image/56a5a6965e9eb.jpg)](http://docs.google.com/File?id=dfm3jbw9_173cf45m2hh_b)   ### 一台Mac电脑上的不同用户之间共享: 这里有一些简单方便的方法,比如在忽略非启动盘的用户权限的情况下,可以存放在外置硬盘,U盘, 或者内置硬盘的其它分区都可以很简单地实现共享, 或者是制作一个磁盘映像文件,甚至是网络共享磁盘等,具体参考[One iPhoto, many users](http://www.macworld.com/article/50643/2006/05/junedigitalphoto.html "One iPhoto, many users"), 我这里介绍的方法复杂些,主要是用于只有一个磁盘分区也不想用上面的方法的情况。 介绍这个方法也是基于以前的有关ACLs介绍的blog ([Unix File Permissions and ACLs in OS X ](http://blog.csdn.net/afatgoat/archive/2008/12/07/3462131.aspx)和[Unix File Permissions & ACLs in OS X(part 2)](http://blog.csdn.net/afatgoat/archive/2008/12/11/3494974.aspx)的知识, 这里是一个具体应用实例. 同样也是尽可能使用bash脚本实现,这样便于管理员操作. 基本思路是:将需要共享的用户的iPhoto Library移动到一个共享目录中,或者省略,然后设置所有人能读写,最后所有人的iPhoto的配置都指向这个共享目录。 首先要关闭iPhoto应用程序,并在/Users/Shared目录中建立一个新的目录,就叫它FamilyPhotos吧. 如果我们希望把当前用户已经存在的iPhotoLibrary库共享,那么在Finder中找到当前用户的Home目录(可以按组合键Shirt+Command+H直接打开),将该用户位于~/Pictures/目录中的iPhoto Library移动到/Users/Shared/FamilyPhotos/目录中。 然后在Terminal中运行下面的命令, 假设当前用户是tonyliu, 并且具有管理员权限. <table id="sod2" border="1" cellspacing="0" cellpadding="3" width="100%" bordercolor="#000000"><tbody><tr><td width="100%"><span style="font-family: Courier New; color: #660000;">sudo -s<br/><br/>#1. 重置所有用户的iPhoto配置文件指向这个iPhoto库.<br/>for eachuser in `ls -l /Users/`<br/>    if [ -d /Users/$EachUser/Library/Preferences ]; then</span><br style="font-family: Courier New; color: #660000;"/><span style="color: #660000;">            </span><span style="font-family: Courier New; color: #660000;">defaults write </span><span style="font-family: Courier New; color: #660000;">/Users/$EachUser/Library/Preferences/</span><span style="font-family: Courier New; color: #660000;">com.apple.iPhoto RootDirectory "/Users/Shared/FamilyPhotos/iPhoto Library"</span><br style="font-family: Courier New; color: #660000;"/><span style="font-family: Courier New; color: #660000;">    fi</span><span style="font-family: Courier New; color: #660000;"><br/>done<br/><br/>#2. 用户帐户模版的设置<br/>cp /Users/tonyliu/Library/Preferences/com.apple.iPhoto.plist /System/Library/User/ Templte/English.lporj/Library/Preferences/<br/></span><span style="font-family: Courier New; color: #660000;">cp /Users/tonyliu/Library/Preferences/com.apple.iPhoto.plist /System/Library/User/ Templte/Chinese.lporj/Library/Preferences/<br/><br/>#3. 生成一个新用户组<br style="font-family: Courier New; color: #660000;"/><span style="font-family: Courier New; color: #660000;">dscl . -create /groups Family</span><br/></span><p style="font-family: Courier New; color: #660000;">dscl . -create /groups/Family PrimaryGroupID 500</p><p style="font-family: Courier New; color: #660000;">dscl . -create /Groups/Family RealName Family</p><p style="font-family: Courier New; color: #660000;">dscl . -create /groups/Family GroupMembers toliu</p><span style="font-family: Courier New; color: #660000;"><span style="font-family: Courier New; color: #660000;">dscl . -append /users/toliu GroupID Family</span></span><br/><br style="font-family: Courier New; color: #660000;"/><span style="font-family: Courier New; color: #660000;">#4. 设置适合的ACLs</span><br/><span style="font-family: Courier New; color: #660000;">sudo chmod -R +a "group:Family allow /<br/>delete,readattr,writeattr,readextattr,writeextattr,list,search,append,/<br/>add_file,add_subdirectory,delete_child,file_inherit,directory_inherit"  /Users/Shared/FamilyPhotos</span><br style="font-family: Courier New; color: #660000;"/></td></tr></tbody></table> 系统可能需要输入管理员密码. 说明: 1/2的步骤可以省略,每个用户在启动运行iPhoto的时候按住Option键,iPhoto就可以提示用户定位iPhoto库的位置. 3/4是关键,所有属于Family组的用户都有操作该iPhoto库的权限了。 对于Mac OS X 10.4的系统默认的情况下ACLs是关闭的,需要事先打开,详细参见上面提到的我的另外两个blogs的内容. Tony Liu June 2009, Calgary