コマンドラインでユーザ追加(OS X 10.4 Tiger版)
実際の作業の前に、macでどういう風にユーザアカウントが管理されているのか整理しておきます。これまでの OS X 10.4(Tiger)までは、NetInfo というディレクトリサービスで管理されています。NetInfo とは、NeXT STEP で用いられてきた NIS (YP) に代わるディレクトリサービスで、複数のデータベースを階層的に配置することが可能。だそうです。詳しい説明は下記サイトを参照。
参考:
- http://macwiki.sourceforge.jp/wiki/index.php/NetInfo
- http://www.math.nagoya-u.ac.jp/~naito/MacOSX/netinfo.html
この仕組みは OS X 10.5(Leopard)で大きく変わったそうです。NetInfoはやはり特殊な使い方のためあちこちで不満が多く、遂に入れ替えとなった模様です。Loopardではそれに変わるものとして、OS X Serverに導入されている Open Directoryを使用します。これは LDAP 対応で、Windows の Active Derectoryとも接続できるとか。
- http://journal.mycom.co.jp/column/osx/251/index.html
- http://ja.wikipedia.org/wiki/Open_Directory_(Mac_OS_X_Server)
ユーザ追加
前置きが長くなりましたが、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
参考