关于 macos-admin
macos-admin 是用于脚本和 Agent 工作流的 macOS 管理技能,通过系统命令行工具管理账户、磁盘、安全设置、偏好设置和诊断日志。
主要功能
- 01使用 systemsetup 配置系统偏好
- 02使用 dscl 管理账户
- 03挂载、验证和加密磁盘
- 04检查 SIP、Gatekeeper 和 FileVault
- 05查看控制台日志
适用场景
- 01在部署期间配置 Mac
- 02自动处理员工账户入职
- 03通过日志排查安全设置问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill macos-admin安装后在 Claude Code 中输入/macos-admin确认已加载。
详细介绍
用途
此技能用于处理 macOS 系统管理任务,包括管理偏好设置、用户、磁盘,以及 SIP、Gatekeeper、FileVault 和控制台日志等安全功能。
何时使用
在脚本中自动执行 macOS 管理操作时使用此技能,例如在部署期间配置系统设置、在企业环境中管理用户帐户,或通过日志排查安全问题。
主要功能
- 通过
systemsetup管理系统偏好设置,例如时区或节能器设置。 - 使用
dscl管理用户和群组,以创建、删除或修改帐户。 - 使用
diskutil执行磁盘操作,例如挂载、验证或加密宗卷。 - 使用
csrutil控制 SIP(系统完整性保护),以启用或停用内核扩展相关功能。 - 通过
spctl管理 Gatekeeper,以评估应用的安全策略。 - 使用
fdesetup管理 FileVault 加密,以检查状态和启用加密。 - 使用
log命令访问控制台日志,以进行系统诊断。
使用模式
在 Shell 脚本或 Python 子进程调用中调用此技能,并始终使用提升的权限(例如,通过 sudo)。例如,封装命令的函数应先检查管理员权限。对于需要身份验证的脚本,可使用 $ADMIN_PASSWORD 等环境变量进行配置。模式:检查前置条件(例如,通过 sw_vers 检查操作系统版本),执行命令,并解析输出以实现自动化。
常用命令/API
由于大多数命令需要管理员权限,请使用 sudo。以下是完成关键任务的方法:
- 创建用户:
dscl . -create /Users/newuser; dscl . -create /Users/newuser UserShell /bin/bash; dscl . -create /Users/newuser RealName "New User" - 检查 SIP 状态:
csrutil status(输出:“System Integrity Protection: enabled”) - 启用 FileVault:
sudo fdesetup enable -user username -pass $ADMIN_PASSWORD - 管理 Gatekeeper:使用
spctl --assess --verbose /path/to/app验证应用是否获准运行 - 挂载磁盘:
diskutil mount disk1s1 - 查看控制台日志:
log show --predicate 'subsystem == "com.apple.console"' --last 1h - 更改系统偏好设置(例如电脑名称):
sudo scutil --set ComputerName NewName
用于创建用户的 Python 代码片段:
import subprocess
subprocess.run(['sudo', 'dscl', '.', '-create', '/Users/newuser'])
subprocess.run(['sudo', 'dscl', '.', '-create', '/Users/newuser', 'RealName', 'New User'])
用于检查 SIP 的代码片段:
import os
result = os.popen('csrutil status').read()
if 'enabled' in result:
print("SIP is active")
集成说明
通过子进程或 os.system,在 AI Agent 代码中调用 macOS CLI 工具来集成。对于脚本,请确保 Agent 以管理员权限运行;使用 sudo,并通过 $ADMIN_PASSWORD 等环境变量传递凭据。配置格式:偏好设置使用 plist 文件(例如,通过 defaults write 编辑 /Library/Preferences/com.apple.loginwindow.plist)。如需类似 API 的访问方式,可使用 AppleScript 和 osascript,例如 osascript -e 'tell application "System Preferences" to activate'。如果与其他技能结合使用,可将输出传递给 jq 等工具,以解析日志数据中的 JSON。
错误处理
始终检查命令的退出代码;例如,在 Python 中使用 subprocess.run(..., check=True),以便在失败时引发异常。常见错误:权限被拒绝(代码 1)——提示使用 sudo,或检查 $EUID 以确认是否为 root 用户。处理与 SIP 相关的错误时,先验证其状态。对于磁盘操作,使用 try-except 块捕获 I/O 错误。例如:如果 diskutil 失败,记录错误并在用户确认后重试。在脚本中使用 2>&1 捕获标准错误,例如 command 2>&1 | grep error。
具体使用示例
- 为新员工自动创建用户:先使用
dscl . -read /Users/username检查用户是否存在;如果不存在,则创建用户:sudo dscl . -create /Users/newuser && sudo dscl . -passwd /Users/newuser $NEW_PASSWORD。在脚本中使用此命令处理员工入职流程。 - 启用 FileVault 以保护系统:运行
sudo fdesetup status检查当前状态;如果已停用,则执行sudo fdesetup enable -user admin -pass $ADMIN_PASSWORD来加密驱动器,确保数据安全。
图关系
- 相关:macos-core(用于通用 macOS 实用工具)、security-tools(用于 Gatekeeper 和 SIP 集成)、user-management(用于 dscl 操作)。
- 依赖:system-services(用于访问控制台日志)。
- 冲突:非 macOS 技能,因为使用了特定于操作系统的命令。