升级 El Capitan,工行 U 盾挂了(天地融)

2015-09-11 10:33:17 +08:00
 dotpig

因为 GM 出来了,就顺手升级了。结果发现工行的 U 盾用不了了。仔细看了一下,天地融安装程序在 /usr/lib 目录下安装了一票 dylib ,升级 El Capitan 之后,因为是 rootless ,系统把 /usr/lib 底下不属于系统的文件全删了。第三方的只能放到 /usr/local 底下(其实,就算不是 rootless 的系统,第三方的 lib 类文件也应该放到 /usr/local/lib 之下,这是礼节。)

然后再看了一下天地融的运行文件,地址都是硬链接。其实作为工行 /天地融来说,更新很简单,就是换一个目录。

跟工行的客服沟通了一下,发现鸡同鸭讲。天地融,根本就没有沟通的渠道,我估计等他们自己发现并更新估计又得一年两年了。难道为了一个网银我又要装回虚拟机了吗?

8392 次点击
所在节点    macOS
42 条回复
ozOGen
2015-09-11 10:39:15 +08:00
进 recovery
terminal 输 csrutil disable
reboot 回来装驱动
装完再回 recovery terminal 输 csrutil enable
dotpig
2015-09-11 10:43:40 +08:00
@ozOGen 这个重新 enable 了之后不会被删?本来那些就是升级时系统删的啊。等一下我试试看。
ozOGen
2015-09-11 10:51:44 +08:00
@dotpig 应该不会,至少我这都比较正常。。。。
ozOGen
2015-09-11 10:53:27 +08:00
@dotpig 升级时候我也被删了 N 多东西。。。还好升级前做了这个功课。。。之后基本上都补回来了
ozOGen
2015-09-11 10:55:55 +08:00
@dotpig 如果想关闭 rootless 的话 enable 那一步就不用了,不过不建议关闭。。。
ooxxcc
2015-09-11 10:57:21 +08:00
等等,工行 U 盾 mac 下能用……我常年用的 PD ……
mozkoe
2015-09-11 10:57:59 +08:00
@ozOGen 对于其他程序,把 /usr/local 的所有者改成`whoami`:admin ,这样就没问题了吧。。。
ozOGen
2015-09-11 11:01:27 +08:00
@mozkoe 如果没记错的话。。。 rootless 开启的情况下是不能改的= =
mozkoe
2015-09-11 11:04:09 +08:00
@ozOGen 可以的。/usr/local 目录不被 rootless 保护,只是默认归 root 所有。
mozkoe
2015-09-11 11:05:48 +08:00
@ozOGen 你可以用 ls -lO /usr 看一下。
dotpig
2015-09-11 11:10:46 +08:00
试了一下,重新 enable 之后文件没删,但是还是用不了。不知道是不是由于用 LaunchDaemon 加载的位于 /usr/lib 的可执行文件并没有加载。
ozOGen
2015-09-11 11:12:32 +08:00
@mozkoe 受到保护的目录名单可参见 /System/Library/Sandbox/rootless.conf

然后这个文件里的内容是

/Applications/App Store.app
/Applications/Automator.app
/Applications/Calculator.app
/Applications/Calendar.app
/Applications/Chess.app
/Applications/Contacts.app
/Applications/Dashboard.app
/Applications/Dictionary.app
/Applications/DVD Player.app
/Applications/FaceTime.app
/Applications/Font Book.app
/Applications/Game Center.app
/Applications/Image Capture.app
/Applications/Launchpad.app
/Applications/Mail.app
/Applications/Maps.app
/Applications/Messages.app
/Applications/Mission Control.app
/Applications/Notes.app
/Applications/Photo Booth.app
/Applications/Photos.app
/Applications/Preview.app
/Applications/QuickTime Player.app
/Applications/Reminders.app
/Applications/Safari.app
/Applications/Stickies.app
/Applications/System Preferences.app
/Applications/TextEdit.app
/Applications/Time Machine.app
/Applications/Utilities/Activity Monitor.app
/Applications/Utilities/AirPort Utility.app
/Applications/Utilities/Audio MIDI Setup.app
/Applications/Utilities/Bluetooth File Exchange.app
/Applications/Utilities/Boot Camp Assistant.app
/Applications/Utilities/ColorSync Utility.app
/Applications/Utilities/Console.app
/Applications/Utilities/Digital Color Meter.app
/Applications/Utilities/Disk Utility.app
/Applications/Utilities/Feedback Assistant.app
/Applications/Utilities/Grab.app
/Applications/Utilities/Grapher.app
/Applications/Utilities/Keychain Access.app
/Applications/Utilities/Migration Assistant.app
/Applications/Utilities/Script Editor.app
/Applications/Utilities/System Information.app
/Applications/Utilities/Terminal.app
/Applications/Utilities/VoiceOver Utility.app
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
/System
* /System/Library/Caches
booter /System/Library/CoreServices
* /System/Library/CoreServices/Photo Library Migration Utility.app
/System/Library/CoreServices/RawCamera.bundle
* /System/Library/Extensions
/System/Library/Extensions/*
UpdateSettings /System/Library/LaunchDaemons/com.apple.UpdateSettings.plist
* /System/Library/Speech
* /System/Library/User Template
/bin
dyld /private/var/db/dyld
/sbin
/usr
* /usr/libexec/cups
* /usr/local
* /usr/share/man
# symlinks
/etc
/tmp
/var

所以。。。/usr/local 并没有幸免。。。。
dotpig
2015-09-11 11:12:55 +08:00
@mozkoe /usr/local 是不被 rootless 保护的啊,所以我说第三方的应该放在 /usr/local/lib 目录下啊。那些动不动就把文件放到系统目录的根本就没学会规矩。
ozOGen
2015-09-11 11:14:39 +08:00
@dotpig 可以试一下 disable 的时候能不能用。。。因为 SIP 里还有一个功能是禁止未签名的 kext 加载。。。虽然我不知道天地融有没有用到 kext 。。。
dotpig
2015-09-11 11:20:21 +08:00
@ozOGen 未签名禁止加载 Yosemite 就是这样了。而且,一个网银的驱动不签名不是笑话了。
dotpig
2015-09-11 11:21:26 +08:00
@ozOGen /usr/local/lib 是不受 rootless 保护的,我已经试过了,创建、删除文件都没啥障碍。
ozOGen
2015-09-11 11:23:05 +08:00
@dotpig well 。。这种事情还真说不定。。。 yosemite 的时候一直是 kext-dev-mode=1 的。。。。
mozkoe
2015-09-11 11:24:05 +08:00
➜ local git:(master ) ls -lO /usr
total 0
drwxr-xr-x 3 root wheel restricted 102 8 27 10:17 adic
drwxr-xr-x 1054 root wheel restricted 35836 9 10 11:07 bin
drwxr-xr-x 258 root wheel restricted 8772 9 10 11:31 include
drwxr-xr-x 285 root wheel restricted 9690 9 10 11:32 lib
drwxr-xr-x 183 root wheel restricted 6222 9 10 11:07 libexec
drwxr-xr-x 23 root wheel - 782 9 10 11:13 local
drwxr-xr-x 243 root wheel restricted 8262 9 10 11:07 sbin
drwxr-xr-x 46 root wheel restricted 1564 9 10 11:32 share
drwxr-xr-x 4 root wheel restricted 136 9 3 19:54 standalone


@ozOGen 这里显示 /usr/local 是没被保护的啊;而且的确可以 sudo 修改所有者权限。你这边的文档又是怎么回事呢? o_O
ozOGen
2015-09-11 11:28:50 +08:00
@mozkoe 这个就。。。不了解了= =。。。我 ls -lO /usr 的返回和你是一样的。。。那个文档在 /System/Library/Sandbox/rootless.conf ,按理来说应该是会对应的啊。。。。
ozOGen
2015-09-11 11:30:37 +08:00
@dotpig 我也试过改所有者也 ok 了= =好神奇。。。估计是还有些地方我没有理解到。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX