巨大ドメインに参加している PC での /etc/passwd, /etc/group ファイルのつくりかた

先日 Cygwin を何度か入れなおす羽目になって、そのときにコンソールに表示されるこのメッセージ。:

Your group is currently "mkpasswd".  This indicates that your
gid is not in /etc/group and your uid is not in /etc/passwd.

The /etc/passwd (and possibly /etc/group) files should be rebuilt.
See the man pages for mkpasswd and mkgroup then, for example, run

mkpasswd -l [-d] > /etc/passwd
mkgroup  -l [-d] > /etc/group

Note that the -d switch is necessary for domain users.

「パスワードとグループがデフォルト設定のままになってるから mkpasswd と mkgroup を使って設定をするがいいじゃんよ」ってことなんだけれど、アクティブディレクトリーで膨大なユーザー・グループ情報が管理されている状況下で mkpasswd -d などすると実際死ぬ。延々とリスト取得していて、ちっとも終わりゃあしない!

で、対処法。現在のユーザー情報とホストマシンのローカル情報だけを反映した passwd と group ファイルを作ればよいので、:

$ mkpasswd -l -c > /etc/passwd
$ mkgroup -l -c > /etc/group

複数のドメインユーザーで共有する環境なら初回利用者は上記を実行して、それ以降に使うユーザーは自分のユーザー情報だけ追記更新ってのでもよさそう。:

$ mkpasswd -c >> /etc/passwd

ドメインユーザーに対して mkgroup -c が返す値は Domain Users:... のため、こちらは改めて追加する必要はない。