特殊的Safari:
你这里所说的 "Safari" 是一个举例还是一个特指就是 Safari?
因为 Safari 有点特殊。在 macOS 10.15 之前的系统中,macOS 系统本身的所有数据都是用户可写的,那么删除摸个 app 就可以了。但是,之后的操作系统本身存在于自己独立的文件宗卷中,之后是启动的是系统宗卷的快照,而且是用苹果根证书封装的快照,这样就最大限度地保证了操作系统本身的安全完整可靠,但是带来的就是所有 Mac 用户都无法在不破坏系统完整性的前提下,而修改部分操作系统。
上面是针对绝大多数的系统 app 来说的,而 Safari 又很特殊,它不同于其它系统 app。因为现在我没有 Big Sur 11.x,只能就 Monterey 12.x 和 Ventura 13 来说。在 Monterey 上,是可以单独升级 Safari 的(至少是 12.6上),所以为了方便升级,它应该不是保存在那个只读的系统宗卷上的。其实,它居然就在普通用户可写的 /Applications 目录中,这样就好办了,把它删了就行了。到了 Ventura,这个情况有所改变,它其实是保存在 Preboot 宗卷上的,至于能否可以直接删除,因为现在没有多余的系统,我还没有尝试,不过,貌似应该可以。
综上所述,Safari 的确有点特殊。所以,才有了前面第一句话的提问。
环境准许吗?
就普通意义来讲,要禁止一个 app,删除app 本身可能并不一定是一个好办法,因为谁都可以下载另外一个副本,把它放在任何一个地方就可以了。参考前面的叙述,Safari 貌似在这里还是有点特殊的。
那么,为了达到这种禁止 app 运行的目的,主要要看的是,这种要求是应用在什么样的环境中,比如,是个人电脑,还是松散的企业管理环境,或者基于苹果架构的管理环境,还要分企业的还是用户自己(BYOD)的设备等等。就前两者情况来说,都是凭 Mac 用户自觉或者是欺负下小白,否则真的无法做到管理需求的强制执行;后者是目前来说,可以做到最大程度的限制,当然也要看这个机构管理的力度和执行如何,再好的管理措施,没有从上到下的一贯执行,也是枉然。
可能的方案:
说到具体的可行方案,一种是前面说的删除法,一种是使用描述文件,一种是使用系统服务。当然可以综合多种方法。
后记-文化
为了实施这种禁止app的行为,肯定会尽力做到完美完善。不过做到极致之后,总让人感到有点与病毒类似了,或者一种膏药无法摆脱的感觉,这会令人很沮丧。他人的沮丧,甚至是自己。为了让自己还像点正常的管理员,就不要这样“赶尽杀绝”了,否则会被讨厌的。而且,一旦这种“禁止”行为得到一次的成功实施,就难免将之上升为一种企业“文化”,并且将之扩大化,如果发展成这样的话,可能是一种灾难的开始。
当然,有些特殊情况的,比如对于小孩的管理等,有时是必要的。