コマンドラインでユーザ追加(OS X 10.4 Tiger版)

実際の作業の前に、macでどういう風にユーザアカウントが管理されているのか整理しておきます。これまでの OS X 10.4(Tiger)までは、NetInfo というディレクトリサービスで管理されています。NetInfo とは、NeXT STEP で用いられてきた NIS (YP) に代わるディレクトリサービスで、複数のデータベースを階層的に配置することが可能。だそうです。詳しい説明は下記サイトを参照。

参考:

この仕組みは OS X 10.5(Leopard)で大きく変わったそうです。NetInfoはやはり特殊な使い方のためあちこちで不満が多く、遂に入れ替えとなった模様です。Loopardではそれに変わるものとして、OS X Serverに導入されている Open Directoryを使用します。これは LDAP 対応で、Windows の Active Derectoryとも接続できるとか。

ユーザ追加

前置きが長くなりましたが、NetInfo(niutil)を使ったユーザの追加方法です。最初に、UID(ユーザID)とGID(グループID)を決めます。nidump を使って、UNIXのpasswdファイル形式で出力できます。

ユーザ一覧
# nidump passwd .
nobody:*:-2:-2::0:0:Unprivileged User:*****
root:********:0:0::0:0:System Administrator:*****
daemon:*:1:1::0:0:System Services:****
・・・

グループ一覧
# nidump group .
nobody:*:-2:
nogroup:*:-1:
wheel:*:0:root
・・・

ここから、空いているUIDとGIDを見て、新アカウントのIDを決めます。例えば、ユーザ名を hoge、UID、GIDを510とします。

新しいアカウント hoge を作成。
# niutil -create . /users/hoge

以下、作成したパスにプロパティを追加します。
シェルを設定
# niutil -createprop . /users/hoge shell /bin/bash
表示される名前を設定
# niutil -createprop . /users/hoge realname "Test User"
UIDの設定
# niutil -createprop . /users/hoge uid 510
GUIの設定
# niutil -createprop . /users/hoge gid 510
ホームディレクトリを設定
# niutil -createprop . /users/hoge home /Users/hoge
パスワードのエントリを作成
# niutil -createprop . /users/hoge _shadow_passwd
パスワード設定
# passwd hoge

グループを作成
# niutil -create . /groups/hoge
グループ名を設定(デフォルトでついてる?)
# niutil -createprop . /groups/hoge name hoge
GIDを設定
# niutil -createprop . /groups/hoge gid 510
パスワード設定(無くても可?)
# niutil -createprop . /groups/hoge passwd "*"
ユーザーを追加(しなくてもOK?)
# niutil -appendprop . /groups/hoge users hoge

既にあるグループに追加する場合
# niutil -appendprop . /groups/wheel users hoge

参考