逃げ回ってたのだが、とうとうMac OS Xのuid/gidを変更することになった。いろいろあってね。
TigerまではNeXT譲りのNetInfoがあったので簡単(知ってる人には)だったのだが、LeopardにはNetInfoが無い、などと何を2年遅れの話題を。でもあんまり情報ありませんね。調べるのが面倒だったから、書いておこうかと。
System PreferenceのAccauntsで右クリックからAdvanced Optionsを選べばUser ID/Group IDの変更はできますが、ディスク上のファイルのuid/gidはそのままです。rootユーザーを有効にしてrootとして作業するのがいいでしょうね。二度とログインできない巨大文鎮になっても知らんぞ。rootユーザーはDirectory UtilityのEditメニューから有効にします。
で、AccauntsでUser IDは変更してくれるんだけど、Group IDを変更しても、ユーザーのデフォルトグループの数値が変わるだけで、gourpデータベースは何の変更もありません。groupのgid変更は、Directory Utilityを使ってもできるのかも知らんけど、ターミナルからdsclコマンド(Directory Service CLient?)を使ったほうが速そう。シェルからdsclと打ち込んでプロンプトが出たら、
> -read /Local/Default/Groups/groupname
と打ち込めば、現在の情報を表示します。gid変更するには
> -change /Local/Default/Groups/groupname PrimaryGroupID <古い番号> <新しい番号>
と打ち込めば変更できます。
あとはターミナルからfindして古いuid/gidを総ざらいしてあげればOK。