macOS: 初探本地资源库中的Security.plist文件的用途
来源:互联网 发布:apache 查看编译参数 编辑:程序博客网 时间:2024/06/03 14:19
昨天看到一个论坛中的帖子, 有个人吧/Library/Preferences/com.apple.security.plist文件给删除了, 而且为了万无一失, 还重新安装了系统. 看到这里, 真是有中说不出的感觉.
先不管说, /Library/Preferences目录中的文件的作用, 单说com.apple.security.plist文件, 看上去挺重要的, 却说不出它到底是干什么用的. 再看看回答的的帖子, 有的以文本方式打开看看内容的, 有的说没关系的, 大家都说不出它的用处.
Plist文件基础
在我的恢复中, 对于不太熟悉plist的网友提供了额外信息, 补充了一些基本知识:
Plist可以说是Mac操作系统由来已久所内置支持的用于存储操作系统或者软件配置和参数的XML文件格式, 它有纯文本和二进制两种存储格式.对plist的基本操作,可以使用两个系统提供的基本命令/usr/bin/defaults和/usr/libexec/PlistBuddy
基本的读操作, 比如本题的:
defaults read /Library/Preferences/com.apple.security.plist
基本的写操作, 比如变更SecItemSynchronizable的值:
sudo defaults write /Library/Preferences/com.apple.security.plist SecItemSynchronizable -bool False改回原值:
sudo defaults write /Library/Preferences/com.apple.security.plist SecItemSynchronizable -bool True
当然还有很多的其它操作和实际问题, 这个可以作为另一的讨论题目.
分级的作用域
这里不多说了, 其实每个不同目录的文件, 都有自己的作用域, 并担负着不同的职责. 一般来说, /Library中的文件是本地系统级别的. 与用户的~/Library是有区别的, 当然与/System/Library的操作系统级别的就更不同的. 具体的怎么不同, 这里不赘述了.
转入正题
现在说正题: “/Library/Preferences/com.apple.security.plist”文件的作用1. 两眼茫茫, 海里捞针
网上找com.apple.security.plist, 基本没有找到任何有价值的信息, 后来就找SecItemSynchronizable, 就找到了这里:
SecItem.cpp
这个寄宿在github上的项目, 不是苹果的官方的, 不管它, 看这个cpp程序的开始说明, 说是:“Copyright (c) 2006-2014 Apple Inc. All Rights Reserved.”
就权当它是苹果官方程序吧, 反正咱们也不用它编译程序, 只不过是找点线索.2. 初见曙光, 疑窦初现
通过搜索“SecItemSynchronizable”找到了一个函数:static Boolean SecItemSyncEnabled()
他的说明是:// Returns true if keychain syncing is globally enabled.
里面有个注释行是://sudo defaults write /Library/Preferences/com.apple.security SecItemSynchronizable -bool YES
是不是很熟悉啊. 但是还是不明白, 什么叫globally syncing呢? 用户登陆本机, 钥匙串和谁同步呢? 带着疑问继续搜索.
3. 豁然开朗, 似有转机
继续, 找到一些函数, 比如: SecItemCopyMatching, SecItemAdd, SecItemUpdate, SecItemDelete等, 里面基本都有下面两句:
Boolean search_ios = SecItemSynchronizable(query);
Boolean merge_search = SecItemSynchronizableAny(query);
4. 原来如此
看到这里的ios, 可以猜测, 它很可能是与用户iCloud帐户设备之间同步钥匙串相关的.
5. 有待解开,未解之谜
是, 这个是本机全局的plist文件, 所以应该是控制所有用户的钥匙串的同步, 而这个同步工作, 应该是各个用户自己可以设置的行为, 用不着全局的. 另一个考虑是, 这个只是系统默认的行为, 当用户没有相关设置时, 会找全局配置, 并使用全局设置, 那么这个可能可以用来对企业部署内部初始值有点作用.
其实, 如果了解/Library的作用, 可以得出自己的合理的结论, 但是还需要观察实际操作的结果, 才可以得出最符合实际的结论.
不过我们就到这里未知了, 目前没有深究的动力.
- macOS: 初探本地资源库中的Security.plist文件的用途
- iOS 本地plist文件的读取
- 关于maven 添加本地的jar到本地的资源库中的语法
- ios开发中读取本地的plist文件
- plist文件的形式保存在本地程序沙盒中
- Python 中的pyc文件的用途
- macOS: 使用新版plutil命令操作Plist文件更方便
- 本地 json文件转化成plist文件
- ios开发(plist文件数据加载) 使用数据模型的方法加载plist文件中的数据
- maven 学习二:本地资源库,中央资源库,远程资源库的介绍
- swift读取本地数据元 *.plist 文件
- IOS 读取本地plist类型文件数据
- 本地plist文件创建、写入、读取
- iOS本地存储 plist文件和归档
- iPhone中的info.plist文件
- iPhone中的info.plist文件
- iPhone中的info.plist文件
- iPhone中的info.plist文件
- 【NOIP2017】跳房子
- VS 中常见问题汇总
- 1040. 有几个PAT 当是三个字母组成的可能的时候 用检查到A的时候 A前面P的数量 和A后面 T的数量求组合可能
- [ENVI] 分类后处理
- C#学习笔记——结构体
- macOS: 初探本地资源库中的Security.plist文件的用途
- 利用Gson 是序列化Json可以自定义key值的几种方案
- Unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
- git命令
- OpenStack Kilo DVR Router Remove GW
- vs调用MATLAB生成的dll文件混编
- 人民币金额打印
- Java类的访问权限关键字
- 最小整数