MacOSX でのユーザの作り方(dscl)

メモ的に

全然知らなかったんだけど,MacOSX では,DirectoryService でユーザとかのリソースを管理してるみたい.

ということでユーザを作ってみた.

$ sudo dscl . -create /Groups/git gid 601
$ sudo dscl . -create /Users/git
$ sudo dscl . -create /Users/git RealName 'git version control'
$ sudo dscl . -create /Users/git UniqueID 601
$ sudo dscl . -create /Users/git PrimaryGroupID 601
$ sudo dscl . -create /Users/git NFSHomeDirectory /Users/git
$ sudo dscl . -create /Users/git UserShell /opt/local/bin/zsh
$ sudo dscl . -create /Users/git uid 601
$ sudo dscl . -create /Users/git gid 601
$ sudo passwd git ← パスワード設定
$ sudo createhomedir -b -u git

確認

$ sudo dscl . -read /Groups/git
$ sudo dscl . -read /Users/git
$ id git
uid=601(git) gid=601(git) ....

第一引数の"."(ドット) は,ローカルのdatasource らしい.

最初 /etc/{passwd,group} を直編集して,何でできないか不思議だったよ.

追記(2010/12/26 16:29)
uid/gid を,指定していなかったらそもそも createhomedir できなかったよ.

ご参考