MacOSX Leopard のユーザ作成・削除は dscl コマンド
Linux の様な useradd も groupadd も無い。
MacOSX Server は niutil (NetInfoManager) らしいけど、man はあるのにコマンドがどこにも無い。
もうダメだーと思ったら、google検索で 2ch の過去ログが引っかかってこのコマンドを発見。
dscl -- Directory Service command line utility
簡単な使い方。
グループ情報を操作するときは、 Users を Groups に変更すればOK。
dscl . -list /Users:ユーザ一覧
$ dscl . -list /Users _amavisd _appowner _appserver ... daemon nobody postgres root ...
dscl . -read /Users/<ユーザ名>: ユーザ情報詳細
$ dscl . -read /Users/postgres AppleMetaNodeLocation: /Local/Default GeneratedUID: F24A7FD3-ACD4-4267-BF3B-C3275A4ECDA5 NFSHomeDirectory: /opt/local/var/db/postgresql83 Password: * PrimaryGroupID: 500 RealName: PostgreSQL-83\ Server RecordName: postgres RecordType: dsRecTypeStandard:Users UniqueID: 500 UserShell: /bin/sh
dscl . -read /Groups/<グループ名>: グループ情報詳細
$ dscl . -read /Groups/postgres AppleMetaNodeLocation: /Local/Default GeneratedUID: 2D36EA51-04B2-427D-BF85-96770E16ED6D Password: * PrimaryGroupID: 500 RealName: postgres RecordName: postgres RecordType: dsRecTypeStandard:Groups
sudo dscl . -create /Users/<ユーザ名>:ユーザ作成
$ sudo dscl . -create /Users/oracle $ dscl . -read /Users/oracle AppleMetaNodeLocation: /Local/Default GeneratedUID: 2F2CE8F8-B8F3-41E9-A555-3150C16E5E15 RecordName: oracle RecordType: dsRecTypeStandard:Users
作成済みのユーザに対して、後から設定を追加できる。
$ sudo dscl . -create /Users/oracle gid 0 $ dscl . -read /Users/oracle AppleMetaNodeLocation: /Local/Default GeneratedUID: 2F2CE8F8-B8F3-41E9-A555-3150C16E5E15 PrimaryGroupID: 0 RecordName: oracle RecordType: dsRecTypeStandard:Users
特定の情報だけ削除する場合は -deleteオプションを使う。
$ sudo dscl . -delete /Users/oracle GeneratedUID $ dscl . -read /Users/oracle AppleMetaNodeLocation: /Local/Default PrimaryGroupID: 0 RecordName: oracle RecordType: dsRecTypeStandard:Users
sudo dscl . -delete /Users/<ユーザ名>: ユーザ削除
$ sudo dscl . -delete /Users/oracle $ dscl . -read /Users/oracle <dscl_cmd> DS Error: -14136 (eDSRecordNotFound)