Wednesday, March 1, 2006

Mac で uid + gid を変更する [mac]

前回のエントリー の続き.せっかく permission 管理できる外部デバイスを作ったので,iMac の uid (ユーザ ID),gid (グループ ID) を他の UN*X と合わせておきましょう,という話.

とりあえず分かったことは,いくら Mac OS X (Darwin) が UN*X ベース (Mach + FreeBSD ベース) といっても,技術的には NeXT STEP の流れを汲んでいることもあって,システム管理は nis (yp) では無く netinfo という独自のものであるということ.つまり /etc 以下のファイルを書き変えても設定が変わらなかったりするわけで,Mac を使っていて始めて齒痒く感じた.

まずは,アップル - サポート - TIL あたりを参考に root ユーザを有効にし,root でログインする.

以下,uid 501だったユーザ "toshi" を uid 1000, gid 100(users) に変更する前提での作業手順 ("users" グループは新規作成).

# nidump passwd . (既存の "toshi" を確認しておく)

# nicl . -create /users/toshi uid 1000

# nireport . /groups name | grep -w users ("users" グループが無いことの確認)
# nireport . /groups gid | grep -w 100 (gid 100 が無いことの確認)

# dscl . create /groups/users
# dscl . create /groups/users name users
# dscl . create /groups/users passwd "*"
# dscl . create /groups/users gid 100

# nicl . -create /users/toshi gid 100

最後に,既存のファイルのオーナーを新しい uid/gid に変更しておく.
# find / -xdev -user 501 -exec chown toshi:users {} \;

もう少し守備範囲の広い Mac ネタ書かなきゃ…


0 comments: