mcpField
M
macos-admin

macos-admin

github.com/alphaonedevクラウド・DevOps47 回インストール
リポジトリ

macos-admin について

macos-adminは、スクリプトやエージェントのワークフローでmacOS管理を自動化するスキルです。標準のコマンドラインツールでアカウント、ディスク、セキュリティ設定、環境設定、診断ログを扱います。

主な機能

  1. 01systemsetupによるシステム環境設定
  2. 02dsclによるアカウント管理
  3. 03ディスクのマウント、検証、暗号化
  4. 04SIP、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を入力して読み込まれたか確認します。

詳細

目的

このスキルは、環境設定、ユーザー、ディスク、SIP、Gatekeeper、FileVault、コンソールログなどのセキュリティ機能の管理を含む、macOS のシステム管理タスクを処理します。

使用するタイミング

デプロイ時のシステム設定、エンタープライズ環境でのユーザーアカウント管理、ログによるセキュリティ問題のトラブルシューティングなど、スクリプトで macOS の管理操作を自動化する場合にこのスキルを使用します。

主な機能

  • systemsetup を使用して、タイムゾーンや省エネルギー設定などのシステム環境設定を管理します。
  • dscl を使用して、アカウントの作成、削除、変更など、ユーザーとグループを管理します。
  • diskutil を使用して、ボリュームのマウント、検証、暗号化などのディスク操作を実行します。
  • csrutil を使用して、カーネル拡張機能のために SIP(System Integrity Protection)を有効化/無効化します。
  • spctl を使用して Gatekeeper を管理し、アプリのセキュリティポリシーを評価します。
  • fdesetup を使用して FileVault 暗号化を管理し、ステータスを確認したり有効化したりします。
  • システム診断のために、log コマンドでコンソールログにアクセスします。

使用パターン

このスキルはシェルスクリプトまたは Python の subprocess 呼び出しから、常に昇格した権限(例:sudo 経由)で実行します。たとえば、最初に管理者権限を確認する関数でコマンドをラップします。認証が必要なスクリプトでは、$ADMIN_PASSWORD などの環境変数を設定に使用します。パターンは、前提条件(例:sw_vers で OS バージョンを確認)をチェックし、コマンドを実行して、自動化のために出力を解析することです。

主なコマンド/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")

統合に関する注意事項

subprocess または os.system を介して、AI エージェントのコードから macOS CLI ツールを呼び出して統合します。スクリプトでは、エージェントが管理者権限で実行されるようにしてください。sudo を使用し、$ADMIN_PASSWORD などの環境変数で認証情報を渡します。設定形式には、環境設定用の plist ファイルを使用します(例:defaults write で /Library/Preferences/com.apple.loginwindow.plist を編集)。API のようにアクセスするには、osascript を使って AppleScript を活用します。例:osascript -e 'tell application "System Preferences" to activate'。ほかのスキルと組み合わせる場合は、ログデータを JSON として解析するために、出力を jq などのツールにパイプします。

エラー処理

コマンドの終了コードを必ず確認してください。たとえば、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(コンソールログへのアクセス向け)。
  • 競合:OS 固有のコマンドを使用するため、macOS 以外のスキルとは競合します。

コメント