本帖最后由 neycwby09 于 2016-9-26 14:30 编辑
RepairPermissions V3
验证修复 OS X 的全盘磁盘权限工具
~ 经过 9 个测试版的测试,RepairPermissions 3.0 正式版登场 ~
时间过得飞快,距离上一个主要版本2.x都快一年了...
前言
苹果在 OS X El Capitan 里的 DiskManagement.framework 里彻底移除了修复全盘权限功能,所以我们无法使用 diskutil repairPermissions 命令来方便地修复权限了。
好在关了一扇门留了一扇窗,在 OS X El Capitan 下我们还可以使用 /usr/libexec/ 下的 repair_packages 工具来修复权限,虽然对于大众用户来讲,命令很长不好记,这也是 RepairPermissions V2 版本的诞生原因之一。
但是现在你会发现在 macOS Sierra 系统下的 /usr/libexec/ 下找不到 repair_packages 了。
于是乎,RepairPermissions V3 诞生了......
简介
RepairPermissions 是一个可帮你轻松验证或/并修复全盘磁盘权限的命令行工具。V3 版本使用全新设计的 API 以及数据结构,并且支持苹果在 WWDC 16 上发布的最新 macOS Sierra。
新功能与特性
支持苹果最新的 macOS Sierra (10.12.x) 系统
支持动态优化多线程性能
支持保存验证/修复结果到指定文件
支持多种启动环境
相关产品信息
RepairPermissions 隶属于 KCPM Utility Pro 以及 FireWolf OS X PE 维护套件家族。
两家族将在下个主要版本更新中加入 RepairPermissions V3 所带来的新功能与特性。
支持的操作系统版本
RepairPermissions V3 支持运行在下列操作系统版本上:
OS X Mavericks (10.9.x)
OS X Yosemite (10.10.x)
OS X El Capitan (10.11.x)
macOS Sierra (10.12.x)
支持的启动环境
RepairPermissions V3 支持在 OS X 正常启动模式、OS X 单用户模式、OS X Recovery 恢复分区启动模式、OS X Recovery 恢复分区单用户模式 以及 FireWolf OS X PE 下运行。
推荐安装路径
建议将 RepairPermissions 放在 /usr/local/bin 目录下,这样打开终端即可使用。
小提示:亦可重命名 RepairPermissions 为 rp 等短名字以方便记忆。
使用方法
注意:请在使用前启用 SIP 的第二标志位 (bit 1) CSR_ALLOW_UNRESTRICTED_FS!
本文中的使用方法对应于 RepairPermissions V3.0.1105 版本
此为最简洁的使用方法。该命令会帮你修复当前启动磁盘的全盘权限。修复结果不会在屏幕上打印出来,但会自动保存到桌面上 (~/Desktop/RepairPermissions-<时间戳>.txt)*
*脚注:此为正常启动环境下的默认保存路径,其他启动环境的默认保存路径请参见 3.0 Beta 7 的更新日志。
- RepairPermissions --output ~/Desktop/Result.txt /
复制代码
该命令会帮你修复当前启动磁盘的全盘权限。修复结果不会在屏幕上打印出来,但会保存到指定好的路径,本例中会保存到桌面上名为 Result.txt 的纯文本文件。
- RepairPermissions --no-output /
复制代码
该命令会帮你修复当前启动磁盘的全盘权限。修复结果不会在屏幕上打印出来,并且也不会保存到你的本地硬盘上。
更多的使用方法以及用法举例可通过 RepairPermissions --help 命令来查看
基本命令语法与使用原则:
- RepairPermissions [COMMANDS] <targetVolume>
复制代码
首先 targetVolume 是一个系统磁盘的挂载点。必须放在命令的最后!
比如当前启动磁盘的挂载点是 /
请注意特殊字符的转义!比如 /Volumes/Macintosh HD 转义后的结果是 /Volumes/Macintosh\ HD
最可靠的办法就是直接从桌面上把想要修复的磁盘拖入到终端,系统会帮你自动转义。
其次 [COMMANDS] 部分可放入一个或多个的命令参数。
目前可用的参数有:
- --help 用于打印详细的使用帮助
- --verify 只验证给定磁盘的全盘权限
- --repair 验证并修复给定磁盘的全盘权限
- --output 后跟绝对路径用于手动指定结果的保存位置
- --max-thread <num> 用于指定 RepairPermissions 可使用的最大工作线程数。后跟整数。
- --no-output 禁止 RepairPermissions 将权限验证/修复结果保存到本地磁盘上。
- --check-update 用于检查更新
复制代码
不填写 [COMMANDS] 这部分的话,默认修复给定磁盘权限并且保存结果到桌面上。
问题反馈
请前往源发布页面反馈问题
更新日志
V3.5.2025 (2016.09.25) : [正式版]
更新使用 Swift 3,API 版本升级至 3.0
FWRepairPermissions API 核心部分使用全新算法和数据结构,使验证/修复权限速度最高提升20倍
改进内存管理和部分代码结构。
V3.3.1315 (2016.09.02) : [正式版]
与 KCPM Utility Pro 6 正式版同步 API
改进内存管理
改进进度显示
V3.2.1276 (2016.08.18) : [正式版]
优化内部代码以及数据结构
重新设计了结果输出格式,新格式更易读
内部 FWRepairPermissions API 版本升级到 2.0
V3.1.1155 (2016.08.09) : [正式版]
调整正常启动模式下 RepairPermissions 生成的权限验证/修复结果文档的文件权限
用户无需输入管理员密码即可删除生成的文本文档
V3.1.1152 (2016.08.08) : [正式版]
修复一小部分文件和文件夹的权限被错误设置的问题 (感谢 @arslan2012 反馈问题)
(请在终端里手动敲入如下命令以修复用户主目录文件夹的权限; 其他文件和文件夹会被新版本 RepairPermissions 自动修复)
RepairPermissions 现已支持修复其他系统盘的权限
V3.0.1105 (2016.08.07) : [正式版]
增加对 OS X Mavericks 的支持
增加检查更新功能
改进 SIP 标志位检查
小幅度改进内部 API
首个 3.0 正式版发布
V3.0 Beta 9 (2016.08.06) : [RC3]
增加 SIP 标志位检查。
RepairPermissions 只检查 CSR_ALLOW_UNRESTRICTED_FS 标志位,若该标志位被禁用,RepairPermissions 会给予你提示但不会终止运行任务。
V3.0 Beta 8 (2016.08.05) :
增加新参数 --no-output 以允许用户禁止 RepairPermissions 保存权限验证/修复结果到本地磁盘
V3.0 Beta 7 (2016.08.03) :
从 Beta 7 版本开始,RepairPermissions 支持在 OS X 正常启动模式、OS X 单用户模式、OS X 恢复分区启动模式、OS X 恢复分区单用户模式 以及 FireWolf OS X PE 下使用。
在各个启动模式下,权限验证/修复结果将自动保存到如下路径:
正常启动模式:~/Desktop/RepairPermissionsResults-<时间戳>.txt
单用户模式:/RepairPermissionsResults-<时间戳>.txt
恢复模式/恢复单用户模式/PE模式:/目标磁盘/RepairPermissionsResults-<时间戳>.txt
注意:在恢复模式/恢复单用户模式/PE模式下,建议使用默认的结果保存路径。
改进自动环境检测部分的代码。
内置 RepairPermissions API 版本升级至 1.3 以支持所有启动模式。
V3.0 Beta 6 (2016.08.02) : [RC2]
RepairPermissions 现已支持在 OS X 单用户模式下使用。
注意:在单用户模式下,用户无需手动先敲入 /sbin/fsck -fy 和 /sbin/mount -uw / 命令。RepairPermissions 会自动检测当前系统的启动模式,并自动地帮你完成在各个模式下使用 RepairPermissions 前需要的操作。
小幅度调整终端信息输出的格式与样式。
V3.0 Beta 5 (2016.08.02) :
内置 RepairPermissions API 版本升级到 1.2 以兼容自定义线程设置
恢复 --max-thread 参数,已修复 API 兼容性问题
V3.0 Beta 4 (2016.08.01) : [RC1]
修复一个可能导致死锁的问题
增强代码结构和错误处理机制
权限验证/修复结果现在默认保存到 ~/Desktop/FWRPResult_<时间戳>.txt,无需手动指定结果保存路径
增加状态显示以及进度显示
内置 RepairPermissions API 版本升级到 1.1
改进内置 RepairPermissions API 以完全兼容 KCPM Utility Pro 6.0 Beta
临时移除在 Beta 3 新增的 --max-thread 参数,因为该参数目前不兼容新的 API
V3.0 Beta 3 (2016.07.30) :
增加新参数 --max-thread 以指定 RepairPermissions 可使用的最大工作线程数
提升多线程的稳定性
少量细节修复
V3.0 Beta 2 (2016.07.17) :
修复了一个有关修复权限的严重错误
V3.0 Beta 1 (2016.07.16) :
首个 3.0 测试版发布
下载
请前往源发布页面下载:https://www.firewolf.science/2016/07/repairpermissions-v3-now-supports-repairing-permissions-on-macos-sierra/
|