mcpField
M
macos-admin

macos-admin

github.com/alphaonedev云与 DevOps47 次安装
代码仓库

关于 macos-admin

macos-admin 是用于脚本和 Agent 工作流的 macOS 管理技能,通过系统命令行工具管理账户、磁盘、安全设置、偏好设置和诊断日志。

主要功能

  1. 01使用 systemsetup 配置系统偏好
  2. 02使用 dscl 管理账户
  3. 03挂载、验证和加密磁盘
  4. 04检查 SIP、Gatekeeper 和 FileVault
  5. 05查看控制台日志

适用场景

  1. 01在部署期间配置 Mac
  2. 02自动处理员工账户入职
  3. 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。

具体使用示例

  1. 为新员工自动创建用户:先使用 dscl . -read /Users/username 检查用户是否存在;如果不存在,则创建用户:sudo dscl . -create /Users/newuser && sudo dscl . -passwd /Users/newuser $NEW_PASSWORD。在脚本中使用此命令处理员工入职流程。
  2. 启用 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 技能,因为使用了特定于操作系统的命令。

评论

支持 Markdown