自从10.9有了一个新的功能叫iCloud钥匙串的,就出现了不少的麻烦。一是在10.9.3之前。好多人出现无限循环地要求用户输入Local items的password问题,还好这个问题Apple官方给出了一个暂时解决办法:OS X Mavericks v10.9.1:重复提示解锁“本地项目”钥匙串。只是没有不是终极修复。还好10.9.3中差点儿不用发愁它了-在我的測试中仅仅幽灵般地出现过一次。
二是,有的企业希望禁止它。可能它们的企业的安全规则禁止把诸如帐户信息/信用卡信息等存储到企业以外的不论什么介质中,尤其是放到网上,尽管Apple声称这个绝对的安全,只是依旧没有打消这种企业的顾虑,也许它们不愿或没有准备好改动内部规则来适应新的技术发展吧。
总之,可以禁止就好了。
而事实上iCloud钥匙串就是保存在用户的~/Library/Keychains中有着一长串类似UUID的目录里面的一个数据库中:
在钥匙链存储(Keychain Access)中,被显示为Local Items。并且与login钥匙链不同。用户无法删除它。曾经Local items与login的加密解密类似都是使用用户的登录password,一旦用户的登录password在其他地方改变(比方管理员能够改变本地用户password,或者AD/OD用户等),系统就会不厌其烦地询问曾经的password来为它们解密。自从10.9.3之后,可能使用了用户认证加密机制而绕过password加密,所以不会出现询问password的问题,只是login钥匙串还没有改变。
苹果的技术说了: No。
Apple官方没有也不会讨论禁止它的策略/方法。
只是建议能够屏蔽站点。
有人说。在系统偏好中禁止iCloud就能够了。不管是用Profile还是MCX等等技术--事实上有人发现,在至今可见的全部的OSX版本号中Profile都存在一个"bug",使得即便被admin禁止的系统偏好项目。依旧能够被普通用户使用。但是即便是那里禁止了,能够用户依旧可能在使用其他软件的时候激活它。比方互联网帐号,mail, 联系簿等等。
苹果建议,在网络上把iCloud给屏蔽了。
1. 经过网上多个admin的尝试,似乎与这些apps有关:
<span style="font-size:18px;">/System/Library/CoreServices/Keychain Circle Notification.app /System/Library/InternetAccounts/iCloud.iaplugin /usr/libexec/KeychainMigrator</span>
能够删除这些程序--本人没有尝试。是从网上其他地方汇集的。操作之前备份,后果自负。
2. 据说以下的脚本能够推断一个用户是否开启了iCloud:
<span style="font-size:18px;">#!/bin/sh OSVersion=$(sw_vers -productVersion) if [ $OSVersion == 10.9 ]; then currUser=$( /usr/bin/who | /usr/bin/awk '/console/{ print $1 }' ) Keychain=$( /usr/libexec/PlistBuddy -c "Print Accounts:0:Services:7:Enabled" "/Users/$currUser/Library/Preferences/MobileMeAccounts.plist" ) echo "<result>$Keychain</result>" else echo "<result>False</result>" fi</span>
#!/bin/sh #################################################### # # This script checks the url iCloud Keychain uses # and adds a record to the /etc/hosts file to point # it back to itself. # # Written by: Kenny 1/17/14 # ##################################################### # Get the current user. currentUser=`ls -l /dev/console | cut -d " " -f4` echo "$currentUser" # Get the URL iCloud Keychain contacts iCloudKC=`defaults read /Users/$currentUser/Library/Preferences/MobileMeAccounts.plist | grep -A 4 "KEYCHAIN_SYNC" | grep "escrow" | cut -d ':' -f 2 | sed 's/[/]//g'` echo "$iCloudKC" # Append the /etc/hosts file echo "127.0.0.1 $iCloudKC" >> /etc/hosts echo "host file appended"
4. 这个脚本把全部的iCloud escrowserver地址都屏蔽掉:
#!/usr/bin/env bash HostFile="/private/etc/hosts" ditto -v "$HostFile" /private/etc/hosts.bkup CurrentBlockHosts=$(cat "$HostsFile" | grep -c "icloud") if [[ "$CurrentBlockHosts" -eq 25 ]]; then exit 0 elif [[ "$CurrentBlockHosts" -eq 0 ]]; then echo "##" >> "$HostFile" echo "# Block the following hosts" >> "$HostFile" echo 127.0.0.1 icloud.com >> "$HostFile" for (( i = 1; i < 10; i++ )); do echo "127.0.0.1 p0$i-escrowproxy.icloud.com" >> "$HostFile" echo "127.0.0.1 p0$i-escrowservice.icloud.com" >> "$HostFile" done for (( i = 10; i < 25; i++ )); do echo "127.0.0.1 p$i-escrowproxy.icloud.com" >> "$HostFile" echo "127.0.0.1 p$i-escrowservice.icloud.com" >> "$HostFile" done else logger "[iCloudBlocker] Found $CurrentBlockHosts iCloud entries" fi exit 0
以上这些都是从网上搜集的信息。没有经过全然測试。