macos-admin について
macos-adminは、スクリプトやエージェントのワークフローでmacOS管理を自動化するスキルです。標準のコマンドラインツールでアカウント、ディスク、セキュリティ設定、環境設定、診断ログを扱います。
主な機能
- 01systemsetupによるシステム環境設定
- 02dsclによるアカウント管理
- 03ディスクのマウント、検証、暗号化
- 04SIP、Gatekeeper、FileVaultの確認
- 05コンソールログの調査
活用シーン
- 01導入時のMac設定
- 02従業員アカウントの登録自動化
- 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。
具体的な使用例
- 新入社員用のユーザー作成を自動化する:まず
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(コンソールログへのアクセス向け)。
- 競合:OS 固有のコマンドを使用するため、macOS 以外のスキルとは競合します。