Macを使っていて、こんな疑問や不安を感じたことはありませんか?
- 「このMacには実際に何人のユーザーアカウントがあるの?」
- 「知らないアカウントが作られていないか心配」
- 「セキュリティのためにユーザー管理をきちんとしたい」
- 「ターミナルでもユーザー情報を確認できるって本当?」
実は、Macには目に見えない多くのシステムユーザーが存在し、一般的なユーザーアカウント以外にも様々な種類のアカウントが動作しています。
この記事では、Macでユーザー一覧を確認する方法を、GUI操作からコマンドライン、さらには実践的な管理テクニックまで包括的に解説します。
適切なユーザー管理は、Macのセキュリティと快適性を向上させる重要な要素です。
Macのユーザーアカウントの種類を理解しよう

まず、Macに存在するユーザーアカウントの種類を把握しましょう。
一般ユーザーアカウント
種類 | 説明 | 権限レベル | 用途 |
---|---|---|---|
管理者(Administrator) | システム全体を管理可能 | 最高権限 | メインユーザー、システム設定変更 |
標準ユーザー(Standard) | 一般的な操作のみ可能 | 制限あり | 家族メンバー、セカンダリアカウント |
ゲストユーザー | 一時的な利用専用 | 最小権限 | 来客者、短期間の利用 |
システムユーザーアカウント
Macには、macOSが内部的に使用する多数のシステムユーザーが存在します:
プレフィックス | 例 | 役割 |
---|---|---|
_ | _spotlight , _windowserver | システムサービス用 |
daemon | daemon | システムプロセス管理 |
nobody | nobody | 権限を持たない処理用 |
これらのシステムユーザーは通常のログイン画面には表示されませんが、システムの正常な動作に必要不可欠です。
GUI操作でユーザー一覧を確認する方法

macOS Ventura (13.0) 以降の場合
- Apple メニュー → 「システム設定」 をクリック
- サイドバーから 「ユーザとグループ」 を選択
- 左側のパネルに表示されるのが、現在のユーザーアカウント一覧です
macOS Monterey (12.0) 以前の場合
- Apple メニュー → 「システム環境設定」 をクリック
- 「ユーザとグループ」 をクリック
- 左側のリストで各ユーザーアカウントを確認できます
GUIで確認できる情報
- ユーザー名とフルネーム
- アカウントの種類(管理者・標準・ゲスト)
- ログイン項目
- Apple ID との連携状況
- ペアレンタルコントロール設定
コマンドラインでユーザー一覧を確認する方法

より詳細で技術的な情報を得るには、ターミナルを使用します。
基本的なユーザー一覧表示
すべてのローカルユーザーを表示:
dscl . list /Users
この結果には多数のシステムユーザーが含まれるため、実用的ではない場合があります。
人間が使用するユーザーのみを表示
システムユーザーを除外した一覧:
dscl . list /Users | grep -v '^_'
UID(ユーザーID)が500以上のユーザーのみ表示:
dscl . -list /Users UniqueID | awk '$2 >= 500 { print $1 }'
一般的に、UID 500以上は人間が使用するアカウントです。
詳細なユーザー情報を表示
特定ユーザーの詳細情報:
dscl . -read /Users/ユーザー名
すべてのユーザーの詳細情報:
dscl . -readall /Users
ログイン可能なユーザーを確認
シェルが設定されているユーザー:
dscl . -list /Users UserShell | grep -v '/usr/bin/false'
現在ログイン中のユーザー情報
現在のユーザー名:
whoami
現在のユーザーの詳細情報:
id
ログイン中のすべてのユーザー:
who
実践的なユーザー管理術

不要なアカウントの発見
#!/bin/bash
echo "=== UID 500以上のユーザーアカウント ==="
dscl . -list /Users UniqueID | awk '$2 >= 500 { print $1 "\t(UID: " $2 ")" }'
echo "=== 管理者権限を持つユーザー ==="
dscl . -read /Groups/admin GroupMembership | cut -d' ' -f2-
最近のログイン履歴確認
# 最近のログイン履歴
last | head -20
アカウントの作成日時確認
# 特定ユーザーの作成日時
dscl . -read /Users/ユーザー名 dsAttrTypeNative:accountPolicyData
ユーザーアカウントの効果的な管理

管理者権限の見直し
不要な管理者権限を持つユーザーがいないか定期的に確認しましょう:
# 管理者グループのメンバー確認
dscl . -read /Groups/admin GroupMembership
ゲストアカウントの無効化
セキュリティ向上のため、使用しない場合はゲストアカウントを無効にします:
- システム設定 → ユーザとグループ
- ゲストユーザー を選択
- 「ゲストユーザーにこのコンピュータへのログインを許可」 のチェックを外す
パスワードポリシーの確認
# パスワードポリシーの確認
pwpolicy getaccountpolicies
トラブルシューティング(よくある問題と解決法)

問題1: 「dscl」コマンドで「Permission denied」エラー
原因: 管理者権限が必要な情報にアクセスしようとしている
解決法:
sudo dscl . list /Users
問題2: ユーザー一覧に表示されないアカウントがある
原因: ローカルディレクトリ以外(ネットワークアカウント等)に存在する可能性
確認方法:
# すべてのディレクトリのユーザーを表示
dscl localhost list /Search/Users
問題3: システムユーザーと一般ユーザーの区別ができない
解決法: UIDで判断する
# UID別にユーザーを分類
echo "=== システムユーザー (UID < 500) ==="
dscl . -list /Users UniqueID | awk '$2 < 500 { print $1 "\t" $2 }'
echo "=== 一般ユーザー (UID >= 500) ==="
dscl . -list /Users UniqueID | awk '$2 >= 500 { print $1 "\t" $2 }'
自動化とスクリプト活用
ユーザー監査の自動化
定期的なユーザーアカウント監査のためのスクリプト例:
#!/bin/bash
# user_audit.sh - ユーザーアカウント監査スクリプト
echo "===================="
echo "Macユーザーアカウント監査レポート"
echo "実行日時: $(date)"
echo "===================="
echo "1. 一般ユーザーアカウント一覧:"
dscl . -list /Users UniqueID | awk '$2 >= 500 { print " - " $1 " (UID: " $2 ")" }'
echo "2. 管理者権限を持つユーザー:"
ADMINS=$(dscl . -read /Groups/admin GroupMembership 2>/dev/null | cut -d' ' -f2-)
for admin in $ADMINS; do
echo " - $admin"
done
echo "3. ログインシェルが設定されているユーザー:"
dscl . -list /Users UserShell | grep -v '/usr/bin/false' | while read user shell; do
echo " - $user: $shell"
done
echo "4. 最近のログイン履歴(直近5件):"
last | head -5 | while read line; do
echo " $line"
done
echo "===================="
echo "監査完了"
このスクリプトを cron
や launchd
で定期実行するように設定できます。
まとめ
Macのユーザーアカウント管理は、システムセキュリティの基盤となる重要な要素です。
覚えておきたい基本コマンド
# 基本的なユーザー一覧
dscl . list /Users | grep -v '^_'
# 一般ユーザーのみ表示
dscl . -list /Users UniqueID | awk '$2 >= 500 { print $1 }'
# 管理者権限ユーザー確認
dscl . -read /Groups/admin GroupMembership
# 現在のユーザー情報
whoami && id
適切なユーザー管理は、Macを安全かつ効率的に運用するための基本です。
コメント